远程线程技术实现进程的注入:
OpenProcess(); //获取已知的进程的句柄
VirtualAllocEx() //在进程中申请空间
WriteProcessmemory(); //向进程中写入东西;
GetProcAddress() //取得函数在DLL中的地址
CreateRemoteThread() //在其他进程中创建新线程。
CloseHandle() //关闭句柄
hook微信和qq聊天记录
DLL注入
setwindowhookex 系统消息流 Windows是系统消息驱动的机制,一个进程运行运行必然经过这些消息。
exe->消息hook dll->获取进程消息->调用我们的注入DLL->注入到程序内部
微信: TextOut
QQ: ExTextOut
EIP(指令指针寄存器)修改寄存器数据 注入
找到进程名称, 通过API枚举出所有进程路径
然后根据进程名称和枚举的进程路径相匹配,找到后获取它的PID和调试句柄。
开始注入。要写一些编码用于存放注入的方法。
如何获取EIP? 每一个线程都有EIP 挂起线程,保存寄存器值,修改。EIP注入跟寄存器hook相似,区别是不需要知道跳转地址。 直接注入
作用:
- 查找我们需要注入的进程
- 获取需要注入的PID
- 获取到调试进程的句柄 ```cpp HANDLE ProcessPhone = 0; //进程快照 PROCESSENTRY32 processstruct = {0};
ProcessPhone = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); ```