dnlib - Смещение потока записи
При загрузке сборки я могу изменить позицию в файле и добавить свои данные, а затем сохранить
public static void WriteStream(string path, long offset, byte[] bytesArray)
{
using FileStream stream = File.Open(path, FileMode.Open);
stream.Position = offset;
stream.Write(bytesArray, 0, bytesArray.Length);
}
Но, как можно записать их без загрузки файла через FileStream и сделать что-то непосредственно после ModuleDefMD.Load(file);.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Если глянуть в исходники, то видно что Load может грузить из массива байт.
byte[] bytes = File.ReadAllBytes(path);
var ms = new MemoryStream(bytes);
ms.Position = offset;
ms.Write(bytesArray);
ModuleDefMD.Load(bytes);
Или даже так
byte[] bytes = File.ReadAllBytes(path);
Buffer.BlockCopy(bytesArray, 0, bytes, offset, bytesArray.Length);
ModuleDefMD.Load(bytes);