能力值:
( LV6,RANK:90 )
|
-
-
2 楼
发错了?还是已经脱壳?
|
能力值:
( LV9,RANK:810 )
|
-
-
3 楼
是错了,这个,上面得是我初学脱壳用trw2000+superbpm脱壳的,这个才是.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你没有高错把,这个notepad用工具不到1分钟就可以破掉啊。
|
能力值:
( LV9,RANK:810 )
|
-
-
5 楼
最初由 necofang 发布 你没有高错把,这个notepad用工具不到1分钟就可以破掉啊。
脱壳器不算,od+Ir+loadpe调试.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
调试好久调不出,谁能给个教程?
|
能力值:
( LV9,RANK:210 )
|
-
-
7 楼
最初由 David 发布 这个早期Asprotect壳用od真难调试,总是某内存地址异常,也忽略不了.
这东东放了几个月,还没人搞定?
|
能力值:
(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
|
能力值:
( LV9,RANK:210 )
|
-
-
9 楼
在xp/2k下试试:D
|
能力值:
(RANK:410 )
|
-
-
10 楼
最初由 jingulong 发布 在xp/2k下试试:D
晕倒,在XP下真的过不了第一个异常。:(
今天不看了,要工作了,以后有时间再慢慢看。;)
反正在98系统下能脱这个壳,不管是98系统还是XP系统,只要能脱壳就是好系统。:D
|
能力值:
( 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
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
最初由 小虾 发布
晕倒,在XP下真的过不了第一个异常。:( 今天不看了,要工作了,以后有时间再慢慢看。;) 反正在98系统下能脱这个壳,不管是98系统还是XP系统,只要能脱壳就是好系统。:D
在2000下也是这样。
|
能力值:
( LV9,RANK:2130 )
|
-
-
13 楼
:D 没有想像中那么难吧!!!!!
|
能力值:
( LV9,RANK:210 )
|
-
-
14 楼
最初由 lucktiger 发布 OD设置除了内存访问异常不忽略,其余全忽略,用Shist+F9忽略异常运行,4次异常之后程序就正常启动。
第三次(最后一次异常) 00484A52 33C0 XOR EAX,EAX 00484A54 5A POP EDX ........
9x不在讨论范围:D
|
能力值:
( LV9,RANK:210 )
|
-
-
15 楼
最初由 loveboom 发布 :D 没有想像中那么难吧!!!!!
你试试吧:D
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
http://bbs.pediy.com/showthread.php?s=&threadid=4509
哪位能不能帮忙看一下?一样的问题!
|
能力值:
( LV9,RANK:210 )
|
-
-
17 楼
这说明了什么?
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
我的是 xp sp2 也是在异常的地方过不去 代码段是空白的
|
能力值:
( 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
|
能力值:
( LV12,RANK:730 )
|
-
-
20 楼
moon你说的大概很多人都能跟到,Why to lead that???;而且XP下当前的seh跟进是个死循环来的,GetTickCount取得的时间值好像得的没见比较???
Jingulong好像有买关子的嫌疑?;)
|
能力值:
( LV9,RANK:210 )
|
-
-
21 楼
关键是在98下不会执行那一行,是否考虑让其跳过?可我让它跳过了,却也不成。
|
能力值:
( LV9,RANK:810 )
|
-
-
22 楼
至今还没有结果.
|
能力值:
(RANK:1060 )
|
-
-
23 楼
种种迹象表明这个aspr跟jgl有一腿
|
能力值:
( LV9,RANK:810 )
|
-
-
24 楼
没有98这个不就脱不了.
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
最初由 David 发布 没有98这个不就脱不了.
问题是程序在2000/XP下被Ring 3级的调试器载入后就会出现一个无法通过的异常!如果用SOFTICE就不会有这个问题!
虽然看了heXer老大的文章,但仍不知何解!
|
|
|