首页
社区
课程
招聘
[原创]RLPack 加壳的 Armadillo find protected 1.8
发表于: 2009-1-5 22:38 10104

[原创]RLPack 加壳的 Armadillo find protected 1.8

2009-1-5 22:38
10104

【文章标题】: RLPack 加壳的 Armadillo find protected 1.8
【文章作者】: CCDebuger
【下载地址】: 自己搜索下载
【作者声明】: 只是调试时的笔记,权当灌水。
--------------------------------------------------------------------------------
【详细过程】
  原版加了 RLPack Full Edition 的壳,啥版本我不大清楚。在我的 Symantec AntiVirus 企业版下会报毒,只好脱掉。
  虽然 RLPack Full Edition 应该是个压缩壳,不过这个 Armadillo Find Protected 1.8 加的壳在 OD 里跑的话还会出错,原来是检测到了调试器。来看看怎么把这个壳去掉吧。这玩意我还试用了 Syser Debugger 来脱的,本来也想把用 Syser Debugger 脱的过程加进去,不过嫌烦,就没写了。改天有空再写吧。
  
  一、寻找 OEP
  先用 OD 载入程序看看,因为是压缩壳,OEP应该很好找,根据成对的 PUSHAD、POPAD,上下翻翻就行了:
  


  00415532 >  60              PUSHAD                                   ; 加壳程序的EP
  
00415533    E8 00000000     CALL 00415538
  00415538    8B2C24          
MOV EBP,DWORD PTR SS:[ESP]
  
省略干...
  
0041567D    A9 00000080     TEST EAX,80000000
  00415682    74 1A           
JE SHORT 0041569E
  00415684    35 00000080     
XOR EAX,80000000
  00415689    50              
PUSH EAX
  
0041568A    8985 0A140000   MOV DWORD PTR SS:[EBP+140A],EAX
  
00415690    8B85 431F0000   MOV EAX,DWORD PTR SS:[EBP+1F43]
  
00415696    C700 20202000   MOV DWORD PTR DS:[EAX],202020
  0041569C    
EB 06           JMP SHORT 004156A4
  0041569E    
FFB5 431F0000   PUSH DWORD PTR SS:[EBP+1F43]
  
004156A4    FFB5 3F1F0000   PUSH DWORD PTR SS:[EBP+1F3F]
  
004156AA    FF95 F6030000   CALL DWORD PTR SS:[EBP+3F6]
  
004156B0    85C0            TEST EAX,EAX
  
004156B2    0F84 17030000   JE 004159CF
  004156B8    
E8 F20E0000     CALL 004165AF                            
; 这个CALL是用来加密输入表的,NOP掉
  
004156BD    C785 0A140000 0>MOV DWORD PTR SS:[EBP+140A],0
  004156C7    8907            
MOV DWORD PTR DS:[EDI],EAX
  
004156C9    83C7 04         ADD EDI,4
  
省略干...
  
00415721    FF95 FE030000   CALL DWORD PTR SS:[EBP+3FE]
  
00415727    E8 06050000     CALL 00415C32
  0041572C    
E8 A7000000     CALL 004157D8
  00415731    61              
POPAD
  
00415732  E9 A5DDFEFF     JMP 004034DC                             
; 跳到程序的OEP 004034DC
  
00415737    83BD FE130000 0>CMP DWORD PTR SS:[EBP+13FE],0
  0041573E    74 16           
JE SHORT 00415756

  0012FF6C   004167F0  /CALL 到 MessageBoxA 自 ArmaFP18.004167EA
  
0012FF70   00000000  |hOwner NULL
  
0012FF74   00416DE4  |Text "Debugger detected  - please close it down and restart!
  
Windows NT usersPlease note that having the WinIce/SoftIce
  service installed means that you are running a debugger!
"
  
0012FF78   00416989  |Title = 
"Error:"
  
0012FF7C   00000030  \Style MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL

  00416794    60              PUSHAD
  
00416795    83BD B3170000 0>CMP DWORD PTR SS:[EBP+17B3],1            
; 在这设个硬件执行断点,重新载入程序
  
