首页
社区
课程
招聘
这个早期Asprotect壳用od真难调试.
发表于: 2004-5-2 22:22 8861

这个早期Asprotect壳用od真难调试.

David 活跃值
20
2004-5-2 22:22
8861
这个早期Asprotect壳用od真难调试,总是某内存地址异常,也忽略不了.

[课程]Android-CTF解题方法汇总!

收藏
免费 6
支持
分享
最新回复 (24)
雪    币: 227
活跃值: (160)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
发错了?还是已经脱壳?
2004-5-2 22:49
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
3
是错了,这个,上面得是我初学脱壳用trw2000+superbpm脱壳的,这个才是.
2004-5-2 22:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你没有高错把,这个notepad用工具不到1分钟就可以破掉啊。
2004-5-3 23:29
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
5
最初由 necofang 发布
你没有高错把,这个notepad用工具不到1分钟就可以破掉啊。


脱壳器不算,od+Ir+loadpe调试.
2004-5-4 00:38
0
雪    币: 203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
调试好久调不出,谁能给个教程?
2004-10-5 10:55
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
最初由 David 发布
这个早期Asprotect壳用od真难调试,总是某内存地址异常,也忽略不了.


这东东放了几个月,还没人搞定?
2004-10-5 16:20
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
最初由 David 发布


脱壳器不算,od+Ir+loadpe调试.


这个壳很好脱呀,用PEID查是ASProtect 1.0 -> Alexey Solodovnikov的壳,我在98系统下都能脱下这个壳:D (这个壳不测试OD)。OD设置除了Kernel32内存访问异常忽略其余全不忽略,用Shist+F9忽略异常运行,六次异常之后程序就正常启动。
0040D001 >  60              PUSHAD  ;载入程序停在这。
0040D002    E8 01000000     CALL CHAP708.0040D008
0040D007    90              NOP
0040D008    5D              POP EBP
0040D009    81ED BFAF4500   SUB EBP,45AFBF
0040D00F    BB B8AF4500     MOV EBX,45AFB8
0040D014    03DD            ADD EBX,EBP
0040D016    2B9D 91C34500   SUB EBX,DWORD PTR SS:[EBP+45C391]
0040D01C    83BD 8CC24500 0>CMP DWORD PTR SS:[EBP+45C28C],0
0040D023    899D F5BF4500   MOV DWORD PTR SS:[EBP+45BFF5],EBX
0040D029    0F85 CE100000   JNZ CHAP708.0040E0FD
0040D02F    8D85 94C24500   LEA EAX,DWORD PTR SS:[EBP+45C294]
0040D035    50              PUSH EAX
0040D036    FF95 D0C34500   CALL DWORD PTR SS:[EBP+45C3D0]


