修复吾爱OD的一个插件Anti-Anti-Debug问题
↑附件下载
最近总发现有利用GetStartupInfo来检测OD的,如CM区的http://www.52pojie.cn/thread-328996-1-1.html检测OD其中也有用到这个方法
以前就在看雪看过那篇利用GetStartupInfo来反调试的文章
借用大牛文章下
http://bbs.pediy.com/showthread.php?threadid=31447
http://www.52pojie.cn/thread-178161-1-1.html
OD创建进程CreateProcess
00477934|.52 push edx ; /pProcessInfo
00477935|.51 push ecx ; |pStartupInfo
00477936|.8D85 DCFDFFFF lea eax, ; |
0047793C|.8D8D 50E7FFFF lea ecx, ; |
00477942|.50 push eax ; |CurrentDir
00477943|.6A 00 push 0x0 ; |pEnvironment = NULL
00477945|.8B55 FC mov edx, ; |
00477948|.81CA 22000004 or edx, 0x4000022 ; |
0047794E|.52 push edx ; |CreationFlags
0047794F|.6A 00 push 0x0 ; |InheritHandles = FALSE
00477951|.6A 00 push 0x0 ; |pThreadSecurity = NULL
00477953|.6A 00 push 0x0 ; |pProcessSecurity = NULL
00477955|.51 push ecx ; |CommandLine
00477956|.6A 00 push 0x0 ; |ModuleFileName = NULL
00477958|.E8 73760300 call <jmp.&KERNEL32.CreateProcessA> ; \CreateProcessA
而strongOD早就在07年解决了,但是因为advancedolly.dll问题又出现了,今天早上跟了下发现是advancedolly把地址00477958处的CreateProcessA处給 inline hook了,把OD本来要调用的CreateProcessA换成了在它自身的调用,导致SOD在创建进程所做的那些事都没用了,包括下图那三个选项怎么选都没用到的
本想nop掉advancedolly的WriteProcessMemory但因为advancedolly插件hook后接下去还做了一堆事,就只能考虑还原CreateProcess了,随便JMP到空隙的地方补上下面代码,配置advancedolly.dll 我也试了没效果
03348E8C 60 pushad
03348E8D 8B4424 44 mov eax, dword ptr ss:
03348E91 E8 00000000 call advanced.03348E96
03348E96 5D pop ebp
03348E97 3E:8985 A931000>mov dword ptr ds:, eax
03348E9E 61 popad
03348E9F BB D0EF4A00 mov ebx, 0x4AEFD0 ; 入口地址
03348EA4 90 nop
03348EA5 FFD3 call near ebx
03348EA7 90 nop
03348EA8 90 nop
...
03348EAF^\E9 1D9BFFFF jmp advanced.033429D1
我改了几次了,刚开始总没考虑到重定位那些总出错,我的补丁代码没怎么考虑全面汇编也没学好,不过我的步骤就那样,有兴趣就继续完善好了
这个插件能我用得久了,总不想抛弃
这样稍微修改就能跟SOD一起用过那个GetStartupInfo检测了
没什么技巧好言,修改的后的dll在上面,我在win8 32测试成功了,其实只想发个帖...冒泡下...
支持一下 都是大神 本帖最后由 000000 于 2015-2-13 16:57 编辑
{:301_1008:}楼主不错。针对上我的CM了。。
那CM有4个检测OD方法,这只是其中一个。
顺便送大家一个 GetStartupInfo 检测OD的源码
膜拜大神,一定好好学习~ 一直没搞明白,strongod用了以后,advancedolly插件还有什么互补的吗? Hmily 发表于 2015-2-13 17:11
一直没搞明白,strongod用了以后,advancedolly插件还有什么互补的吗?
还是有些比较方便的小东西,比如窗口最大化,堆栈窗口中有个反汇编跟随这些吧... 干嘛用的~ 谢谢分享,正需要。。。。。 可是有一些程序启动后破坏od,然后导致od重新打开就无法载入文件了,这个是什么鬼
页:
[1]