ASM / OPCode инъекция с C ++ - PullRequest
       36

ASM / OPCode инъекция с C ++

0 голосов
/ 21 февраля 2011

Я пытаюсь внедрить некоторый код ASM в программу Win32 с C ++. Есть ли способ сделать это, избегая внедрения DLL?

Это, например:

__asm{}

только для текущей программы. Есть ли что-то подобное, используемое для генерации шестнадцатеричного кода, который я мог бы добавить с помощью WriteProcessMemory?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 21 февраля 2011

В MSVC это может выглядеть так:

        void* shellcodeStart;
        void* shellcodeEnd;
        __asm {
                mov shellcodeStart, offset shellcode_start
                mov shellcodeEnd, offset shellcode_end
                jmp shellcode_end
shellcode_start:
                ... // your code
shellcode_end:
        }
        size_t cb = shellcodeEnd - shellcodeStart;
        WriteProcessMemory(hProcess, remoteAddress, shellcodeStart, cb, NULL);
1 голос
/ 21 февраля 2011

Один из методов - ручная сборка и помещение кода в массив, а затем копирование кода в нужное место. Но это заблудилось в хакерской земле, о которой я мало что знаю.

...