如何注入DLL 以DNF 举列
如何注入DLL 以XNF 举列如何注入DLL 这个方法 很多 很多多到 乱七八糟 千变万化 ......(以下省略上千字)
今天 要分享的就是 HOOK CreateProcessA 获取进程ID 注入
以XNF 举列 (特别说明 只是研究)
XNF 直接HOOK CreateProcessA是无效的 我们通过调式发现 他通过加载DLL 自己实现了 CreateP
rocessA这个API 的代码 并且有2处 地方 (1年前的数据)
那么 这个样子下 基本是 HOOK 不到的 他自己的实现代码的(动态模块+随即调用 当然水品好的人
不算 请直接无视它)
解决方案如下
调式发现 APIntdll.memmove 没有被模拟 那结果出来了 HOOK ntdll.memmove
流程如下 HOOK ntdll.memmove 判断是否 CreateProcessA 调用 如果是直接计算便宜 HOOK Creat
eProcessARET 位置如果不是放行
RET 处理 读取偏移可以获取 创建的PID 远线程注入重复HOOK(完)
以上可能说的不够清楚多看几遍 应该可以看懂本人文盲 描述能力有限 请多包含
没有代码~!!!!!
附件文件如下
1 HOOK.DLL 加载后 首先获取当前进程PID BOX 弹出 然后 HOOKntdll.memmove 等待 CreatePro
cessA 调用
2 示范.exe加载DLL后 CreateProcessA 调用 C:\WINDOWS\system32\calc.exe
如果想仔细了解的 调式附件 完全能够明白
其实进程注入没那么多的麻烦 只要恢复进程中被挂钩的函数就可以了如下:
XF的进程挂钩数据
WriteProcessMemory 挂钩地址:0x7C802213挂钩数据:13 22 BB 08 挂钩原数据:13 22 80 7C
GetModuleHandleA挂钩地址:0x7C80B741挂钩数据:41 B7 BB 08挂钩原数据:41 B7 80 7C
GetProcAddress挂钩地址:0x7C80AE40挂钩数据:40 AE BB 08挂钩原数据:40 AE 80 7C
CreateRemoteThread挂钩地址:0x7C8104CC挂钩数据:CC 04 BC 08挂钩原数据:CC 04 81 7C
GetExitCodeThread挂钩地址:0x7C821435挂钩数据:35 14 BD 08挂钩原数据:35 14 82 7C
恢复方法挂钩:建立一个时钟,时钟周期事件: 驱动写内存字节集(进程的ID,挂钩地址,挂钩原数据)XP系统测试成功{:3_55:}我是新手 请大牛多多指教! 楼主加油,我们都看好你 穿别人的鞋,走自己的路,让他们找去吧, 对楼猪只能说,你太伟大了!!
页:
[1]