安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

简单脱壳-Armadillo360标准加壳的记事本程序

更新时间:2008-4-26 0:31:14
责任编辑:流火
热 点:
【破解作者】 csjwaman 

【作者邮箱】 csjwaman@sohu.com 

【使用工具】 OD110Bb,LordPE,ImprotREC16F,FI30 

【破解平台】 Win9x/NT/2000/XP 

【软件名称】 Armadillo360标准加壳的win98记事本程序 

【下载地址】 本地下载  

【软件简介】 Armadillo360标准加壳的win98记事本程序 

【加壳方式】 Armadillo360标准加壳 

【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:) 


-------------------------------------------------------------------------------- 

【破解内容】 


简单脱壳-Armadillo360标准加壳的win98记事本程序 

用FI30查看为Armadillo 2.5? {glue}加壳(晕!)。首选用IsDebug 1.4插件去掉Ollydbg的调试器标志。设置忽略所有的异常选项。 
载入程序后,停在: 


00432999 >/$Content$nbsp; 55            PUSH EBP====>停在此处。 
0043299A  |.  8BEC          MOV EBP,ESP 
0043299C  |.  6A FF         PUSH -1 
0043299E  |.  68 502C4500   PUSH NOTEPAD.00452C50 
004329A3  |.  68 80234300   PUSH NOTEPAD.00432380                    ;  SE handler installation 
004329A8  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 
004329AE  |.  50            PUSH EAX 
004329AF  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP 


一、DUMP程序 

ALT+M打开内存镜像: 

Memory map, item 11 
Address=00400000 
Size=00001000 (4096.)=====>在这行下内存访问断点。 
Owner=NOTEPAD  00400000 (itself) 
Section= 
Contains=PE header 
Type=Imag 01001002 
Access=R 
Initial access=RWE 

F9运行程序,中间会有一个提示错误的对话框,点确定后再SHIFT+F9程序断在: 

004010CC    55              PUSH EBP=====>呵呵,这是什么?DUMP吧! 
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 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 
004010FE    7E 0E           JLE SHORT NOTEPAD.0040110E 
00401100    56              PUSH ESI 
00401101    FF15 F4644000   CALL DWORD PTR DS:[4064F4]               ; USER32.CharNextA 
00401107    8038 20         CMP BYTE PTR DS:[EAX],20 
0040110A    8BF0            MOV ESI,EAX 
0040110C  ^ 7F F2           JG SHORT NOTEPAD.00401100 
0040110E    803E 00         CMP BYTE PTR DS:[ESI],0 


DUMP后用LordPE修改入口点为4010CC。 


二、查找Magic JMP 

用OD载入DUMP程序: 

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]=====>当用F7走到这里时出错,记下地址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 dumped.004010FC 
004010E1    56              PUSH ESI 


用OD载入带壳程序,在DUMP区CTRL+G,输入4063E4,点OK,在DUMP区看到的都是00000000,看来数据还未写入。好,在4063E4处的4个字节上下硬件写入DWORD断点。F9运行程序,出现错误提示对话框,确定后SHIFT+F9。再F9一次,程序停在: 

00A5181A    8B85 20ECFFFF   MOV EAX,DWORD PTR SS:[EBP-13E0]=====>断在此处(不要删除断点,等下还要用)。再看看DUMP区,数据已经写入了。 
00A51820    83C0 04         ADD EAX,4 
00A51823    8985 20ECFFFF   MOV DWORD PTR SS:[EBP-13E0],EAX 
00A51829  ^ E9 36FDFFFF     JMP 00A51564 
00A5182E    83BD F4EAFFFF 0>CMP DWORD PTR SS:[EBP-150C],0 
00A51835    0F85 8A000000   JNZ 00A518C5 
00A5183B    0FB685 B0E8FFFF MOVZX EAX,BYTE PTR SS:[EBP-1750] 
00A51842    85C0            TEST EAX,EAX 
00A51844    74 7F           JE SHORT 00A518C5 
00A51846    6A 00           PUSH 0 
00A51848    8B85 B4E8FFFF   MOV EAX,DWORD PTR SS:[EBP-174C] 
00A5184E    C1E0 02         SHL EAX,2 
00A51851    50              PUSH EAX 


往上找Magic JMP,来到: 

