首页
社区
课程
招聘
新手学习Armadillo3.05&单&标准,请高手指出该怎么做,谢谢
发表于: 2006-12-27 16:21 4964

新手学习Armadillo3.05&单&标准,请高手指出该怎么做,谢谢

2006-12-27 16:21
4964
很想破它.我老实交待,之所以开始学习破解就是因为它了,呵呵
在对它下手之前,拜读了本论坛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脱掉后替换原文件可以正常运行

还请各位先入师门的同学和有时间的老师不吝赐教。多谢了!

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
1.
ImportREC能识别出,就不需要修复IAT了。

2.
即然跳出对话框“This program has been damaged,possibly by a bad sector f the hard drive or a virus.please reinstall it.
点确定程序退出”,说明程序己能运行,脱壳成功。还有自校验,将其去除即可。

3.
OD自带的OllyDump好像自己修正了OEP。不管如何,peid所给你的信息只供参考,毕竟脱壳后的程序,有许多Armadillo壳的垃圾数据在里面。
2006-12-27 16:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢院长亲临指导。
我想下面是否应该进行两件事情:
1、脱壳后文件减肥。
   原文件只有550K,脱壳后的文件是1.47M,记得很多大侠的教程里都有讲,应该不难
2、去除文件自校验。
   待俺再潜水一段时间,去除不了再接着问o:
2006-12-27 17:17
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
http://bbs.pediy.com/showthread.php?s=&threadid=28402
http://bbs.pediy.com/showthread.php?s=&threadid=28298

这2篇文章对你优化及去除校验有帮助。
2006-12-27 17:20
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
还有一层壳,不过FLY大哥说过,多壳等于一壳,没事,今天也找了这么个程序,搞了一下,把第二层壳也脱了,再DUMP,然后进行修复就行了
2007-1-12 10:08
0
游客
登录 | 注册 方可回帖
返回
//