按Shift+F9运行程序,忽略异常五次之后停下,移动OD滚动条向下找到RET返回语句,在那一句设一个F2断点(INT3),Shift+F9运行程序:
004745B2    33C0            XOR EAX,EAX  ;最后一次异常
004745B4    5A              POP EDX
004745B5    59              POP ECX
004745B6    59              POP ECX
004745B7    64:8910         MOV DWORD PTR FS:[EAX],EDX
004745BA    EB 0A           JMP SHORT 004745C6
004745BC  ^ E9 9B07FFFF     JMP 00464D5C
004745C1    E8 320AFFFF     CALL 00464FF8
004745C6    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004745C9    0145 F8         ADD DWORD PTR SS:[EBP-8],EAX
004745CC    833D ECB74700 0>CMP DWORD PTR DS:[47B7EC],0
004745D3    0F9405 F0B74700 SETE BYTE PTR DS:[47B7F0]
004745DA    EB 01           JMP SHORT 004745DD
004745DC  ^ EB 8B           JMP SHORT 00474569
004745DE    65:FC           CLD                                      ; 多余的前缀
004745E0    EB 01           JMP SHORT 004745E3
004745E2    E8 8B45F8EB     CALL EC3F8B72
004745E7    02E9            ADD CH,CL
004745E9    14 8B           ADC AL,8B
004745EB    1D E0A74700     SBB EAX,47A7E0
004745F0    EB 01           JMP SHORT 004745F3
004745F2  ^ EB 89           JMP SHORT 0047457D
004745F4    04 1C           ADD AL,1C
004745F6    EB 02           JMP SHORT 004745FA
004745F8  ^ EB E8           JMP SHORT 004745E2
004745FA    61              POPAD
004745FB    EB 01           JMP SHORT 004745FE
004745FD    E8 50EB02E9     CALL E94A3152
00474602    17              POP SS                                   ; 修正的段位寄存器
00474603    E8 02000000     CALL 0047460A
00474608  - E9 1758803D     JMP 3DC79E24
0047460D    F0:B7 47        LOCK MOV BH,47                           ; 锁定前缀是不允许的
00474610    0000            ADD BYTE PTR DS:[EAX],AL
00474612    74 23           JE SHORT 00474637
00474614    5B              POP EBX
00474615    6A 10           PUSH 10
00474617    B8 BEA74700     MOV EAX,47A7BE
0047461C    83C0 0A         ADD EAX,0A
0047461F    8B00            MOV EAX,DWORD PTR DS:[EAX]
00474621    50              PUSH EAX
00474622    B8 CEA74700     MOV EAX,47A7CE
00474627    83E8 0A         SUB EAX,0A
0047462A    8B00            MOV EAX,DWORD PTR DS:[EAX]
0047462C    50              PUSH EAX
0047462D    6A 00           PUSH 0
0047462F    B8 49674600     MOV EAX,466749
00474634    48              DEC EAX
00474635    53              PUSH EBX
00474636    50              PUSH EAX
00474637    C3              RETN  ;在这里设一个F2断点,Shift+F9运行


00474637    C3              RETN  ;中断在这里,返回程序OEP,取消断点。


现在看看堆践,保存的值正是返回到记事本的OEP的地址。
0065FE38   004010CC  CHAP708.004010CC
0065FE3C   BFF8B86C  返回到 KERNEL32.BFF8B86C 来自 KERNEL32.BFF74399
0065FE40   00000000
0065FE44   8163EF50
0065FE48   00550000
0065FE4C   70616843


返回到这里,记事本OEP,这里用OD插件脱壳和修复之后,运行正常。
004010CC    55              PUSH EBP
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT CHAP708.004010FC
004010E1    56              PUSH ESI
004010E2    FF15 F4644000   CALL DWORD PTR DS:[4064F4]
004010E8    8BF0            MOV ESI,EAX
004010EA    8A00            MOV AL,BYTE PTR DS:[EAX]
004010EC    84C0            TEST AL,AL
004010EE    74 04           JE SHORT CHAP708.004010F4
004010F0    3C 22           CMP AL,22
004010F2  ^ 75 ED           JNZ SHORT CHAP708.004010E1
004010F4    803E 22         CMP BYTE PTR DS:[ESI],22
004010F7    75 15           JNZ SHORT CHAP708.0040110E
004010F9    46              INC ESI
004010FA    EB 12           JMP SHORT CHAP708.0040110E
004010FC    3C 20           CMP AL,20
004010FE    7E 0E           JLE SHORT CHAP708.0040110E

附脱壳程序。
附件:Unpack.rar
2004-10-5 17:01
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
在xp/2k下试试:D
2004-10-5 17:07
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
最初由 jingulong 发布
在xp/2k下试试:D

晕倒,在XP下真的过不了第一个异常。:(
今天不看了,要工作了,以后有时间再慢慢看。;)
反正在98系统下能脱这个壳,不管是98系统还是XP系统,只要能脱壳就是好系统。:D
2004-10-5 17:44
0
雪    币: 5690
活跃值: (2537)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
OD设置除了内存访问异常不忽略,其余全忽略,用Shist+F9忽略异常运行,4次异常之后程序就正常启动。