0041679C    74 09           JE SHORT 004167A7
  0041679E    83BD 
B7170000 0>CMP DWORD PTR SS:[EBP+17B7],1
  004167A5    75 4D           
JNZ SHORT 004167F4                       
; 这里一定要跳,不必改代码,修改一下标志位,或者运行到上面那条指令时,改一下上面 [EBP+17B7] 中的值,让它跳。否则就完蛋
  
004167A7    8D9D 46140000   LEA EBX,DWORD PTR SS:[EBP+1446]
  
004167AD    53              PUSH EBX
  
004167AE    FF95 F2030000   CALL DWORD PTR SS:[EBP+3F2]
  
004167B4    8985 1A140000   MOV DWORD PTR SS:[EBP+141A],EAX
  
004167BA    81BD 36140000 0>CMP DWORD PTR SS:[EBP+1436],ABBC680D
  
004167C4    75 12           JNZ SHORT 004167D8
  004167C6    
FFB5 36140000   PUSH DWORD PTR SS:[EBP+1436]
  
004167CC    50              PUSH EAX
  
004167CD    E8 07010000     CALL 004168D9
  004167D2    8985 36140000   
MOV DWORD PTR SS:[EBP+1436],EAX
  
004167D8    6A 30           PUSH 30
  004167DA    8D85 51140000   
LEA EAX,DWORD PTR SS:[EBP+1451]
  
004167E0    50              PUSH EAX
  
004167E1    8D85 AC180000   LEA EAX,DWORD PTR SS:[EBP+18AC]
  
004167E7    50              PUSH EAX
  
004167E8    6A 00           PUSH 0
  004167EA    
FF95 36140000   CALL DWORD PTR SS:[EBP+1436]             
; 这就是检测到调试器的对话框
  
004167F0    61              POPAD
  
004167F1    58              POP EAX
  
004167F2    61              POPAD
  
004167F3    C3              RETN
  
004167F4    61              POPAD
  
004167F5    C3              RETN

  004166F8    8D85 B7170000   LEA EAX,DWORD PTR SS:[EBP+17B7]
  
004166FE    50              PUSH EAX                                 
; 放置调试标志位的地址
  
004166FF    6A FF           PUSH -1
  00416701    
FF95 A7170000   CALL DWORD PTR SS:[EBP+17A7]             
; kernel32.CheckRemoteDebuggerPresent
  
00416707    8B85 A7170000   MOV EAX,DWORD PTR SS:[EBP+17A7]          ; kernel32.CheckRemoteDebuggerPresent
  
0041670D    8138 8B442408   CMP DWORD PTR DS:[EAX],824448B           ; 检测 CheckRemoteDebuggerPresent 函数的开头几个字节
  
00416713    75 0A           JNZ SHORT 0041671F                       ; 不跳则有调试器
  
00416715    C785 B7170000 0>MOV DWORD PTR SS:[EBP+17B7],1            ; 置标志位
  
0041671F    64:A1 30000000  MOV EAX,DWORD PTR FS:[30]
  
00416725    83C0 68         ADD EAX,68
  00416728    8B00            
MOV EAX,DWORD PTR DS:[EAX]
  
0041672A    83F8 70         CMP EAX,70
  0041672D    75 0A           
JNZ SHORT 00416739
  0041672F    
C785 B3170000 0>MOV DWORD PTR SS:[EBP+17B3],1            
; 第二个置标志位的地方
  
