代码注入与控制流操纵技术详解
代码注入基础
代码注入是一项强大的技术,它允许我们将自定义代码插入到目标进程中执行。下面我们将详细介绍代码注入的相关技术和操作步骤。
生成骨架shellcode与分配内存
首先,我们需要生成用于线程劫持的shellcode,并为其分配内存。以下是相关代码示例:
// do work with shellcode PUSH string PUSH times MOV EAX, someFunction CALL EAX ADD ESP, 0x8 // restore state POPFD // pop EFLAGS from the stack POPAD // pop general registers to the stack // un-hijack: resume the thread without using registers PUSH originalEIP RETN BYTE codeCave[31] = { 0x60, // PUSHAD 0x9C, // PUSHFD 0x68, 0x00, 0x00, 0x00, 0x00, // PUSH 0 0x68, 0x00, 0x00, 0x00, 0x00, // PUSH 0 0xB8, 0x00, 0x00, 0x00, 0x00, // MOV EAX, 0x0 0xFF, 0xD0,