远程线程技术实现进程的注入:

    1. OpenProcess(); //获取已知的进程的句柄
    2. VirtualAllocEx() //在进程中申请空间
    3. WriteProcessmemory(); //向进程中写入东西;
    4. GetProcAddress() //取得函数在DLL中的地址
    5. CreateRemoteThread() //在其他进程中创建新线程。
    6. CloseHandle() //关闭句柄

    hook微信和qq聊天记录
    DLL注入
    setwindowhookex 系统消息流 Windows是系统消息驱动的机制,一个进程运行运行必然经过这些消息。

    exe->消息hook dll->获取进程消息->调用我们的注入DLL->注入到程序内部

    微信: TextOut
    QQ: ExTextOut

    EIP(指令指针寄存器)修改寄存器数据 注入

    找到进程名称, 通过API枚举出所有进程路径
    然后根据进程名称和枚举的进程路径相匹配,找到后获取它的PID和调试句柄。
    开始注入。要写一些编码用于存放注入的方法。

    如何获取EIP? 每一个线程都有EIP 挂起线程,保存寄存器值,修改。EIP注入跟寄存器hook相似,区别是不需要知道跳转地址。 直接注入

    作用:

    1. 查找我们需要注入的进程
    2. 获取需要注入的PID
    3. 获取到调试进程的句柄 ```cpp HANDLE ProcessPhone = 0; //进程快照 PROCESSENTRY32 processstruct = {0};

    ProcessPhone = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); ```