首页
社区
课程
招聘
有趣的反脱壳方式[讨论]
发表于: 2007-5-15 12:00 5136

有趣的反脱壳方式[讨论]

2007-5-15 12:00
5136
有趣的反脱壳方式

最近遇到一个软件,主程序不能直接运行,需要LOADER用WinExec加载,主程序和LOADER任何一个脱壳后都无法正常加载。是VB写的。不知从何下手。请各位兄弟看看如何?下载地址:http://www.skycn.com/soft/24321.html

执行WinExec时有个参数:winasm.exe#@?#AdtHPdb5MWkdNh309dbWb5IHghM5PRO0b5kd#@?#

用这个参数做个内容为“wasm.exe  winasm.exe#@?#AdtHPdb5MWkdNh309dbWb5IHghM5PRO0b5kd#@?#”的批处理文件,可以直接打开主程序。当然不是已脱壳的主程序。

用OD调试时可以带参数调试主程序。

LOADER程序校验处:
004429AF    8B46 3C         MOV EAX,DWORD PTR DS:[ESI+3C]
004429B2    33C9            XOR ECX,ECX
004429B4    03C6            ADD EAX,ESI
004429B6    2148 58         AND DWORD PTR DS:[EAX+58],ECX
004429B9    8D41 FF         LEA EAX,DWORD PTR DS:[ECX-1]
004429BC    BF 2083B8ED     MOV EDI,EDB88320
004429C1    33D2            XOR EDX,EDX
004429C3    8A16            MOV DL,BYTE PTR DS:[ESI]
004429C5    32D0            XOR DL,AL
004429C7    D1EA            SHR EDX,1
004429C9    73 02           JNB SHORT 004429CD                       ; 004429CD
004429CB    33D7            XOR EDX,EDI
004429CD    41              INC ECX
004429CE    80E1 07         AND CL,7
004429D1  ^ 75 F4           JNZ SHORT 004429C7                       ; 004429C7
004429D3    C1E8 08         SHR EAX,8
004429D6    33C2            XOR EAX,EDX
004429D8    46              INC ESI
004429D9    4B              DEC EBX
004429DA  ^ 7F E5           JG SHORT 004429C1                        ; 004429C1
004429DC    F7D0            NOT EAX
004429DE    3185 5F1B0000   XOR DWORD PTR SS:[EBP+1B5F],EAX///保存校验值
004429E4    6A 0C           PUSH 0C
004429E6    59              POP ECX
004429E7    8DB5 C3030000   LEA ESI,DWORD PTR SS:[EBP+3C3]
004429ED    FF76 04         PUSH DWORD PTR DS:[ESI+4]
004429F0    AD              LODS DWORD PTR DS:[ESI]
004429F1    85C0            TEST EAX,EAX
004429F3    74 05           JE SHORT 004429FA                        ; 004429FA
004429F5  ^ E2 F9           LOOPD SHORT 004429F0                     ; 004429F0
004429F7    F9              STC
004429F8    72 08           JB SHORT 00442A02                        ; 00442A02
004429FA    58              POP EAX
004429FB    61              POPAD
004429FC    6A 00           PUSH 0
004429FE    FF5424 E0       CALL NEAR DWORD PTR SS:[ESP-20]
00442A02    58              POP EAX
00442A03    8DB5 D3030000   LEA ESI,DWORD PTR SS:[EBP+3D3]
00442A09    8B36            MOV ESI,DWORD PTR DS:[ESI]
00442A0B    AC              LODS BYTE PTR DS:[ESI]
00442A0C    04 34           ADD AL,34
00442A0E    75 0C           JNZ SHORT 00442A1C     

00442C4B    8B85 80D24000   MOV EAX,DWORD PTR SS:[EBP+40D280]///取出原告保存的校验值
00442C51    50              PUSH EAX
00442C52    35 49AB5D13     XOR EAX,135DAB49
00442C57    2D F7264E8C     SUB EAX,8C4E26F7
00442C5C    5B              POP EBX                                  ; winasm.0044207F
00442C5D    6A 01           PUSH 1
00442C5F    58              POP EAX
00442C60    6A 08           PUSH 8
00442C62    59              POP ECX
00442C63    0F85 12060000   JNZ 0044327B///校验,不等于0则出错。
00442C69    74 19           JE SHORT 00442C84                        ; 00442C84
00442C6B    78 50           JS SHORT 00442CBD                        ; 00442CBD
00442C6D    6B57 5A 38      IMUL EDX,DWORD PTR DS:[EDI+5A],38
00442C71    48              DEC EAX
00442C72    61              POPAD
00442C73    75 33           JNZ SHORT 00442CA8                       ; 00442CA8
00442C75    45              INC EBP
00442C76    64:59           POP ECX                                  ; 多余的前缀
00442C78    4D              DEC EBP
00442C79    6E              OUTS DX,BYTE PTR ES:[EDI]                ; I/O 命令
00442C7A    3900            CMP DWORD PTR DS:[EAX],EAX

另一处校验:

0044300D    8D41 FF         LEA EAX,DWORD PTR DS:[ECX-1]
00443010    57              PUSH EDI
00443011    BF 2083B8ED     MOV EDI,EDB88320
00443016    33D2            XOR EDX,EDX
00443018    8A16            MOV DL,BYTE PTR DS:[ESI]
0044301A    32D0            XOR DL,AL
0044301C    D1EA            SHR EDX,1
0044301E    73 02           JNB SHORT 00443022                       ; 00443022
00443020    33D7            XOR EDX,EDI
00443022    41              INC ECX
00443023    80E1 07         AND CL,7
00443026  ^ 75 F4           JNZ SHORT 0044301C                       ; 0044301C
00443028    C1E8 08         SHR EAX,8
0044302B    33C2            XOR EAX,EDX
0044302D    46              INC ESI
0044302E    4B              DEC EBX
0044302F  ^ 7F E5           JG SHORT 00443016                        ; 00443016
00443031    5F              POP EDI
00443032    F7D0            NOT EAX
00443034    3387 8ED34000   XOR EAX,DWORD PTR DS:[EDI+40D38E]///
0044303A    35 6137E43C     XOR EAX,3CE43761
0044303F    3385 FED34000   XOR EAX,DWORD PTR SS:[EBP+40D3FE]///
00443045    F7D0            NOT EAX
00443047    2B85 82D34000   SUB EAX,DWORD PTR SS:[EBP+40D382]///
0044304D    61              POPAD
0044304E    0F85 27020000   JNZ 0044327B ///不等于0则出错。
00443054    50              PUSH EAX
00443055    51              PUSH ECX
00443056    E8 1A000000     CALL 00443075                            ; 00443075
0044305B    83F8 FF         CMP EAX,-1
0044305E    0F84 17020000   JE 0044327B                              ; 0044327B
00443064    83C7 0C         ADD EDI,0C
00443067    4E              DEC ESI
00443068    7E 06           JLE SHORT 00443070                       ; 00443070
0044306A    FFA5 48C34000   JMP NEAR DWORD PTR SS:[EBP+40C348]
00443070    E9 02010000     JMP 00443177                             ; 00443177

其余情况还没发现。请兄弟们一起动手搞定它

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
2
呵呵,回复还是0
2007-5-15 20:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在OD里带上参数 带壳调试不是一样的么 能跑起来就OK了
2007-5-16 09:35
0
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
4
在fly大侠的帮助,已经顺利解决。
2007-5-16 21:02
0
游客
登录 | 注册 方可回帖
返回
//