00416739    64:A1 18000000  MOV EAX,DWORD PTR FS:[18]

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (18)
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
CCDebuger 2009年开年就露一手了
2009-1-5 22:41
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
3
汗,灌水的
2009-1-5 22:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
只是来定大侠的,完全不懂 ,可惜没见到了 OD 教材 FOR 100
2009-1-5 22:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大侠的OD教程拜读了,只是6还没找着!
2009-1-6 08:36
0
雪    币: 255
活跃值: (49)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
感谢lz分享 ^_^
2009-1-6 13:01
0
雪    币: 178
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
感谢lz分享 ^_^呵呵
2009-1-6 16:28
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
8
感谢CCDebuger分享。仰慕已久了。
2009-1-6 18:27
0
雪    币: 185
活跃值: (477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=;]...[/QUOTE]
学习了  原来iat修复还可以这么做  要努力学习
2009-1-7 08:41
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
脱壳后的优化还可以这么做  学习了
2009-1-7 21:19
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
0012FF6C   00416BC7  /CALL 到 VirtualProtect 来自 ArmaFP.00416BC1
0012FF70   00401000  |Address = ArmaFP.<模块入口点>
0012FF74   00005000  |Size = 5000 (20480.)
0012FF78   00000020  |NewProtect = PAGE_EXECUTE_READ
0012FF7C   0041AC12  \pOldProtect = ArmaFP.0041AC12
0012FF80   00400000  ArmaFP.00400000
0012FF84   003E0031

00416BC7    83C6 0C         ADD ESI,0C
00416BCA    833E FF         CMP DWORD PTR DS:[ESI],-1
00416BCD    75 01           JNZ SHORT ArmaFP.00416BD0     ///////
00416BCF    47              INC EDI
00416BD0    0BFF            OR EDI,EDI
00416BD2  ^ 74 CD           JE SHORT ArmaFP.00416BA1
00416BD4    61              POPAD
00416BD5    C3              RETN
00416BD6    C3              RETN

00415FAE    E8 850A0000     CALL ArmaFP.00416A38
00415FB3    83BD 0C4E0000 0>CMP DWORD PTR SS:[EBP+4E0C],0
00415FBA    74 07           JE SHORT ArmaFP.00415FC3
00415FBC    E9 10100000     JMP ArmaFP.00416FD1
00415FC1    EB 01           JMP SHORT ArmaFP.00415FC4
00415FC3    61              POPAD
00415FC4  - E9 13D5FEFF     JMP ArmaFP.004034DC
00415FC9    90              NOP

004034D4    C9              LEAVE
004034D5    C3              RETN
004034D6  - FF25 78614000   JMP DWORD PTR DS:[406178]                ; comdlg32.GetOpenFileNameA
004034DC    55              PUSH EBP ////////////
004034DD    8BEC            MOV EBP,ESP
004034DF    6A FF           PUSH -1
004034E1    68 48904000     PUSH ArmaFP.00409048
004034E6    68 10404000     PUSH ArmaFP.00404010
004034EB    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
004034F1    50              PUSH EAX
004034F2    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
004034F9    83EC 58         SUB ESP,58
004034FC    53              PUSH EBX
004034FD    56              PUSH ESI
004034FE    57              PUSH EDI
004034FF    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
00403502    FF15 10614000   CALL DWORD PTR DS:[406110]               ; kernel32.GetVersion
00403508    33D2            XOR EDX,EDX
0040350A    8AD4            MOV DL,AH
0040350C    8915 A8CF4000   MOV DWORD PTR DS:[40CFA8],EDX
2009-1-10 01:17
0
雪    币: 7159
活跃值: (3682)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
喜欢cc大哥的东西,跟着做能成功!
2009-1-10 20:07
0
雪    币: 224
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
拳不离手 曲不离口啊 这就叫
lz辛苦了
2009-1-11 23:38
0
雪    币: 7159
活跃值: (3682)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
为什么 bp MessageboxA断点,第一次进入不能设置,要按f9运行了,在设置bp MessageBoxA断点,在重新开始才能断下MessageBoxA,谢谢!
2009-1-18 21:09
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
15
原来在看学2009新春大礼包里有收录
2009-1-20 10:52
0
雪    币: 14
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我想知道代码著色是怎么做到的。
2009-1-22 00:31
0
雪    币: 421
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
最喜欢CCdebuger坛主的东西了
2009-5-30 17:12
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
RLPack的全保护,anti有很多
2009-6-1 09:43
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
下载学习一下!谢谢了!
2009-6-26 10:51
0
游客
登录 | 注册 方可回帖
返回
//