首页
社区
课程
招聘
[旧帖] [求助]怎样躲过Debugger Detect? 0.00雪花
发表于: 2008-6-3 13:42 6414

[旧帖] [求助]怎样躲过Debugger Detect? 0.00雪花

2008-6-3 13:42
6414
软件:Optilayer Demmo

工具:OllyDbg、LordPE、ImportREC、PEiD
壳:[ASProtect 2.1x SKE -> Alexey Solodovnikov]

过程:
1、用PEiD查看主程序dopti.exe,得壳为ASProtect 2.1x SKE -> Alexey Solodovnikov;用其插件Vera 0.15查Version: ASProtect 2.xx (may be 2.11) Registered [1]
2、OllyDbg载入dopti.exe,Hide Olly后运行,总是提示Protection Erorr:Debugger Detected! Olly隐藏不了

无意间发现,原来这样就可以HideOD了
插件->HideOD->Option
在OPtion中选择“AutoRun HideOD”及HideNtDebugBit 即可隐藏OD了
原来虽然每次运行这个插件,但却没选HideNtDebugBit, 因此没有起作用

直接单步运行,一到这段,在11111111到22222222间运行6次,就跳出 debugger detected!
7C92EAE9    CC              int3
7C92EAEA    8BFF            mov     edi, edi
7C92EAEC >  8B4C24 04       mov     ecx, dword ptr [esp+4]
7C92EAF0    8B1C24          mov     ebx, dword ptr [esp]       //11111111
7C92EAF3    51              push    ecx
7C92EAF4    53              push    ebx
7C92EAF5    E8 C78C0200     call    7C9577C1
7C92EAFA    0AC0            or      al, al
7C92EAFC    74 0C           je      short 7C92EB0A
7C92EAFE    5B              pop     ebx
7C92EAFF    59              pop     ecx
7C92EB00    6A 00           push    0
7C92EB02    51              push    ecx
7C92EB03    E8 11EBFFFF     call    ZwContinue      //22222222
7C92EB08    EB 0B           jmp     short 7C92EB15
7C92EB0A    5B              pop     ebx
7C92EB0B    59              pop     ecx
7C92EB0C    6A 00           push    0

第5次call进ZwContinue就是:
7C92D619 >  B8 20000000     mov     eax, 20
7C92D61E    BA 0003FE7F     mov     edx, 7FFE0300
7C92D623    FF12            call    dword ptr [edx]                  ; ntdll.KiFastSystemCall
7C92D625    C2 0800         retn    8

进一步进入7C92D623  就是:
7C92EB8A    90              nop
7C92EB8B >  8BD4            mov     edx, esp
7C92EB8D    0F34            sysenter

一过sysenter就提示Debugger detected!

谁有办法躲过Debugger detect过程?

引用:
最初由 轩辕小聪发布  
当call进ZwContinue时,查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址。在这个地址下断,就可以断下。断下后看看它是怎么检测调试器的。...

程序总共Call进ZwContinue 5次,第4次后检测Debugger程序;第5次后弹出Debuuger Detected!对话框。

在7C92EB03    E8 11EBFFFF     call    ZwContinue 处设断,当第4次断下时,单步进入;查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址:0198B0E4,转到此处设断,再运行则在此停下:

0198B0E4    67:64:8F06 0000 pop     dword ptr fs:[0]                      ; 0012FE48
0198B0EA    83C4 04         add     esp, 4
0198B0ED    3E:EB 02        jmp     short 0198B0F2
0198B0F0    CD20 8DB41D08   vxdjump 81DB48D
0198B0F6    67:47           inc     edi
0198B0F8    002B            add     byte ptr [ebx], ch
0198B0FA    F3:             prefix rep:
0198B0FB    5E              pop     esi
0198B0FC    E8 47C6FFFF     call    01987748                              ; 在这里检测Debugger! 在次单步进入
0198B101    8BD8            mov     ebx, eax
0198B103    881D 8C949901   mov     byte ptr [199948C], bl
0198B109    E8 2AC7FFFF     call    01987838
0198B10E    8B15 84979901   mov     edx, dword ptr [1999784]
0198B114    8842 02         mov     byte ptr [edx+2], al
0198B117    56              push    esi