第三次(最后一次异常)
00484A52    33C0            XOR EAX,EAX
00484A54    5A              POP EDX
00484A55    59              POP ECX
00484A56    59              POP ECX
00484A57    64:8910         MOV DWORD PTR FS:[EAX],EDX
00484A5A    EB 0A           JMP SHORT 00484A66
00484A5C  ^ E9 9B07FFFF     JMP 004751FC
00484A61    E8 320AFFFF     CALL 00475498
00484A66    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00484A69    0145 F8         ADD DWORD PTR SS:[EBP-8],EAX
00484A6C    833D 8CBC4800 0>CMP DWORD PTR DS:[48BC8C],0
00484A73    0F9405 90BC4800 SETE BYTE PTR DS:[48BC90]
00484A7A    EB 01           JMP SHORT 00484A7D
00484A7C  ^ EB 8B           JMP SHORT 00484A09
00484A7E    65:FC           CLD                                      ; 多余的前缀
00484A80    EB 01           JMP SHORT 00484A83
00484A82    E8 8B45F8EB     CALL EC409012
00484A87    02E9            ADD CH,CL
00484A89    14 8B           ADC AL,8B
00484A8B    1D 80AC4800     SBB EAX,48AC80
00484A90    EB 01           JMP SHORT 00484A93
00484A92  ^ EB 89           JMP SHORT 00484A1D
00484A94    04 1C           ADD AL,1C
00484A96    EB 02           JMP SHORT 00484A9A
00484A98  ^ EB E8           JMP SHORT 00484A82
00484A9A    61              POPAD
00484A9B    EB 01           JMP SHORT 00484A9E
00484A9D    E8 50EB02E9     CALL E94B35F2
00484AA2    17              POP SS                                   ; 修正的段位寄存器
00484AA3    E8 02000000     CALL 00484AAA
00484AA8  - E9 1758803D     JMP 3DC8A2C4
00484AAD    90              NOP
00484AAE    BC 48000074     MOV ESP,74000048
00484AB3    235B 6A         AND EBX,DWORD PTR DS:[EBX+6A]
00484AB6    10B8 5EAC4800   ADC BYTE PTR DS:[EAX+48AC5E],BH
00484ABC    83C0 0A         ADD EAX,0A
00484ABF    8B00            MOV EAX,DWORD PTR DS:[EAX]
00484AC1    50              PUSH EAX
00484AC2    B8 6EAC4800     MOV EAX,48AC6E
00484AC7    83E8 0A         SUB EAX,0A
00484ACA    8B00            MOV EAX,DWORD PTR DS:[EAX]
00484ACC    50              PUSH EAX
00484ACD    6A 00           PUSH 0
00484ACF    B8 E96B4700     MOV EAX,476BE9
00484AD4    48              DEC EAX
00484AD5    53              PUSH EBX
00484AD6    50              PUSH EAX
00484AD7    C3              RETN    下断点  shift+f9 运行

00484AD7    C3              RETN   4010cc   f8 一次

到达

004010CC    55              PUSH EBP
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT CHAP708.004010FC
004010E1    56              PUSH ESI
2004-10-5 19:53
0
雪    币: 203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 小虾 发布

晕倒,在XP下真的过不了第一个异常。:(
今天不看了,要工作了,以后有时间再慢慢看。;)
反正在98系统下能脱这个壳,不管是98系统还是XP系统,只要能脱壳就是好系统。:D

在2000下也是这样。
2004-10-5 20:17
0
雪    币: 513
活跃值: (2258)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
13
:D 没有想像中那么难吧!!!!!
2004-10-5 20:37
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
14
最初由 lucktiger 发布
OD设置除了内存访问异常不忽略,其余全忽略,用Shist+F9忽略异常运行,4次异常之后程序就正常启动。

第三次(最后一次异常)
00484A52 33C0 XOR EAX,EAX
00484A54 5A POP EDX
........


9x不在讨论范围:D
2004-10-5 23:28
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
15
最初由 loveboom 发布
:D 没有想像中那么难吧!!!!!


