C # Теоретический: написать JMP для кодовой пещеры в asm
Предположим, что я выделил адрес, где размещена моя кодовая пещера, используяVirtualAllocEx
(он возвращает адрес), и я пишу свой код в этот адрес, используяWriteProcessMemory()
.
Вот вопрос:
Как мне написать переход к моей кодовой пещере? Я знаю, что прыжки начинаются с "E9
", но как мне преобразовать адрес, возвращенныйVirtualAllocEx
в правильный UInt32 (dword), чтобы отладчик / компилятор понял инструкцию?
Например:
Я по адресу00402020
(OEP родного приложения). Я пишу прыжок в004028CF
(пустое место)JMP 004028CF
Msgstr "Инструкция в байтах выглядит так:
CPU Disasm
Address Hex dump Command Comments
00402020 E9 AA080000 JMP 004028CF
"E9
«Вот как мы указываем JMP. Как насчет»AA080000
", как мне это сгенерировать?
Мне нужно сделать что-то подобное, чтобы я мог инициализировать JMP к моей кодовой пещере, которая будет расположена по адресу, возвращенномуVirtualAllocEx()
.
Любая помощь будет с благодарностью!
Заранее спасибо.