进入Debugger 检测段
01987748    53              push    ebx
01987749    56              push    esi
0198774A    57              push    edi
0198774B    33DB            xor     ebx, ebx
0198774D    33C0            xor     eax, eax
0198774F    A3 90949901     mov     dword ptr [1999490], eax
01987754    B2 01           mov     dl, 1
01987756    A1 9C609801     mov     eax, dword ptr [198609C]
0198775B    E8 98E9FFFF     call    019860F8
01987760    8BF0            mov     esi, eax
01987762    A1 F0979901     mov     eax, dword ptr [19997F0]
01987767    8B00            mov     eax, dword ptr [eax]
01987769    8946 04         mov     dword ptr [esi+4], eax
0198776C    A1 E0979901     mov     eax, dword ptr [19997E0]
01987771    8B40 0C         mov     eax, dword ptr [eax+C]
01987774    50              push    eax
01987775    56              push    esi
01987776    E8 05EAFFFF     call    01986180                              ; 检测Debugger!在此单步进入
0198777B    8BF8            mov     edi, eax
0198777D    85FF            test    edi, edi
0198777F    74 2E           je      short 019877AF                        ; 无Debbuger则跳转
01987781    8B47 04         mov     eax, dword ptr [edi+4]
01987784    40              inc     eax
01987785    E8 BAADFEFF     call    01972544
0198778A    A3 90949901     mov     dword ptr [1999490], eax
0198778F    8B57 04         mov     edx, dword ptr [edi+4]
01987792    42              inc     edx
01987793    A1 90949901     mov     eax, dword ptr [1999490]
01987798    E8 33E1FEFF     call    019758D0
0198779D    8D57 08         lea     edx, dword ptr [edi+8]
019877A0    8B4F 04         mov     ecx, dword ptr [edi+4]
019877A3    A1 90949901     mov     eax, dword ptr [1999490]
019877A8    E8 0FE1FEFF     call    019758BC
019877AD    B3 01           mov     bl, 1                                 ; 检测到Debugger则EBX=1 改为mov bl,0 即可骗过Debugger检测程序
019877AF    8BC6            mov     eax, esi
019877B1    E8 6AB3FEFF     call    01972B20
019877B6    8BC3            mov     eax, ebx
019877B8    5F              pop     edi
019877B9    5E              pop     esi
019877BA    5B              pop     ebx
019877BB    C3              retn

都说Volx大虾的脚本就可以脱了,我怎么脱不了,好郁闷
运行脚本Aspr2.XX_unpacker_v1.14aSC.osc后,停在这里:
01BB0447    55              push    ebp                              ; 538F70
01BB0448    336C24 28       xor     ebp, dword ptr [esp+28]
01BB044C    EB 01           jmp     short 01BB044F
01BB044E    9A 83DDA7C1 DD1>call    far 1FDD:C1A7DD83
01BB0455    65:EB 01        jmp     short 01BB0459
01BB0458    698B 6C2410C1 C>imul    ecx, dword ptr [ebx+C110246C], 6>
01BB0462    24 18           and     al, 18
01BB0464    8D6C34 4C       lea     ebp, dword ptr [esp+esi+4C]
01BB0468    2BEE            sub     ebp, esi
01BB046A    F3:             prefix rep:
01BB046B    EB 02           jmp     short 01BB046F
01BB046D    CD20 8D6C0DB4   vxdcall B40D6C8D

打开ImportREC,选择进程dopti.exe,OEP填入138F70; 自动搜索IAT;点击GetImports,全部为Valid;
点击FixDump,修复Volx脚本生成的de_dopti.exe; 双击修复后的文件de_dopti_.exe,可以运行了, 哈哈, 成功脱壳!!!
原来用Volx大虾的脚本脱壳如此简单! 多谢Volx!

多谢曾经关注此帖的朋友们!!!!!!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
2
当call进ZwContinue时,查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址。在这个地址下断,就可以断下。断下后看看它是怎么检测调试器的。
2008-6-3 15:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
无法下载,换个网盘试试
2008-6-3 17:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
demo版本的,费那力气做什么?
2008-6-3 18:04
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=轩辕小聪;462044]当call进ZwContinue时,查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址。在这个地址下断,就可以断下。断下后看看它是怎么检测调试器的。[/QUOTE]

搜藏+学习
2008-6-3 19:08
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这是世界上最牛的光学薄膜设计软件,只有DEMO版的可以得到,还是很旧的

昨天单步运行了N长时间,才发现GetModuleHandleA

作为新兵,每走一步都很辛苦
2008-6-4 13:34
0
雪    币: 236
活跃值: (16)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
[quote=轩辕小聪;462044]当call进ZwContinue时,查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址。在这个地址下断,就可以断下。断下后看看它是怎么检测调试器的。[/quote]
学习!
2008-6-4 14:00
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=轩辕小聪;462044]当call进ZwContinue时,查堆栈[esp+4]处,即更新的_CONTEXT结构。查该结构的0xB8偏移处的值,则是新的EIP地址。在这个地址下断,就可以断下。断下后看看它是怎么检测调试器的。...[/QUOTE]
多谢啊,确实找到躲过Debugger检测的办法了
2008-6-14 18:31
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
OEP呀,你在哪里?
各位,从0198A*** 跳到 01BB0***,然后就会出现程序界面,能说明跳到OEP了吗?
2008-6-16 21:31
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
我的OD能直接跑起来  没任何问题
脱壳当然也没问题了
2008-6-18 17:47
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
11
支持搞光的同学。
下不了。。。。。
2008-6-18 19:56
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
佩服中......
我每次都要把debugger检测的那一段修改一下才能跑得起来

你给了我信心,不管能否脱的出来,有空我就调试它,
通过这一段不断看教程,我已经学到很多脱壳的知识了
2008-6-18 22:19
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
多谢你的关注!
放到邮箱里了: optilayer@yahoo.cn 密码:741852
如果你还有兴趣的话,可以进去看一下
2008-6-18 22:21
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
自己太菜鸟了

无意间发现,原来这样就可以HideOD了

插件->HideOD->Option

在OPtion中选择“AutoRun HideOD”及HideNtDebugBit 即可隐藏OD了

原来虽然每次运行这个插件,但却没选HideNtDebugBit, 因此没有起作用

哈哈哈,太傻了,太傻了
2008-6-19 21:26
0
游客
登录 | 注册 方可回帖
返回
//