好友
阅读权限10
听众
最后登录1970-1-1
|
yakov
发表于 2020-12-31 15:27
本帖最后由 yakov 于 2020-12-31 15:36 编辑
因为原贴时间比较久,所以我新开一个帖子询问。原来的帖子:
https://www.52pojie.cn/thread-264393-6-1.html
https://www.52pojie.cn/thread-403484-1-1.html
这两个贴子中,都没有提到一个地方,就是这个crackme,如果用od打开,则运行后不会显示,打开后再attach则没关系,但是不容易跟踪到最前面的NAG:
0042F784 . 6A 00 push0x0
0042F786 . B9A0F74200 mov ecx,Acid_bur.0042F7A0 ; "hello you have to kill me!"
0042F78B . BA BCF74200 movedx,Acid_bur.0042F7BC ; "Welcome to this Newbies Crackme made by ACiD BuRN [CracKerWoRlD]"
0042F790 . A1480A4300 mov eax,dword ptr ds:[0x430A48]
0042F795 . 8B00 mov eax,dwordptr ds:[eax]
0042F797 . E8 D4A9FFFF callAcid_bur.0042A170 ; 这个call里似乎有检测
0042F79C . C3 ret
把这些全部nop掉,NAG窗口消失,而且不显示问题也消失了,应该检测就在上面:0042F797处。
跟进0042F797处和Call:
0042A170 /$ 55 push ebp
0042A171 |. 8BEC mov ebp,esp
0042A173 |. 83C4 F4 add esp,-0xC
0042A176 |. 53 push ebx
0042A177 |. 56 push esi
0042A178 |. 57 push edi
0042A179 |. 8BF9 mov edi,ecx
0042A17B |. 8BF2 mov esi,edx
0042A17D |. 8BD8 mov ebx,eax
0042A17F |. E8 7CB4FDFF call<jmp.&user32.GetActiveWindow> ; [GetActiveWindow]
0042A184 |. 8945 F8 mov [local.2],eax ; OD打开调试时这里为0,如果attach则这里已经跳过了
0042A187 |. 33C0 xor eax,eax
0042A189 |. E8 12A0FFFF callAcid_bur.004241A0 ; 这里是进程枚举
0042A18E |. 8945 F4 mov [local.3],eax
0042A191 |. 33C0 xor eax,eax
0042A193 |. 55 push ebp
0042A194 |. 68 D0A14200 pushAcid_bur.0042A1D
00042A199 |. 64:FF30 push dword ptrfs:[eax]
0042A19C |. 64:8920 mov dword ptrfs:[eax],esp
0042A19F |. 8B45 08 mov eax,[arg.1]
0042A1A2 |. 50 push eax ; /Style
0042A1A3 |. 57 push edi ; |Title
0042A1A4 |. 56 push esi ; |Text
0042A1A5 |. 8B43 24 mov eax,dword ptrds:[ebx+0x24] ; |
0042A1A8 |. 50 push eax ; |hOwner
0042A1A9 |. E8 FAB5FDFF call<jmp.&user32.MessageBoxA> ; \MessageBoxA
这里就是最开始的NAG!虽然我找到了地方,也能通过NOP避开,但是不明白为什么用OD打开调试时,窗口就不显示,而且MessageBox的代码是运行了,也都不显示。这里虽然有检测进程,似乎并没有进行什么判断,也没有分支,所以特发贴请教,如果弄清楚了原理,或许会对我们检测OD,或者反反检测有点小帮助,如果有朋友回复将非常感谢! |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|