很想破它.我老实交待,之所以开始学习破解就是因为它了,呵呵
在对它下手之前,拜读了本论坛Armadillo相关贴子,手工把"2006大礼包"按教程脱了一遍.
一直不敢发贴,怕这么简单的问题会被各位老师笑话。但既然开了这个新手区,我还是抖胆问一下:)
======== 27-12-2006 15:06:37 ========
C:\Documents and Settings\Administrator\桌面\a.exe
▲ 目标经Armadillo保护
保护系统授权等级(标准版)
【程序所使用保护模式】
标准保护 或 最小保护模式
【备份密钥设置】
无任何注册表操作
【程序压缩设置】
较好/较慢地压缩方式
【其它保护设置】
▲ 版本号 3.05
FI:
Armadillo 3.05 {glue} SRT .text1
PEID:
Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks
OD隐藏标题,隐藏调试器,忽略所有异常
载入后到这里:
004C7379 >/$ 55 PUSH EBP
004C737A |. 8BEC MOV EBP,ESP
004C737C |. 6A FF PUSH -1
004C737E |. 68 78C24E00 PUSH a.004EC278
004C7383 |. 68 606D4C00 PUSH a.004C6D60 ; SE 处理程序安装
004C7388 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
004C738E |. 50 PUSH EAX
004C738F |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
004C7396 |. 83EC 58 SUB ESP,58
004C7399 |. 53 PUSH EBX
004C739A |. 56 PUSH ESI
004C739B |. 57 PUSH EDI
004C739C |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
004C739F |. FF15 4C914E00 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>; kernel32.GetVersion
004C73A5 |. 33D2 XOR EDX,EDX
004C73A7 |. 8AD4 MOV DL,AH
004C73A9 |. 8915 44CC4E00 MOV DWORD PTR DS:[4ECC44],EDX
004C73AF |. 8BC8 MOV ECX,EAX
004C73B1 |. 81E1 FF000000 AND ECX,0FF
004C73B7 |. 890D 40CC4E00 MOV DWORD PTR DS:[4ECC40],ECX
下断he GetModuleHandleA,F9
0012FF38 004C7441 /CALL 到 GetModuleHandleA 来自 a.004C743B
0012FF3C 00000000 \pModule = NULL
0012FF40 00000000
F9
0012ED48 77F45BD8 /CALL 到 GetModuleHandleA 来自 SHLWAPI.77F45BD2
0012ED4C 77F4501C \pModule = "KERNEL32.DLL"
0012ED50 00000001
0012ED54 77F40000 SHLWAPI.77F40000
0012ED58 00000000
F9
0012EC88 5D175324 /CALL 到 GetModuleHandleA 来自 COMCTL32.5D17531E
0012EC8C 5D175370 \pModule = "kernel32.dll"
0012EC90 5D1E3AB8 COMCTL32.5D1E3AB8
0012EC94 00000000
F9
0012F55C 004BD073 /CALL 到 GetModuleHandleA 来自 a.004BD06D
0012F560 00000000 \pModule = NULL
0012F564 7C939BA0 返回到 ntdll.7C939BA0 来自 ntdll.7C9399B5
0012F568 00B62E91
F9
0012C280 00B65331 /CALL 到 GetModuleHandleA 来自 00B6532B
0012C284 0012C3BC \pModule = "kernel32.dll"
0012C288 00000002
0012C28C 00BA1B20
取消断点,ALT+F9返回
00B65331 8B0D 60D8B800 MOV ECX,DWORD PTR DS:[B8D860]
00B65337 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
00B6533A A1 60D8B800 MOV EAX,DWORD PTR DS:[B8D860]
00B6533F 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI
00B65342 75 16 JNZ SHORT 00B6535A
00B65344 8D85 B4FEFFFF LEA EAX,DWORD PTR SS:[EBP-14C]
00B6534A 50 PUSH EAX
00B6534B FF15 B850B800 CALL DWORD PTR DS:[B850B8] ; kernel32.LoadLibraryA
00B65351 8B0D 60D8B800 MOV ECX,DWORD PTR DS:[B8D860]
00B65357 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
00B6535A A1 60D8B800 MOV EAX,DWORD PTR DS:[B8D860]
00B6535F 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI
00B65362 0F84 AD000000 JE 00B65415 """这里改为JMP"""
00B65368 33C9 XOR ECX,ECX
00B6536A 8B03 MOV EAX,DWORD PTR DS:[EBX]
00B6536C 3938 CMP DWORD PTR DS:[EAX],EDI
00B6536E 74 06 JE SHORT 00B65376
00B65370 41 INC ECX
00B65371 83C0 0C ADD EAX,0C
00B65374 ^ EB F6 JMP SHORT 00B6536C
00B65376 8BC1 MOV EAX,ECX
00B65378 C1E0 02 SHL EAX,2
00B6537B 50 PUSH EAX
00B6537C E8 C48E0100 CALL 00B7E245
00B65381 59 POP ECX
00B65382 8B0D 5CD8B800 MOV ECX,DWORD PTR DS:[B8D85C]
00B65388 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
00B6538B 8B3B MOV EDI,DWORD PTR DS:[EBX]
00B6538D 8B07 MOV EAX,DWORD PTR DS:[EDI]
00B6538F 85C0 TEST EAX,EAX
改过后,F8到这里:
00B65415 83C3 0C ADD EBX,0C
往上翻,把刚改过的
00B65362 /E9 AE000000 JMP 00B65415
00B65367 |90 NOP
改回
00B65362 0F84 AD000000 JE 00B65415
下断bp GetCurrentThreadId,F9三次,到:
0012F5A8 00B7CF2D /CALL 到 GetCurrentThreadId 来自 00B7CF27
0012F5AC 0012FF2C
0012F5B0 00000000
删除断点,ALT+F9返回到这里:F8往下走
00B7CF2D A3 F018B900 MOV DWORD PTR DS:[B918F0],EAX
00B7CF32 E8 2487FEFF CALL 00B6565B
00B7CF37 6A 00 PUSH 0
00B7CF39 E8 4BD9FEFF CALL 00B6A889
00B7CF3E 59 POP ECX
00B7CF3F E8 7D39FFFF CALL 00B708C1
00B7CF44 8BF8 MOV EDI,EAX
00B7CF46 A1 E018B900 MOV EAX,DWORD PTR DS:[B918E0]
00B7CF4B 8B48 74 MOV ECX,DWORD PTR DS:[EAX+74]
00B7CF4E 3348 5C XOR ECX,DWORD PTR DS:[EAX+5C]
00B7CF51 3308 XOR ECX,DWORD PTR DS:[EAX]
00B7CF53 03F9 ADD EDI,ECX
00B7CF55 8B0E MOV ECX,DWORD PTR DS:[ESI]
00B7CF57 85C9 TEST ECX,ECX
00B7CF59 75 2E JNZ SHORT 00B7CF89
00B7CF5B 8B78 5C MOV EDI,DWORD PTR DS:[EAX+5C]
00B7CF5E E8 5E39FFFF CALL 00B708C1
00B7CF63 8B0D E018B900 MOV ECX,DWORD PTR DS:[B918E0] ; a.004E9258
00B7CF69 FF76 14 PUSH DWORD PTR DS:[ESI+14]
00B7CF6C 8B51 74 MOV EDX,DWORD PTR DS:[ECX+74]
00B7CF6F FF76 10 PUSH DWORD PTR DS:[ESI+10]
00B7CF72 33D7 XOR EDX,EDI
00B7CF74 3311 XOR EDX,DWORD PTR DS:[ECX]
00B7CF76 FF76 0C PUSH DWORD PTR DS:[ESI+C]
00B7CF79 03C2 ADD EAX,EDX
00B7CF7B 8B51 78 MOV EDX,DWORD PTR DS:[ECX+78]
00B7CF7E 3351 14 XOR EDX,DWORD PTR DS:[ECX+14]
00B7CF81 33D7 XOR EDX,EDI
00B7CF83 2BC2 SUB EAX,EDX
00B7CF85 FFD0 CALL EAX
00B7CF87 EB 25 JMP SHORT 00B7CFAE
00B7CF89 83F9 01 CMP ECX,1
00B7CF8C 75 22 JNZ SHORT 00B7CFB0
00B7CF8E FF76 04 PUSH DWORD PTR DS:[ESI+4]
00B7CF91 FF76 08 PUSH DWORD PTR DS:[ESI+8]
00B7CF94 6A 00 PUSH 0
00B7CF96 E8 2639FFFF CALL 00B708C1
00B7CF9B 50 PUSH EAX
00B7CF9C A1 E018B900 MOV EAX,DWORD PTR DS:[B918E0]
00B7CFA1 8B48 78 MOV ECX,DWORD PTR DS:[EAX+78]
00B7CFA4 3348 5C XOR ECX,DWORD PTR DS:[EAX+5C]
00B7CFA7 3348 14 XOR ECX,DWORD PTR DS:[EAX+14]
00B7CFAA 2BF9 SUB EDI,ECX
00B7CFAC FFD7 CALL EDI """走到这里,F7进"""
00B7CFAE 8BD8 MOV EBX,EAX
00B7CFB0 5F POP EDI
00B7CFB1 8BC3 MOV EAX,EBX
00B7CFB3 5E POP ESI
00B7CFB4 5B POP EBX
00B7CFB5 C3 RETN
00B7CFB6 837C24 08 01 CMP DWORD PTR SS:[ESP+8],1
00B7CFBB 75 14 JNZ SHORT 00B7CFD1
F7进到这:
004B6001 60 PUSHAD
004B6002 E8 03000000 CALL a.004B600A
004B6007 - E9 EB045D45 JMP 45A864F7
004B600C 55 PUSH EBP
004B600D C3 RETN
004B600E E8 01000000 CALL a.004B6014
004B6013 EB 5D JMP SHORT a.004B6072
004B6015 BB EDFFFFFF MOV EBX,-13
004B601A 03DD ADD EBX,EBP
004B601C 81EB 00600B00 SUB EBX,0B6000
004B6022 83BD 22040000 0>CMP DWORD PTR SS:[EBP+422],0
004B6029 899D 22040000 MOV DWORD PTR SS:[EBP+422],EBX
004B602F 0F85 65030000 JNZ a.004B639A
004B6035 8D85 2E040000 LEA EAX,DWORD PTR SS:[EBP+42E]
004B603B 50 PUSH EAX
004B603C FF95 4D0F0000 CALL DWORD PTR SS:[EBP+F4D]
004B6042 8985 26040000 MOV DWORD PTR SS:[EBP+426],EAX
004B6048 8BF8 MOV EDI,EAX
004B604A 8D5D 5E LEA EBX,DWORD PTR SS:[EBP+5E]
004B604D 53 PUSH EBX
004B604E 50 PUSH EAX
004B604F FF95 490F0000 CALL DWORD PTR SS:[EBP+F49]
004B6055 8985 4D050000 MOV DWORD PTR SS:[EBP+54D],EAX
004B605B 8D5D 6B LEA EBX,DWORD PTR SS:[EBP+6B]
004B605E 53 PUSH EBX
004B605F 57 PUSH EDI
004B6060 FF95 490F0000 CALL DWORD PTR SS:[EBP+F49]
004B6066 8985 51050000 MOV DWORD PTR SS:[EBP+551],EAX
运行LorDPE_FIX,选中该进程,DUMP FULL
得到dumped.exe,用FI查看它:
Armadillo 3.05 {glue} SRT .text1
用OD自带的OllyDump,方式1,DUMP
命名得到文件为:1.EXE,用FI查看它:
ASPack v2.12 A.Solodovnikov .data
运行SuperImportREC,选中该进程:
按默认的参数,点"自动搜索IAT":
进程数据相关模块信息载入完成!
映像基地址:00400000 大小:00179000
进程原始IAT数据信息发现在: 000E914C 区块 RVA:000E9000 大小:00010000
点"获取输入表",点"修复抓取文件".得到dumped_.exe
双击dumped_.exe,弹出一个警告框:
This program has been damaged,possibly by a bad sector of the hard drive or a virus.please reinstall it.
点确定程序退出
用FI查看dumped_.exe:
MS Visual C++ v5.? !! (*PE)
如果:
打开import--选择进程--OEP输入B6001--自动搜索IAT--报告"在这个OEP处未发现任何有用数据"
我的问题是:
1、是不是需要手工修复IAT
2、是不是文件自校验的缘故
3、为什么用OD自带的DUMP得到的文件会被FI查出还有一个:ASPack v2.12 A.Solodovnikov .data
4、为了脱它,我下一步该学哪些的知识,也就是说,我该怎么办:)
PS:
1、这个软件由还包括一个扩展名为INI的文件,该文件用FI查得是:
ASPack v2.12 A.Solodovnikov .data
把该INI文件当做DLL用WASPACK脱掉后替换原文件可以正常运行
还请各位先入师门的同学和有时间的老师不吝赐教。多谢了!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课