最近想学围棋,找了半天,找了一款中文的软件,还要注册,于是想把他破了,用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作者讲授!