2、如果DLL是你写的,也就是你有源码,可以在DLL_PROCESS_ATTACH通知中,加上一句断点:
__asm int 3
然后,你写一个exe程序,loadlibrary()直接加载这个DLL文件,你用调试器,载入程序,直接运行,马滑启上就会终断到断点处。
3、别人的DLL,你可以使用动态调试器, 在关雀让迹键CALL上直接跟进去顷并然后分析就好了。
4、静态反汇编分析,直接用IDA把DLL文件进行二进制分析。。自己看代码吧。
OD中有一个专门尺宏用来调试DLL文件的程序:loaddll.exe。当你把DLL文件拖入OD的时候,OD会自动询问你是否要用这个程序来调试DLL文件,点击确定。完成后会有一个蓝框的小窗口。但是在这个时候,DLL文件已经被加载进去了,也就是说已经被脱壳并且重定位的 *** 作也已经完成了 。这就枣困逗很头疼了。我们必须得让程序停在壳的入口处,那么我们就凳卖在它加载完后看看,按下 Alt+M或者鼠标点击OD那个小框框的M按钮。找到这个DLL文件,可以看到最下面那个节就是多出来的节,也就是壳所在位置,从这里可以得出壳入口偏移为D000。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)