首页
社区
课程
招聘
[求助]脱壳后运行狂吃内存
发表于: 2006-3-19 17:16 4973

[求助]脱壳后运行狂吃内存

2006-3-19 17:16
4973
最近想学围棋,找了半天,找了一款中文的软件,还要注册,于是想把他破了,用peid查壳,UPX-Scrambler RC1.x -> ┫nT?L的,脱掉以后,显示为vc++,应该脱掉了,可是运行以后,狂吃内存,接着无任何提示就挂掉了。
用od载入,就开始自动跑起来。

0048D4AC > 55               PUSH EBP                  
0048D4AD   8BEC             MOV EBP,ESP
0048D4AF   6A FF            PUSH -1
0048D4B1   68 D8674A00      PUSH Go600_Un.004A67D8
0048D4B6   68 16D64800      PUSH <JMP.&MSVCRT._except_handler3>
0048D4BB   64:A1 00000000   MOV EAX,DWORD PTR FS:[0]
0048D4C1   50               PUSH EAX
0048D4C2   64:8925 00000000 MOV DWORD PTR FS:[0],ESP
0048D4C9   83EC 68          SUB ESP,68
0048D4CC   53               PUSH EBX
0048D4CD   56               PUSH ESI
0048D4CE   57               PUSH EDI
0048D4CF   8965 E8          MOV DWORD PTR SS:[EBP-18],ESP
0048D4D2   33DB             XOR EBX,EBX
0048D4D4   895D FC          MOV DWORD PTR SS:[EBP-4],EBX
0048D4D7   6A 02            PUSH 2
0048D4D9   FF15 B8EA4900    CALL DWORD PTR DS:[<&MSVCRT.__set_app_ty>; MSVCRT.__set_app_type
0048D4DF   59               POP ECX
0048D4E0   830D 5CB94B00 FF OR DWORD PTR DS:[4BB95C],FFFFFFFF
0048D4E7   830D 60B94B00 FF OR DWORD PTR DS:[4BB960],FFFFFFFF
0048D4EE   FF15 BCEA4900    CALL DWORD PTR DS:[<&MSVCRT.__p__fmode>] ; MSVCRT.__p__fmode
0048D4F4   8B0D 50B94B00    MOV ECX,DWORD PTR DS:[4BB950]
0048D4FA   8908             MOV DWORD PTR DS:[EAX],ECX
0048D4FC   FF15 C0EA4900    CALL DWORD PTR DS:[<&MSVCRT.__p__commode>; MSVCRT.__p__commode
0048D502   8B0D 4CB94B00    MOV ECX,DWORD PTR DS:[4BB94C]
0048D508   8908             MOV DWORD PTR DS:[EAX],ECX
0048D50A   A1 C4EA4900      MOV EAX,DWORD PTR DS:[<&MSVCRT._adjust_f>
0048D50F   8B00             MOV EAX,DWORD PTR DS:[EAX]
0048D511   A3 58B94B00      MOV DWORD PTR DS:[4BB958],EAX
0048D516   E8 28010000      CALL Go600_Un.0048D643
0048D51B   391D C8A94B00    CMP DWORD PTR DS:[4BA9C8],EBX
0048D521   75 0C            JNZ SHORT Go600_Un.0048D52F
0048D523   68 40D64800      PUSH Go600_Un.0048D640
0048D528   FF15 C8EA4900    CALL DWORD PTR DS:[<&MSVCRT.__setusermat>; MSVCRT.__setusermatherr
0048D52E   59               POP ECX
0048D52F   E8 FA000000      CALL Go600_Un.0048D62E
0048D534   68 2C914B00      PUSH Go600_Un.004B912C
0048D539   68 28914B00      PUSH Go600_Un.004B9128
0048D53E   E8 E5000000      CALL <JMP.&MSVCRT._initterm>
0048D543   A1 48B94B00      MOV EAX,DWORD PTR DS:[4BB948]
0048D548   8945 94          MOV DWORD PTR SS:[EBP-6C],EAX
0048D54B   8D45 94          LEA EAX,DWORD PTR SS:[EBP-6C]
0048D54E   50               PUSH EAX
0048D54F   FF35 44B94B00    PUSH DWORD PTR DS:[4BB944]
0048D555   8D45 9C          LEA EAX,DWORD PTR SS:[EBP-64]
0048D558   50               PUSH EAX
0048D559   8D45 90          LEA EAX,DWORD PTR SS:[EBP-70]
0048D55C   50               PUSH EAX
0048D55D   8D45 A0          LEA EAX,DWORD PTR SS:[EBP-60]
0048D560   50               PUSH EAX
0048D561   FF15 CCEA4900    CALL DWORD PTR DS:[<&MSVCRT.__getmainarg>; MSVCRT.__getmainargs
0048D567   68 24914B00      PUSH Go600_Un.004B9124
0048D56C   68 00904B00      PUSH Go600_Un.004B9000
0048D571   E8 B2000000      CALL <JMP.&MSVCRT._initterm>
0048D576   83C4 24          ADD ESP,24
0048D579   A1 D0EA4900      MOV EAX,DWORD PTR DS:[<&MSVCRT._acmdln>]
0048D57E   8B30             MOV ESI,DWORD PTR DS:[EAX]
0048D580   8975 8C          MOV DWORD PTR SS:[EBP-74],ESI
0048D583   803E 22          CMP BYTE PTR DS:[ESI],22
0048D586   75 3A            JNZ SHORT Go600_Un.0048D5C2
0048D588   46               INC ESI
0048D589   8975 8C          MOV DWORD PTR SS:[EBP-74],ESI
0048D58C   8A06             MOV AL,BYTE PTR DS:[ESI]
0048D58E   3AC3             CMP AL,BL
0048D590   74 04            JE SHORT Go600_Un.0048D596
0048D592   3C 22            CMP AL,22
0048D594  ^75 F2            JNZ SHORT Go600_Un.0048D588
0048D596   803E 22          CMP BYTE PTR DS:[ESI],22
0048D599   75 04            JNZ SHORT Go600_Un.0048D59F
0048D59B   46               INC ESI
0048D59C   8975 8C          MOV DWORD PTR SS:[EBP-74],ESI
0048D59F   8A06             MOV AL,BYTE PTR DS:[ESI]
0048D5A1   3AC3             CMP AL,BL
0048D5A3   74 04            JE SHORT Go600_Un.0048D5A9
0048D5A5   3C 20            CMP AL,20
0048D5A7  ^76 F2            JBE SHORT Go600_Un.0048D59B
0048D5A9   895D D0          MOV DWORD PTR SS:[EBP-30],EBX
0048D5AC   8D45 A4          LEA EAX,DWORD PTR SS:[EBP-5C]
0048D5AF   50               PUSH EAX
0048D5B0   FF15 00E14900    CALL DWORD PTR DS:[<&KERNEL32.GetStartup>; KERNEL32.GetStartupInfoA
0048D5B6   F645 D0 01       TEST BYTE PTR SS:[EBP-30],1
0048D5BA   74 11            JE SHORT Go600_Un.0048D5CD
0048D5BC   0FB745 D4        MOVZX EAX,WORD PTR SS:[EBP-2C]
0048D5C0   EB 0E            JMP SHORT Go600_Un.0048D5D0
0048D5C2   803E 20          CMP BYTE PTR DS:[ESI],20
0048D5C5  ^76 D8            JBE SHORT Go600_Un.0048D59F
0048D5C7   46               INC ESI
0048D5C8   8975 8C          MOV DWORD PTR SS:[EBP-74],ESI
0048D5CB  ^EB F5            JMP SHORT Go600_Un.0048D5C2
0048D5CD   6A 0A            PUSH 0A
0048D5CF   58               POP EAX
0048D5D0   50               PUSH EAX
0048D5D1   56               PUSH ESI
0048D5D2   53               PUSH EBX
0048D5D3   53               PUSH EBX
0048D5D4   FF15 50E14900    CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; KERNEL32.GetModuleHandleA
0048D5DA   50               PUSH EAX
0048D5DB   E8 88000000      CALL Go600_Un.0048D668   <----这个call以后就开始吃内存。。。。。
0048D5E0   8945 98          MOV DWORD PTR SS:[EBP-68],EAX
0048D5E3   50               PUSH EAX
0048D5E4   FF15 38EB4900    CALL DWORD PTR DS:[<&MSVCRT.exit>]       ; MSVCRT.exit     <----退出

------------------------------
跟进 CALL Go600_Un.0048D668   

0048D668   FF7424 10        PUSH DWORD PTR SS:[ESP+10]
0048D66C   FF7424 10        PUSH DWORD PTR SS:[ESP+10]
0048D670   FF7424 10        PUSH DWORD PTR SS:[ESP+10]
0048D674   FF7424 10        PUSH DWORD PTR SS:[ESP+10]
0048D678   E8 43000000      CALL <JMP.&MFC42.#1576>  <--到这里就停了
0048D67D   C2 1000          RETN 10

看了好久,没看出来哪里可以跳过这段,
哪位大大提供点思路啊,谢谢啦
附下载地址:http://dl.filekicker.com/send/file/160546-0478/go600.zip

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是自效验.
2006-3-19 17:31
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
这种自校验怎么去?
入口前就进行了
2006-3-19 19:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
的确是自校验,这个软件还有其它的暗桩,练练手挺好的。
2006-3-19 20:55
0
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我以前见过一个软件,脱掉后,运行。。
会生成一个临时文件。*.bat,里面是一个死循环,不一会儿就当机了。。嘎嘎,比较好玩啊。
2006-3-20 10:18
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
各位帮帮忙吖,谢谢了
2006-3-20 11:51
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
跟原版到那个位置看看?
2006-3-20 12:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
晕了.96MB
2006-3-20 13:13
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
最初由 菜鸟求学 发布
晕了.96MB


呵呵,傥邋了,那?是光毙版
我已?改了,是普通版的
2006-3-20 13:39
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
0041A87A   /75 0F           JNZ SHORT dumped_.0041A88B       //jmp
0041A87C   |68 401F0000     PUSH 1F40
0041A881   |E8 F01C0700     CALL <JMP.&mfc42.#823_??2@YAPAXI@Z>   // *****
0041A886   |83C4 04         ADD ESP,4
0041A889  ^|EB F1           JMP SHORT dumped_.0041A87C

00479E02    E8 CF270100     CALL <JMP.&mfc42.#5442_?Read@CFile@@UAEIPAXI@Z>
00479E07    68 3CA54B00     PUSH dumped_.004BA53C                            ; 9
00479E0C    8D4C24 1C       LEA ECX,DWORD PTR SS:[ESP+1C]
00479E10    885C24 54       MOV BYTE PTR SS:[ESP+54],BL
00479E14    E8 8D270100     CALL <JMP.&mfc42.#537_??0CString@@QAE@PBD@Z>
00479E19    8A4424 0B       MOV AL,BYTE PTR SS:[ESP+B]
00479E1D    C64424 48 03    MOV BYTE PTR SS:[ESP+48],3
00479E22    3C 61           CMP AL,61
00479E24    74 47           JE SHORT dumped_.00479E6D
00479E26    3C E7           CMP AL,0E7
00479E28    74 43           JE SHORT dumped_.00479E6D
00479E2A    3C 03           CMP AL,3
00479E2C    74 3F           JE SHORT dumped_.00479E6D
00479E2E    3C CC           CMP AL,0CC
00479E30    74 3B           JE SHORT dumped_.00479E6D    //jmp
00479E32    E8 3B280100     CALL <JMP.&mfc42.#1175_?AfxGetThread@@YGPAVCWinT>
00479E37    85C0            TEST EAX,EAX
00479E39    74 0B           JE SHORT dumped_.00479E46
00479E3B    8B10            MOV EDX,DWORD PTR DS:[EAX]
00479E3D    8BC8            MOV ECX,EAX
00479E3F    FF52 7C         CALL DWORD PTR DS:[EDX+7C]
00479E42    8BF0            MOV ESI,EAX
00479E44    EB 02           JMP SHORT dumped_.00479E48
00479E46    33F6            XOR ESI,ESI
00479E48    6A 00           PUSH 0
00479E4A    8D8E 508D0200   LEA ECX,DWORD PTR DS:[ESI+28D50]
00479E50    E8 FF2D0100     CALL <JMP.&mfc42.#2642_?EnableWindow@CWnd@@QAEHH>
00479E55    6A 00           PUSH 0
00479E57    8BCE            MOV ECX,ESI
00479E59    E8 F62D0100     CALL <JMP.&mfc42.#2642_?EnableWindow@CWnd@@QAEHH>
00479E5E    68 A00F0000     PUSH 0FA0
00479E63    E8 0E270100     CALL <JMP.&mfc42.#823_??2@YAPAXI@Z>    //******

改这些只是能运行,还有别的检验,去改吧。其实,这个程序没有用crc校验,可以打msc补丁,这样比较好一点
2006-3-20 14:06
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
谢谢楼上的大大
请问下,0041A87A   /75 0F           JNZ SHORT dumped_.0041A88B       这个跳是怎么跟到的?
2006-3-20 16:05
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
12
fxyang 在精华六里面有篇教程涉及

标 题:Armadillo 3.X脱壳+修复
发信人:fxyang
时 间:2004年3月14日
2006-3-20 16:16
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
最初由 swordkok 发布
谢谢楼上的大大
请问下,0041A87A /75 0F JNZ SHORT dumped_.0041A88B 这个跳是怎么跟到的?

这个其实很简单,od载入运行,感觉卡的时候f12停住,然后返回主程序就看到在一个死循环里申请内存。当然还有别的方法,比如对申请内存的api设断点。这个里面可以对malloc下断。
2006-3-20 16:43
0
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
最初由 aki 发布
这个其实很简单,od载入运行,感觉卡的时候f12停住,然后返回主程序就看到在一个死循环里申请内存。当然还有别的方法,比如对申请内存的api设断点。这个里面可以对malloc下断。


呵呵,今天又?了一招,太感著了
2006-3-20 19:18
0
游客
登录 | 注册 方可回帖
返回
//