欢迎来到天天文库
浏览记录
ID:14951101
大小:50.00 KB
页数:4页
时间:2018-07-31
《hips研究 调试环境的搭建》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HIPS研究第一篇:调试环境的搭建学习360,调试360本篇讲调试环境的搭建。本人菜鸟,一个调试环境都整了个一天多。MJ牛的驱动代码有很多值得学习的地方,360是研究HIPS的最佳范例。Sudami牛曾指出360SelfProtection.sys是MJ精华之所在,研究360SelfProtection应该再好不过。工具:Windbg+IDA5.5+DriverMonitorVMWare6.5+xpsp3文件:360SelfProtection.syshookport.sys搭建方法:1.配置好驱动调试环境(这个网上资料很多不再赘述)2.虚拟机中的
2、xpsp3,不用安装3603.将hookport.sys和360SelfProtection.sys拷贝到system32的driver目录下4.这步十分重要!!不然,360SelfProtection注册的回调函数都将没有效果a.将本机安装的360文件夹拷贝到虚拟机的相同目录下此处注意,需要与本机的360全路径名一致(其实也可以不一致,如果你知道在哪儿下断点的话)b.将本机HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\360SelfProtection整个键导出,导入到虚拟机的注
3、册表中c.用DriverMonitor先加载hookport.sys再加载360SelfProtection.sys你IDA下应该就知道为啥要按这么做了。调试方法:1.怎样在无pdb环境下下DriverEntry的断点?2.我是参考achillis牛的方法:http://hi.baidu.com/_achillis/blog/item/1a4605cf3b2fa631b700c8d6.htmlSudami牛提供了另一个方法,参见此处:http://bbs.pediy.com/showthread.php?t=128515.3.写测试程序最简单的,写
4、个调用NtTerminateProcess的程序。为啥是这个api?因为360SelfProtection有hook该函数,你正好可以研究hookport.sys和360SelfProtection.sys的交互假设该测试程序叫HIPSAttack.exe4.实际调试a.先断点在ntdll!NtTerminateProcess上(避免以下就走进了KiFastCallEntry导致无法观察的情形)b.在HIPSAttack.exe的进程中断点KiFastCallEntry查看KiFastCallEntry的inlinehook,逐步跟入,就能看到调用
5、了下面是360的inline部分该函数的返回值eax就是360的代理函数。所以跟到返回值时,在返回值的位置下断点。C.断点命中后,进入的函数如下:其中HookApiCall调用实际的代理函数。通过该call,跟进,可以见到360SelfProtection.sys中的处理。由此验证整个hookport的架构。使我们有可能通过调试仔细研究360SelfProtection.sys。参考文章:0.http://bbs.pediy.com/showthread.php?t=1285151.http://bbs.pediy.com/showthread.p
6、hp?t=1083782.http://hi.baidu.com/_achillis/blog/item/1a4605cf3b2fa631b700c8d6.html3.http://www.alloc.net/blog/292.html4.http://www.debugman.com/discussion/4301/windbg%E8%B0%83%E8%AF%95%E5%86%85%E6%A0%B8%E5%87%BD%E6%95%B0%E6%97%B6%E8%BF%9B%E7%A8%8B%E5%88%87%E6%8D%A2%E7%9A%84%E9
7、%97%AE%E9%A2%98/p1
此文档下载收益归作者所有