你试试吧:D
2004-10-5 23:30
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
http://bbs.pediy.com/showthread.php?s=&threadid=4509

哪位能不能帮忙看一下?一样的问题!
2004-10-6 08:44
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
17
这说明了什么?
2004-10-6 18:11
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我的是 xp sp2 也是在异常的地方过不去 代码段是空白的
2004-10-6 19:56
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
19
跟踪如下:
下:g 40dc28,然后F8一次,然后Alt+F9,然后F8 3次后看到:

00199495  mov ebx,442908
0019949A  add ebx,ebp
0019949C  sub ebx,dword ptr ss:[ebp+442935]
001994A2  cmp dword ptr ss:[ebp+4430A0],0
001994A9  mov dword ptr ss:[ebp+442DF7],ebx
001994AF  jnz 001999F7        直接到这个地址F4

来到:

001999F7  mov eax,dword ptr ss:[ebp+442A29]
001999FD  push eax
001999FE  add eax,dword ptr ss:[ebp+4430A0]
00199A04  pop ebx
00199A05  or ebx,ebx
00199A07  mov dword ptr ss:[ebp+442ED9],eax
00199A0D  popad
00199A0E  jnz short 00199A18
00199A10  mov eax,1
00199A15  retn 0C
00199A18  push 18BA84
00199A1D  retn        到此F4,再F8

来到:

0018BA84  push ebp
0018BA85  mov ebp,esp
0018BA87  add esp,-0C
0018BA8A  call 0017B5FC        F7跟进
0018BA8F  jnz 0017C424
0018BA95  call 0017C8E0
0018BA9A  call 0017F1E4
0018BA9F  call 00180FC0
0018BAA4  call 0018654C
0018BAA9  call 0017C424
0018BAAE  mov esp,ebp
0018BAB0  pop ebp
0018BAB1  retn 0C

    跟进call 0017B5FC后

0017B5FC  call 0017B4CC
0017B601  mov dword ptr ds:[191848],ebp
0017B607  mov dword ptr ds:[19184C],ebx
0017B60D  mov dword ptr ds:[191850],esi
0017B613  mov dword ptr ds:[191854],edi
0017B619  mov byte ptr ds:[191474],1
0017B620  mov eax,dword ptr ss:[ebp+8]
0017B623  mov dword ptr ds:[19145C],eax
0017B629  mov eax,dword ptr ss:[ebp+C]
0017B62C  inc eax
0017B62D  mov byte ptr ds:[191858],al
0017B632  dec eax
0017B633  mov edx,8
0017B638  test edx,edx
0017B63A  je short 0017B645
0017B63C  push eax
0017B63D  call dword ptr ds:[eax*4+18C45C]
0017B644  pop eax
0017B645  mov edx,dword ptr ds:[19146C]
0017B64B  test edx,edx
0017B64D  je short 0017B651
0017B64F  call edx        XP下在此异常,通不过,在98下则会跳过这一行
0017B651  mov al,byte ptr ds:[191858]
0017B656  cmp al,2
0017B659  retn
2004-10-6 20:24
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
20
moon你说的大概很多人都能跟到,Why to lead that???;而且XP下当前的seh跟进是个死循环来的,GetTickCount取得的时间值好像得的没见比较???

Jingulong好像有买关子的嫌疑?;)
2004-10-6 21:08
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
21
关键是在98下不会执行那一行,是否考虑让其跳过?可我让它跳过了,却也不成。
2004-10-7 17:41
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
22
至今还没有结果.
2004-10-22 21:18
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
23
种种迹象表明这个aspr跟jgl有一腿
2004-10-22 21:30
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
24
没有98这个不就脱不了.
2004-11-14 00:58
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
最初由 David 发布
没有98这个不就脱不了.


问题是程序在2000/XP下被Ring 3级的调试器载入后就会出现一个无法通过的异常!如果用SOFTICE就不会有这个问题!

虽然看了heXer老大的文章,但仍不知何解!
2004-11-23 09:02
0
游客
登录 | 注册 方可回帖
返回
//