00A51349    FF15 C480A500   CALL DWORD PTR DS:[A580C4]                        ; KERNEL32.GetModuleHandleA 
00A5134F    3985 BCE8FFFF   CMP DWORD PTR SS:[EBP-1744],EAX 
00A51355    75 0F           JNZ SHORT 00A51366 
00A51357    C785 B8E8FFFF 3>MOV DWORD PTR SS:[EBP-1748],0A5C530 
00A51361    E9 C4000000     JMP 00A5142A 
00A51366    83A5 94E6FFFF 0>AND DWORD PTR SS:[EBP-196C],0 
00A5136D    C785 90E6FFFF 4>MOV DWORD PTR SS:[EBP-1970],0A5CB48 
00A51377    EB 1C           JMP SHORT 00A51395 
00A51379    8B85 90E6FFFF   MOV EAX,DWORD PTR SS:[EBP-1970] 
00A5137F    83C0 0C         ADD EAX,0C 
00A51382    8985 90E6FFFF   MOV DWORD PTR SS:[EBP-1970],EAX 
00A51388    8B85 94E6FFFF   MOV EAX,DWORD PTR SS:[EBP-196C] 
00A5138E    40              INC EAX 
00A5138F    8985 94E6FFFF   MOV DWORD PTR SS:[EBP-196C],EAX 
00A51395    8B85 90E6FFFF   MOV EAX,DWORD PTR SS:[EBP-1970] 
00A5139B    8338 00         CMP DWORD PTR DS:[EAX],0 
00A5139E    0F84 86000000   JE 00A5142A=====>这就是Magic JMP! 
00A513A4    8B85 90E6FFFF   MOV EAX,DWORD PTR SS:[EBP-1970] 
00A513AA    8B40 08         MOV EAX,DWORD PTR DS:[EAX+8] 
00A513AD    83E0 01         AND EAX,1 
00A513B0    85C0            TEST EAX,EAX 
00A513B2    74 25           JE SHORT 00A513D9 
00A513B4    A1 9455A600     MOV EAX,DWORD PTR DS:[A65594] 
00A513B9    8B0D 9455A600   MOV ECX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A513BF    8B40 58         MOV EAX,DWORD PTR DS:[EAX+58] 
00A513C2    3341 6C         XOR EAX,DWORD PTR DS:[ECX+6C] 
00A513C5    8B0D 9455A600   MOV ECX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A513CB    3341 70         XOR EAX,DWORD PTR DS:[ECX+70] 
00A513CE    25 80000000     AND EAX,80 
00A513D3    85C0            TEST EAX,EAX 
00A513D5    74 02           JE SHORT 00A513D9 
00A513D7  ^ EB A0           JMP SHORT 00A51379 
00A513D9    8B85 94E6FFFF   MOV EAX,DWORD PTR SS:[EBP-196C] 
00A513DF    8B0D E011A600   MOV ECX,DWORD PTR DS:[A611E0] 
00A513E5    8B15 9455A600   MOV EDX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A513EB    8B0481          MOV EAX,DWORD PTR DS:[ECX+EAX*4] 
00A513EE    3342 54         XOR EAX,DWORD PTR DS:[EDX+54] 
00A513F1    8B0D 9455A600   MOV ECX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A513F7    3341 70         XOR EAX,DWORD PTR DS:[ECX+70] 
00A513FA    8B0D 9455A600   MOV ECX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A51400    3341 24         XOR EAX,DWORD PTR DS:[ECX+24] 
00A51403    8B0D 9455A600   MOV ECX,DWORD PTR DS:[A65594]                     ; NOTEPAD.0044D260 
00A51409    3341 30         XOR EAX,DWORD PTR DS:[ECX+30] 
00A5140C    3985 BCE8FFFF   CMP DWORD PTR SS:[EBP-1744],EAX 
00A51412    75 11           JNZ SHORT 00A51425 
00A51414    8B85 90E6FFFF   MOV EAX,DWORD PTR SS:[EBP-1970] 
00A5141A    8B40 04         MOV EAX,DWORD PTR DS:[EAX+4] 
00A5141D    8985 B8E8FFFF   MOV DWORD PTR SS:[EBP-1748],EAX 
00A51423    EB 05           JMP SHORT 00A5142A 
00A51425  ^ E9 4FFFFFFF     JMP 00A51379 
00A5142A    80A5 B0E8FFFF 0>AND BYTE PTR SS:[EBP-1750],0 
00A51431    83BD F4EAFFFF 0>CMP DWORD PTR SS:[EBP-150C],0 
00A51438    75 3F           JNZ SHORT 00A51479 
00A5143A    A1 6C5AA600     MOV EAX,DWORD PTR DS:[A65A6C] 
00A5143F    8A80 82370000   MOV AL,BYTE PTR DS:[EAX+3782] 
00A51445    8885 4CD2FFFF   MOV BYTE PTR SS:[EBP-2DB4],AL 
00A5144B    0FB685 4CD2FFFF MOVZX EAX,BYTE PTR SS:[EBP-2DB4] 
00A51452    85C0            TEST EAX,EAX 
00A51454    74 23           JE SHORT 00A51479 
00A51456    8B85 ACE8FFFF   MOV EAX,DWORD PTR SS:[EBP-1754] 
00A5145C    3B85 B8FDFFFF   CMP EAX,DWORD PTR SS:[EBP-248] 
00A51462    72 15           JB SHORT 00A51479 
00A51464    8B85 ACE8FFFF   MOV EAX,DWORD PTR SS:[EBP-1754] 
00A5146A    3B85 C4FDFFFF   CMP EAX,DWORD PTR SS:[EBP-23C] 
00A51470    73 07           JNB SHORT 00A51479 
00A51472    C685 B0E8FFFF 0>MOV BYTE PTR SS:[EBP-1750],1 

记下Magic JMP的地址00A5139E。 

1 2 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画