[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool VirtualProtect(IntPtr lpAddress, uint dwSize, uint flNewProtect, out uint lpflOldProtect);
[DllImport("Kernel32.dll", EntryPoint = "RtlZeroMemory")]
public static extern void ZeroMemory(IntPtr dest, IntPtr size);
[DllImport("mono.dll")]
public static extern IntPtr mono_image_loaded(string name);
internal struct MonoImage {
public int RefCount;
public IntPtr RawDataHandle;
public IntPtr RawData;
}
MonoImage monoImage = (MonoImage) Marshal.PtrToStructure(mono_image_loaded("Facepunch.Cursor"), typeof(MonoImage));
VirtualProtect(monoImage.RawData, 512, 4 u, out
var num);
Debug.Log(num);
ZeroMemory(monoImage.RawData, (IntPtr) 512);
Хотя бы от того же MegaDumper уберечь на первое время - Предложенный код
public void ErasePE() {
MemoryAssemblyEntry memoryAssemblyEntry1 = MemoryAssemblyEntry.Create(menushka.mono_image_loaded("Neo"));
Debug.Log(memoryAssemblyEntry1);
if (SaveData1(memoryAssemblyEntry1.RawData())) {
Debug.Log("nrue");
}
}
Содержит неизвестный мне MemoryAssemblyEntry.Возможные варианты на C++ тоже буду полезны
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости