advancedolly修改后的.zip
(51.47 KB, 下载次数: 164)
↑附件下载
最近总发现有利用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
[Asm] 纯文本查看 复制代码 00477934 |. 52 push edx ; /pProcessInfo
00477935 |. 51 push ecx ; |pStartupInfo
00477936 |. 8D85 DCFDFFFF lea eax, [local.137] ; |
0047793C |. 8D8D 50E7FFFF lea ecx, [local.1580] ; |
00477942 |. 50 push eax ; |CurrentDir
00477943 |. 6A 00 push 0x0 ; |pEnvironment = NULL
00477945 |. 8B55 FC mov edx, [local.1] ; |
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 我也试了没效果
[Asm] 纯文本查看 复制代码 03348E8C 60 pushad
03348E8D 8B4424 44 mov eax, dword ptr ss:[esp+0x44]
03348E91 E8 00000000 call advanced.03348E96
03348E96 5D pop ebp
03348E97 3E:8985 A931000>mov dword ptr ds:[ebp+0x31A9], 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测试成功了,其实只想发个帖...冒泡下...
|