4个软件以放在:http://free5.ys168.com/?lzmo123
脱文1.软件名字Arm
软件类型:加密 加壳工具查
PEID查不出壳的类型
OD载入
0040FB3F >- E9 1406FFFF JMP Arm.00400158 ;这里
0040FB44 0000 ADD BYTE PTR DS:[EAX],AL
0040FB46 0002 ADD BYTE PTR DS:[EDX],AL
0040FB48 0000 ADD BYTE PTR DS:[EAX],AL
0040FB4A 000CC0 ADD BYTE PTR DS:[EAX+EAX*8],CL
0040FB4D 0000 ADD BYTE PTR DS:[EAX],AL
0040FB4F 0000 ADD BYTE PTR DS:[EAX],AL
0040017C . B0 10 MOV AL,10
0040017E > FF13 CALL DWORD PTR DS:[EBX]
00400180 . 12C0 ADC AL,AL
00400182 .^ 73 FA JNB SHORT Arm.0040017E ;有回跳
00400184 . 75 3E JNZ SHORT Arm.004001C4 ;F4 (运行到这里)
00400187 .^\EB E0 JMP SHORT Arm.00400169 ;回跳
00400189 > E8 72BE0000 CALL Arm.0040C000 ;有CALL不能下 F4退后一行
0040018E . 02F6 ADD DH,DH ;这里可以F4
004001C9 . F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
004001CB . 5E POP ESI
004001CC .^ EB 9B JMP SHORT Arm.00400169 ; 有回跳
004001CE > AD LODS DWORD PTR DS:[ESI] ; 这里下F4
004001CF . 85C0 TEST EAX,EAX
004001D9 . 3C 00 CMP AL,0
004001DB .^ 75 FB JNZ SHORT Arm.004001D8 ; 和前面一样,不能回跳
004001DD . FF53 F0 CALL DWORD PTR DS:[EBX-10] ; 有CALL 也不能下F4
004001E0 . 95 XCHG EAX,EBP ; 在这一行下
004001F4 . FF53 F4 CALL DWORD PTR DS:[EBX-C]
004001F7 . AB STOS DWORD PTR ES:[EDI]
004001F8 .^ 75 E7 JNZ SHORT Arm.004001E1 ; 回跳
004001FA . C3 RETN ; 要大跳咯,就这里F4
00401000 6A 00 PUSH 0 ; 入口点 对吧!
00401002 E8 17220000 CALL Arm.0040321E ; JMP 到 kernel32.GetModuleHandleA
00401007 A3 1C504000 MOV DWORD PTR DS:[40501C],EAX
0040100C 6A 00 PUSH 0
0040100E 68 24104000 PUSH Arm.00401024
00401013 6A 00 PUSH 0
00401015 6A 65 PUSH 65
00401017 50 PUSH EAX
00401018 E8 9B210000 CALL Arm.004031B8 ; JMP 到 USER32.DialogBoxParamA
0040101D 6A 00 PUSH 0
0040101F E8 EE210000 CALL Arm.00403212 ; JMP 到 kernel32.ExitProcess
00401024 55 PUSH EBP
00401025 8BEC MOV EBP,ESP
00401027 53 PUSH EBX
00401028 57 PUSH EDI
00401029 56 PUSH ESI
脱后可以运行,为MASM32 / TASM32编写!
总结:这个壳虽然不知道是什么壳,但是都比较传统,所以就用传统脱法。(菜鸟练习)
脱文2.软件名字:!EP v1.0
类型:压缩工具
PEID查不出类型
OD载入
0049F2A7 > 9C PUSHFD ; 来到这里!看这里,就知道应该是ASP的壳
0049F2A8 60 PUSHAD
0049F2A9 E8 00000000 CALL !EP_v1_0.0049F2AE
0049F2AE 5D POP EBP
0049F2AF B8 07000000 MOV EAX,7
0049F3B8 8A07 MOV AL,BYTE PTR DS:[EDI]
0049F3BA 47 INC EDI
0049F3BB 2C E8 SUB AL,0E8
0049F3BD 3C 01 CMP AL,1
0049F3BF ^ 77 F7 JA SHORT !EP_v1_0.0049F3B8 ; 一路到这里,有回跳!
0049F3C1 8B07 MOV EAX,DWORD PTR DS:[EDI] ; F4到这里!
0049F3F5 ^\E2 C6 LOOPD SHORT !EP_v1_0.0049F3BD ; 又是回跳
0049F3F7 E8 39010000 CALL !EP_v1_0.0049F535 ; CALL 不能下F4
0049F3FC 8D8D CDFBFFFF LEA ECX,DWORD PTR SS:[EBP-433] ; 这里下!
0049F402 8B41 08 MOV EAX,DWORD PTR DS:[ECX+8]
0049F51A 83C3 0C ADD EBX,0C
0049F51D ^ E2 E1 LOOPD SHORT !EP_v1_0.0049F500 ; 回跳!
0049F51F B8 00000000 MOV EAX,0 ; F4
0049F52E 61 POPAD ; 这里因该是出口标志,看看后面在下结论!
0049F52F 9D POPFD
0049F530 - E9 EB6AFDFF JMP !EP_v1_0.00476020 ; 很明显一个大跳!那后面就是OEP咯
0049F535 8BB5 81FBFFFF MOV ESI,DWORD PTR SS:[EBP-47F]
0049F53B 0BF6 OR ESI,ESI
0049F53D 0F84 97000000 JE !EP_v1_0.0049F5DA
0049F543 8B95 89FBFFFF MOV EDX,DWORD PTR SS:[EBP-477]
00476020 55 DB 55 ; CHAR 'U' ; OEP在这里
00476021 8B DB 8B
00476022 EC DB EC
00476023 83 DB 83
00476024 C4 DB C4
00476025 F0 DB F0
00476026 B8 DB B8
00476027 10 DB 10
00476028 5E DB 5E ; CHAR '^'
00476029 47 DB 47 ; CHAR 'G'
0047602A 00 DB 00
0047602B E8 DB E8
0047602C 20 DB 20 ; CHAR ' '
0047602D FC DB FC
0047602E F8 DB F8
0047602F FF DB FF
脱壳后正常运行。
为Borland Delphi 6.0 - 7.0编写!
总结:这个壳虽然不知道是什么壳,但是都比较传统,所以就用传统脱法。(菜鸟练习)
小结:可能有的人会问我,为什么老是用这些无聊的方法脱这些无聊的壳, 其实因为我才入门,也不懂
语言类。所以需要多多摸索其中的规律。看资料太枯燥 ,所以就手动练习。
下面接着脱
脱文3.软件名字:EProt000
软件类型:入口点加密工具
PEID不认识它,那就手动
脱壳方法:ESP定律。(个人建议,希望大家还是多走点岔路,失败的经验多了,处理失败的方法也就多了!
ESP定律脱壳比较简单,但是个人不喜欢用)
关于ESP定律 资料大家可以去网上找找!~
个人理解:一个程序运行的过程 程序运行(有壳)→程序运行(解壳)→程序运行(正常代码)
总的说就是加了壳的程序总会解压壳后才会运行的。
OD载入
0041916C > 9C PUSHFD \\来到这里注意OD右上角的寄存器ESP 的值
0041916D 60 PUSHAD
0041916E E8 00000000 CALL EProt000.00419173
00419173 5D POP EBP
00419174 B8 07000000 MOV EAX,7
00419179 2BE8 SUB EBP,EAX
0041917B 8DB5 F8FCFFFF LEA ESI,DWORD PTR SS:[EBP-308]
00419181 8B06 MOV EAX,DWORD PTR DS:[ESI]
00419183 83F8 00 CMP EAX,0
寄存器:
EAX 00000000
ECX 00010101
EDX FFFFFFFF
EBX 7FFDF000
ESP 0012FFC4 \\值是红色的对吧!先不管,因为程序还没运行。
EBP 0012FFF0
ESI 00000056
EDI 005816A8
EIP 0041916C EProt000.<模块入口点>
F8单步
0041916C > 9C PUSHFD ;载入OD来到的地方
0041916D 60 PUSHAD ; F8到这里的时候 在看寄存器的值
0041916E E8 00000000 CALL EProt000.00419173
00419173 5D POP EBP
看寄存器的值
EAX 00000000
ECX 00010101
EDX FFFFFFFF
EBX 7FFDF000
ESP 0012FFC0 \\程序运行的第一步,ESP 的值是红色的,那就把这个0012FFC0复制下来 待用。
EBP 0012FFF0
ESI 00000056
EDI 005816A8
OD下方命令处输入:dd 0012FFC0 (这里用的就是ESP 的值)在按回车
在看OD的左下角,是否是:
0012FFC0 00000246 \\选中这里,鼠标右键 → 断点 → 硬件访问 →字 F9运行
0012FFC4 77E687F5 返回到 KERNEL32.77E687F5
0012FFC8 005816A8
0012FFCC 00000056
0012FFD0 7FFDF000
0012FFD4 00000200
0012FFD8 0012FFC8
0012FFDC 00000200
0012FFE0 FFFFFFFF SEH 链尾部
0012FFE4 77E7F0B4 SE处理程序
0012FFE8 77E68EC8 KERNEL32.77E68EC8
0012FFEC 00000000
0012FFF0 00000000
0012FFF4 00000000
0012FFF8 0041916C OFFSET EProt000.<模块入口点>
004193F5 - E9 4220FFFF JMP EProt000.0040B43C \\来到这里,004193F5和 0040B43C的值相差很大,那应该是OEP了 F8单步一下
004193FA 8BB5 ACFCFFFF MOV ESI,DWORD PTR SS:[EBP-354]
00419400 0BF6 OR ESI,ESI
00419402 0F84 97000000 JE EProt000.0041949F
00419408 8B95 B4FCFFFF MOV EDX,DWORD PTR SS:[EBP-34C]
0041940E 03F2 ADD ESI,EDX
00419410 833E 00 CMP DWORD PTR DS:[ESI],0
00419413 75 0E JNZ SHORT EProt000.00419423
00419415 837E 04 00 CMP DWORD PTR DS:[ESI+4],0
00419419 75 08 JNZ SHORT EProt000.00419423
0041941B 837E 08 00 CMP DWORD PTR DS:[ESI+8],0
0041941F 75 02 JNZ SHORT EProt000.00419423
00419421 EB 7A JMP SHORT EProt000.0041949D
00419423 8B5E 08 MOV EBX,DWORD PTR DS:[ESI+8]
00419426 03DA ADD EBX,EDX
00419428 53 PUSH EBX
00419429 52 PUSH EDX
0041942A 56 PUSH ESI
0040B43C 55 DB 55 ; CHAR 'U' \\在明显不过的OEP了 现在就脱
0040B43D 8B DB 8B
0040B43E EC DB EC
0040B43F 83 DB 83
0040B440 C4 DB C4
0040B441 F0 DB F0
0040B442 B8 DB B8
0040B443 9C DB 9C
0040B444 B3 DB B3
0040B445 40 DB 40 ; CHAR '@'
0040B446 00 DB 00
0040B447 E8 DB E8
0040B448 9C DB 9C
0040B449 86 DB 86
0040B44A FF DB FF
0040B44B FF DB FF
0040B44C B8 DB B8
0040B44D 88 DB 88
0040B44E B4 DB B4
0040B44F 40 DB 40 ; CHAR '@'
0040B450 00 DB 00
0040B451 E8 DB E8
0040B452 4A DB 4A ; CHAR 'J'
程序脱后正常运行
为Borland Delphi 6.0 - 7.0。
总结:用ESP定律脱壳是方便,但是也有些行不通的。
建议:实在脱不下来,就用ESP定律脱,脱完 在根据入口点寻找其他的方法解决这个壳。
脱文4.软件名字:eXPressor v1.2
软件类别:压缩程序。
PEID查为PECompact 1.68 - 1.84 -> Jeremy Collake
用OD载入:
004AB9E0 > /EB 06 JMP SHORT 222.004AB9E8 ; 载入,来到这里!PECompact的第一句。
004AB9E2 |68 15F50100 PUSH 1F515
004AB9E7 |C3 RETN
004AB9E8 \9C PUSHFD
004AB9E9 60 PUSHAD
004AB9EA E8 02000000 CALL 222.004AB9F1 ; 这里这个CALL太近了,F7,F8会死掉
004AB9EF 33C0 XOR EAX,EAX
004AB9F1 8BC4 MOV EAX,ESP ; 跳到这里,下面F8一路走。
004AB9F3 83C0 04 ADD EAX,4
004AB9F6 93 XCHG EAX,EBX
004AE24E AD LODS DWORD PTR DS:[ESI]
004AE24F 85C0 TEST EAX,EAX
004AE251 0F84 9B000000 JE 222.004AE2F2 ; 这里有个跳是跳到循环外面的,但是是灰色。先不管他,看看下面往回跳不。记住位置
(在这里回车)
004AE257 8BD0 MOV EDX,EAX
004AE259 0395 E6904000 ADD EDX,DWORD PTR SS:[EBP+4090E6]
004AE25F AD LODS DWORD PTR DS:[ESI]
004AE260 56 PUSH ESI
004AE261 8BC8 MOV ECX,EAX
004AE263 57 PUSH EDI
004AE264 52 PUSH EDX
004AE265 8DB5 6BA14000 LEA ESI,DWORD PTR SS:[EBP+40A16B]
004AE26B 57 PUSH EDI
004AE26C 51 PUSH ECX
004AE26D 52 PUSH EDX
004AE26E 6A 40 PUSH 40
004AE270 56 PUSH ESI
004AE271 FFB5 3D974000 PUSH DWORD PTR SS:[EBP+40973D]
004AE277 FFB5 39974000 PUSH DWORD PTR SS:[EBP+409739]
004AE27D E8 B8090000 CALL 222.004AEC3A
004AE282 5A POP EDX
004AE283 5F POP EDI
004AE284 8D85 E4914000 LEA EAX,DWORD PTR SS:[EBP+4091E4]
004AE28A 50 PUSH EAX
004AE28B 64:67:FF36 0000 PUSH DWORD PTR FS:[0]
004AE291 64:67:8926 0000 MOV DWORD PTR FS:[0],ESP
004AE297 52 PUSH EDX
004AE298 57 PUSH EDI
004AE299 FF95 DA904000 CALL DWORD PTR SS:[EBP+4090DA]
004AE29F 64:67:8F06 0000 POP DWORD PTR FS:[0]
004AE2A5 83C4 04 ADD ESP,4
004AE2A8 85C0 TEST EAX,EAX
004AE2AA 74 07 JE SHORT 222.004AE2B3
004AE2AC 8BC8 MOV ECX,EAX
004AE2AE 5E POP ESI
004AE2AF 5F POP EDI
004AE2B0 ^ EB 9B JMP SHORT 222.004AE24D ; 跳回去了(那就从004AE25面跳出去这个循环)
004AE2B2 B9 E8000000 MOV ECX,0E8 ; 这里是个陷阱,F4就挂掉(多脱几次就知道咯)
004AE2F2 5F POP EDI \\回车后到这里,但是由于程序还没运行到着,那就F2下个断在F9运行(下个断免费运行过了头)在F2取消断点。F8向下走!
004AE2F3 8BB5 E2904000 MOV ESI,DWORD PTR SS:[EBP+4090E2]
004AE2F9 AD LODS DWORD PTR DS:[ESI]
004AE2FA 83F8 FF CMP EAX,-1
004AE2FD 74 74 JE SHORT 222.004AE373
004AE2FF 0385 E6904000 ADD EAX,DWORD PTR SS:[EBP+4090E6]
004AE305 8BD8 MOV EBX,EAX
004AE307 AD LODS DWORD PTR DS:[ESI]
004AE308 0385 E6904000 ADD EAX,DWORD PTR SS:[EBP+4090E6]
004AE3A0 /74 72 JE SHORT 222.004AE414 ; 和前面一样,也是一个循环。那方法一样。这里回车!
004AE3A2 |78 70 JS SHORT 222.004AE414
004AE3A4 |66:8B07 MOV AX,WORD PTR DS:[EDI]
004AE3A7 |2C E8 SUB AL,0E8
004AE3A9 |3C 01 CMP AL,1
004AE3AB |76 38 JBE SHORT 222.004AE3E5
004AE3AD |66:3D 1725 CMP AX,2517
004AE3B1 |74 51 JE SHORT 222.004AE404
004AE3B3 |3C 27 CMP AL,27
004AE3B5 |75 0A JNZ SHORT 222.004AE3C1
004AE3B7 |80FC 80 CMP AH,80
004AE3BA |72 05 JB SHORT 222.004AE3C1
004AE3BC |80FC 8F CMP AH,8F
004AE3BF |76 05 JBE SHORT 222.004AE3C6
004AE3C1 |47 INC EDI
004AE3C2 |43 INC EBX
004AE3C3 ^|EB DA JMP SHORT 222.004AE39F ; 往回跳。
004AE3C5 |B8 8B47023C MOV EAX,3C02478B ; 陷阱!别按F4
004AE414 5F POP EDI ; 回车后到这里,F2下个断 F9运行 在F2取消断点。F8向下走!
004AE415 59 POP ECX
004AE416 33C0 XOR EAX,EAX
004AE418 85C9 TEST ECX,ECX
004AE41A 74 3B JE SHORT 222.004AE457
004AE41C 8BF7 MOV ESI,EDI
004AE41E 33C0 XOR EAX,EAX
004AE420 83F9 04 CMP ECX,4
004AE423 72 32 JB SHORT 222.004AE457
004AE425 87DB XCHG EBX,EBX
004AE442 83F9 04 CMP ECX,4
004AE445 ^ 73 E8 JNB SHORT 222.004AE42F ; 回跳!
004AE447 BA 04000000 MOV EDX,4 ; F4 运行到这里
004AE44C 2BD1 SUB EDX,ECX
004AE44E 2BF2 SUB ESI,EDX
004AE450 B9 04000000 MOV ECX,4
004AE455 ^ EB D8 JMP SHORT 222.004AE42F ; 回跳!
004AE457 3B85 67974000 CMP EAX,DWORD PTR SS:[EBP+409767] ; F4 运行到这里
004AE45D 74 4D JE SHORT 222.004AE4AC
004AE45F ^ E9 4FFEFFFF JMP 222.004AE2B3
004AE464 D5 E2 AAD 0E2
004AE523 80BD 6B9F4000 C>CMP BYTE PTR SS:[EBP+409F6B],0C3
004AE52A 74 22 JE SHORT 222.004AE54E
004AE52C 8D95 6BA14000 LEA EDX,DWORD PTR SS:[EBP+40A16B]
004AE532 6A 40 PUSH 40
004AE534 52 PUSH EDX
004AE535 FFB5 3D974000 PUSH DWORD PTR SS:[EBP+40973D]
004AE53B FFB5 39974000 PUSH DWORD PTR SS:[EBP+409739]
004AE541 E8 F40A0000 CALL 222.004AF03A
004AE546 85C0 TEST EAX,EAX
004AE548 ^ 0F85 9DFDFFFF JNZ 222.004AE2EB
004AE54E 61 POPAD \\连续F8几次 看到这个。知道是什么吗?出口点哦!在来几下F8结束脱壳吧!
004AE54F 9D POPFD
004AE550 50 PUSH EAX
004AE551 68 15F54100 PUSH 222.0041F515
004AE556 C2 0400 RETN 4 \\这里就是跨断的地方!
0041F515 55 PUSH EBP \\跳出壳,保存!
0041F516 8BEC MOV EBP,ESP
0041F518 6A FF PUSH -1
0041F51A 68 80F34300 PUSH 222.0043F380
0041F51F 68 503D4200 PUSH 222.00423D50
0041F524 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0041F52A 50 PUSH EAX
0041F52B 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
0041F532 83EC 58 SUB ESP,58
0041F535 53 PUSH EBX
0041F536 56 PUSH ESI
0041F537 57 PUSH EDI
0041F538 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
0041F53B FF15 70C24300 CALL DWORD PTR DS:[43C270] ; KERNEL32.GetVersion
0041F541 33D2 XOR EDX,EDX
0041F543 8AD4 MOV DL,AH
0041F545 8915 F80D4500 MOV DWORD PTR DS:[450DF8],EDX
0041F54B 8BC8 MOV ECX,EAX
0041F54D 81E1 FF000000 AND ECX,0FF
0041F553 890D F40D4500 MOV DWORD PTR DS:[450DF4],ECX
脱壳后正常运行!
为Microsoft Visual C++ 6.0编写。
总结:这个壳不是很难,只是多脱了几次知道了其中的死循环,跳出去就没事了。
该软件其实是另一个壳,研究了半天也不知道改怎么写脱文,所以就给他换了件衣服,给我们入门的朋友练手!
脱文5.
加了壳的记事本
穿的是:ASPack 2.11 -> Alexey Solodovnikov
给新手练习用!
0040D001 > 60 PUSHAD \\ASPack 2.11的标志,F8走
0040D002 E9 3D040000 JMP NOTEPAD.0040D444
0040D007 45 INC EBP
0040D008 - 71 8C JNO SHORT NOTEPAD.0040CF96
0040D00A E7 5D OUT 5D,EAX ; I/O 命令
0040D00C 37 AAA
0040D00D 89A2 8D85CCE7 MOV DWORD PTR DS:[EDX+E7CC858D],ESP
0040D444 81DD 719D2555 SBB EBP,55259D71
0040D44A E8 14000000 CALL NOTEPAD.0040D463 \\F7跟入,F8会飞的。
0040D44F 47 INC EDI
0040D450 DA7C6B E1 FIDIVR DWORD PTR DS:[EBX+EBP*2-1F]
0040D454 43 INC EBX
0040D516 81EE 02000000 SUB ESI,2
0040D51C 0FBFFA MOVSX EDI,DX
0040D51F B2 9B MOV DL,9B
0040D521 81FB D1812D0F CMP EBX,0F2D81D1
0040D527 ^ 0F85 C4FFFFFF JNZ NOTEPAD.0040D4F1
0040D52D 66:8BD5 MOV DX,BP
0040D530 81D9 4192AA90 SBB ECX,90AA9241
0040D536 ^ E9 00FFFFFF JMP NOTEPAD.0040D43B \\这里是往回跳的,ASP一部分壳 有的JMP必须回跳
0040D53B A9 55C3500F TEST EAX,0F50C355 \\如果运行到这里就死了
0040D43B ^\E9 C7FBFFFF JMP NOTEPAD.0040D007 \\断在这里 F8回跳
0040D440 0000 ADD BYTE PTR DS:[EAX],AL
0040D442 0000 ADD BYTE PTR DS:[EAX],AL
0040D444 81DD 719D2555 SBB EBP,55259D71
0040D44A E8 14000000 CALL NOTEPAD.0040D463
0040D44F 47 INC EDI
0040D450 DA7C6B E1 FIDIVR DWORD PTR DS:[EBX+EBP*2-1F]
0040D454 43 INC EBX
0040D455 C547 33 LDS EAX,FWORD PTR DS:[EDI+33] ; 段寄存器更改
接着就是很长的一段路 遇到回跳就在
下一行F4 途中没有任何异常,常规处理。
0040D3A2 0BC9 OR ECX,ECX
0040D3A4 8985 E63C4400 MOV DWORD PTR SS:[EBP+443CE6],EAX
0040D3AA 61 POPAD \\最后出现出口标志
0040D3AB 75 08 JNZ SHORT NOTEPAD.0040D3B5
0040D3AD B8 01000000 MOV EAX,1
0040D3B2 C2 0C00 RETN 0C
0040D3B5 68 CC104000 PUSH NOTEPAD.004010CC \\指向出口地址
0040D3BA C3 RETN
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] ; kernel32.GetCommandLineA
004010D9 8BF0 MOV ESI,EAX
004010DB 8A00 MOV AL,BYTE PTR DS:[EAX]
004010DD 3C 22 CMP AL,22
004010DF 75 1B JNZ SHORT NOTEPAD.004010FC
004010E1 56 PUSH ESI
004010E2 FF15 F4644000 CALL DWORD PTR DS:[4064F4] ; USER32.CharNextA
004010E8 8BF0 MOV ESI,EAX
004010EA 8A00 MOV AL,BYTE PTR DS:[EAX]
004010EC 84C0 TEST AL,AL
004010EE 74 04 JE SHORT NOTEPAD.004010F4
004010F0 3C 22 CMP AL,22
004010F2 ^ 75 ED JNZ SHORT NOTEPAD.004010E1
004010F4 803E 22 CMP BYTE PTR DS:[ESI],22
004010F7 75 15 JNZ SHORT NOTEPAD.0040110E
004010F9 46 INC ESI
004010FA EB 12 JMP SHORT NOTEPAD.0040110E
004010FC 3C 20 CMP AL,20
脱完后正常运行,不用修复!
总结:ASPack 2.11的壳注意几个CALL 和 回跳!
哎:别说我半夜三更的没事做啊!只是少休息会,拿来学东西罢了!
以上有很多 不足,不对之处,请大虾指出。加以改正!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!