编写通用内联钩子

编写通用内联钩子

ID:13150559

大小:36.00 KB

页数:6页

时间:2018-07-20

编写通用内联钩子_第1页
编写通用内联钩子_第2页
编写通用内联钩子_第3页
编写通用内联钩子_第4页
编写通用内联钩子_第5页
资源描述:

《编写通用内联钩子》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编写通用内联钩子)栏目编辑>sOcket)餮前置知识:VC关键诃编程,inlineHook,ReadProcessMemory缩写通用内联钧文/woosheep如果R00tkit是一座雄伟神秘的殿堂,那么Ring3的_nlineHook毫无疑问就是这座殿堂的大门,虽然不似Rng0那般强大,但在简单,安全(不至于蓝屏)方面却略胜一筹.更重要的,不至于让和我一样的朋友望着ROOtkit这座神殿,发出只能膜拜无法学习的感叹.无需DDK无需虚拟机,请容我把这款通用型内联钩子的编写慢慢道来.InlineHook说起来也简单,就是找到指定API函数的内存地址,放下五字节的JMP(即E9,当然,

2、如果有办法在短跳转的射程内腾出一片空间,则不在此列).跳向钩子处理函数即告完成.不过JMP的选址很讲风水.放得越深,自然越不易被检测,但对被HOOk的API破坏也越大,最简单的就是直接放在函数入口处,如果是编程前就指定的API,甚至可以把覆盖的原API汇编码直接附在钩子函数末尾.但被检测出来的风险也最大.只能自求多福了.我写的正是这么个钩子.唯一不同的是它的通用性,即只要简单地传递想要Hook的APl以及相关参数而无需另作任何修改.废话不多说,直接奉上完整代码:voidhook(DWORDdd,constchar*a~Name,constchar*dUName){intfuncSize=

3、(int)endFunc一(int)remoteFtmc;//计算挂入钧子函数大小HANDLEHandle;,f龟FARPR0CapiAddr;/2mInfo.mTemp;DWORDOldProtec编写通用内联钩子)栏目编辑>sOcket)餮前置知识:VC关键诃编程,inlineHook,ReadProcessMemory缩写通用内联钧文/woosheep如果R00tkit是一座雄伟神秘的殿堂,那么Ring3的_nlineHook毫无疑问就是这座殿堂的大门,虽然不似Rng0那般强大,但在简单,安全(不至于蓝屏)方面却略胜一筹.更重要的,不至于让和我一样的朋友望着ROOtkit这座

4、神殿,发出只能膜拜无法学习的感叹.无需DDK无需虚拟机,请容我把这款通用型内联钩子的编写慢慢道来.InlineHook说起来也简单,就是找到指定API函数的内存地址,放下五字节的JMP(即E9,当然,如果有办法在短跳转的射程内腾出一片空间,则不在此列).跳向钩子处理函数即告完成.不过JMP的选址很讲风水.放得越深,自然越不易被检测,但对被HOOk的API破坏也越大,最简单的就是直接放在函数入口处,如果是编程前就指定的API,甚至可以把覆盖的原API汇编码直接附在钩子函数末尾.但被检测出来的风险也最大.只能自求多福了.我写的正是这么个钩子.唯一不同的是它的通用性,即只要简单地传递想要Hoo

5、k的APl以及相关参数而无需另作任何修改.废话不多说,直接奉上完整代码:voidhook(DWORDdd,constchar*a~Name,constchar*dUName){intfuncSize=(int)endFunc一(int)remoteFtmc;//计算挂入钧子函数大小HANDLEHandle;,f龟FARPR0CapiAddr;/2mInfo.mTemp;DWORDOldProtec编写通用内联钩子)栏目编辑>sOcket)餮前置知识:VC关键诃编程,inlineHook,ReadProcessMemory缩写通用内联钧文/woosheep如果R00tkit是一座雄伟

6、神秘的殿堂,那么Ring3的_nlineHook毫无疑问就是这座殿堂的大门,虽然不似Rng0那般强大,但在简单,安全(不至于蓝屏)方面却略胜一筹.更重要的,不至于让和我一样的朋友望着ROOtkit这座神殿,发出只能膜拜无法学习的感叹.无需DDK无需虚拟机,请容我把这款通用型内联钩子的编写慢慢道来.InlineHook说起来也简单,就是找到指定API函数的内存地址,放下五字节的JMP(即E9,当然,如果有办法在短跳转的射程内腾出一片空间,则不在此列).跳向钩子处理函数即告完成.不过JMP的选址很讲风水.放得越深,自然越不易被检测,但对被HOOk的API破坏也越大,最简单的就是直接放在函数入

7、口处,如果是编程前就指定的API,甚至可以把覆盖的原API汇编码直接附在钩子函数末尾.但被检测出来的风险也最大.只能自求多福了.我写的正是这么个钩子.唯一不同的是它的通用性,即只要简单地传递想要Hook的APl以及相关参数而无需另作任何修改.废话不多说,直接奉上完整代码:voidhook(DWORDdd,constchar*a~Name,constchar*dUName){intfuncSize=(int)endFunc一(int)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。