- UID
- 31927
注册时间2007-5-6
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
这是我第一次实际脱壳,本来都已经写好了,结果错按一个键,全部没了,只好
重头来。唉。这个软件是用于股票软件直间数据转换的,跟准确的说是将免费股
软的数据转化为各种收费股软的数据。现在股软好破,但没数据等于0,更多智能
程度高的的股软其实都是靠把守数据来卖软件的。这个软件等于废掉了大部分收
费股票软件,填补了国内一项空白。^-^,软件作者还不错,开放了部分功能,
我也用其中的免费功能。
壳是upx+自校验。
开始
先是手动脱壳,很简单,不多说了,脱出来以后不能运行,有个出错的消息框,
-见附件图片1
说明软件有自校验。我改了一下原版可执行文件,也报错,说明对文件名有自校
验,我就将脱壳后的文件改成原文件名,执行,还不行,说明还有f9其他自校。
od载入,按f9,程序跑飞,只好单步,单步过程中,有一个循环,循环了5、6次
,我只好f4到下一行,一直f8单步,走过一个call,程序跑飞,重新载入,到哪
个callf7在f8,一直来到下面代码处,我截取一部分:
00445695 6A 0C PUSH 0C
00445697 68 14034100 PUSH 《金卡绣.00410314
0044569C 8B95 F4FEFFFF MOV EDX,DWORD PTR SS:[EBP-10C]
004456A2 52 PUSH EDX
004456A3 8B85 F0FEFFFF MOV EAX,DWORD PTR SS:[EBP-110]
004456A9 50 PUSH EAX
004456AA FF15 E0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;
MSVBVM60.__vbaHresultCheckObj
004456B0 8985 9CFEFFFF MOV DWORD PTR SS:[EBP-164],EAX
004456B6 EB 0A JMP SHORT 《金卡绣.004456C2
004456B8 C785 9CFEFFFF 00>MOV DWORD PTR SS:[EBP-164],0
004456C2 8D4D C0 LEA ECX,DWORD PTR SS:[EBP-40]
004456C5 FF15 44144000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;
MSVBVM60.__vbaFreeObj
004456CB C745 FC 13000000 MOV DWORD PTR SS:[EBP-4],13
004456D2 FF15 00104000 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>;
kernel32.GetCurrentProcess
004456D8 8985 04FFFFFF MOV DWORD PTR SS:[EBP-FC],EAX
004456DE FF15 D0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaSetSy>;
MSVBVM60.__vbaSetSystemError
004456E4 68 80000000 PUSH 80
004456E9 8B8D 04FFFFFF MOV ECX,DWORD PTR SS:[EBP-FC]
004456EF 51 PUSH ECX
004456F0 E8 C38FFCFF CALL 《金卡绣.0040E6B8
004456F5 FF15 D0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaSetSy>;
MSVBVM60.__vbaSetSystemError
004456FB C745 FC 14000000 MOV DWORD PTR SS:[EBP-4],14
00445702 66:C785 1CFFFFFF>MOV WORD PTR SS:[EBP-E4],0
0044570B 8D95 1CFFFFFF LEA EDX,DWORD PTR SS:[EBP-E4]
00445711 52 PUSH EDX
00445712 68 98CD4000 PUSH 《金卡绣.0040CD98
00445717 E8 D4ADFFFF CALL 《金卡绣.004404F0
0044571C 0FBFC0 MOVSX EAX,AX
0044571F 85C0 TEST EAX,EAX
00445721 0F84 1D010000 JE 《金卡绣.00445844 //关键跳转,因为下面就是出错消息框,原版是不跳,我把它该了00445727 C745 FC 15000000 MOV DWORD PTR SS:[EBP-4],15
0044572E C745 88 04000280 MOV DWORD PTR SS:[EBP-78],80020004
00445735 C745 80 0A000000 MOV DWORD PTR SS:[EBP-80],0A
0044573C C745 98 04000280 MOV DWORD PTR SS:[EBP-68],80020004
00445743 C745 90 0A000000 MOV DWORD PTR SS:[EBP-70],0A
0044574A C745 A8 04000280 MOV DWORD PTR SS:[EBP-58],80020004
00445751 C745 A0 0A000000 MOV DWORD PTR SS:[EBP-60],0A
00445758 68 38264100 PUSH 《金卡绣.00412638
0044575D 68 C8094100 PUSH 《金卡绣.004109C8
00445762 FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
00445768 8BD0 MOV EDX,EAX
0044576A 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28]
0044576D FF15 D8134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>;
MSVBVM60.__vbaStrMove
00445773 50 PUSH EAX
00445774 68 C8094100 PUSH 《金卡绣.004109C8
00445779 FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
0044577F 8BD0 MOV EDX,EAX
00445781 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C]
00445784 FF15 D8134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>;
MSVBVM60.__vbaStrMove
0044578A 50 PUSH EAX
0044578B 68 7C264100 PUSH 《金卡绣.0041267C
00445790 FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
00445796 8BD0 MOV EDX,EAX
00445798 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30]
0044579B FF15 D8134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>;
MSVBVM60.__vbaStrMove
004457A1 50 PUSH EAX
004457A2 68 C8094100 PUSH 《金卡绣.004109C8
004457A7 FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
004457AD 8BD0 MOV EDX,EAX
004457AF 8D4D CC LEA ECX,DWORD PTR SS:[EBP-34]
004457B2 FF15 D8134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>;
MSVBVM60.__vbaStrMove
004457B8 50 PUSH EAX
004457B9 68 C8094100 PUSH 《金卡绣.004109C8
004457BE FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
004457C4 8BD0 MOV EDX,EAX
004457C6 8D4D C8 LEA ECX,DWORD PTR SS:[EBP-38]
004457C9 FF15 D8134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>;
MSVBVM60.__vbaStrMove
004457CF 50 PUSH EAX
004457D0 68 700A4100 PUSH 《金卡绣.00410A70
004457D5 FF15 B0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>;
MSVBVM60.__vbaStrCat
004457DB 8945 B8 MOV DWORD PTR SS:[EBP-48],EAX
004457DE C745 B0 08000000 MOV DWORD PTR SS:[EBP-50],8
004457E5 8D4D 80 LEA ECX,DWORD PTR SS:[EBP-80]
004457E8 51 PUSH ECX
004457E9 8D55 90 LEA EDX,DWORD PTR SS:[EBP-70]
004457EC 52 PUSH EDX
004457ED 8D45 A0 LEA EAX,DWORD PTR SS:[EBP-60]
004457F0 50 PUSH EAX
004457F1 6A 10 PUSH 10
004457F3 8D4D B0 LEA ECX,DWORD PTR SS:[EBP-50]
004457F6 51 PUSH ECX
004457F7 FF15 54114000 CALL DWORD PTR DS:[<&MSVBVM60.rtcMsgBox>>; //出错消息框MSVBVM60.rtcMsgBox
004457FD 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
00445800 52 PUSH EDX
00445801 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
00445804 50 PUSH EAX
00445805 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30]
00445808 51 PUSH ECX
00445809 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
0044580C 52 PUSH EDX
0044580D 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
00445810 50 PUSH EAX
00445811 6A 05 PUSH 5
00445813 FF15 48134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>;
MSVBVM60.__vbaFreeStrList
00445819 83C4 18 ADD ESP,18
0044581C 8D4D 80 LEA ECX,DWORD PTR SS:[EBP-80]
0044581F 51 PUSH ECX
00445820 8D55 90 LEA EDX,DWORD PTR SS:[EBP-70]
00445823 52 PUSH EDX
00445824 8D45 A0 LEA EAX,DWORD PTR SS:[EBP-60]
00445827 50 PUSH EAX
00445828 8D4D B0 LEA ECX,DWORD PTR SS:[EBP-50]
0044582B 51 PUSH ECX
0044582C 6A 04 PUSH 4
0044582E FF15 50104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;
MSVBVM60.__vbaFreeVarList
00445834 83C4 14 ADD ESP,14
00445837 C745 FC 16000000 MOV DWORD PTR SS:[EBP-4],16
0044583E FF15 54104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaEnd>] ;
MSVBVM60.__vbaEnd
00445844 C745 FC 18000000 MOV DWORD PTR SS:[EBP-4],18
0044584B 833D D4904D00 00 CMP DWORD PTR DS:[4D90D4],0
00445852 75 1C JNZ SHORT 《金卡绣.00445870
00445854 68 D4904D00 PUSH 《金卡绣.004D90D4
00445859 68 24034100 PUSH 《金卡绣.00410324
0044585E FF15 10134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaNew2>>;
MSVBVM60.__vbaNew2
00445864 C785 98FEFFFF D4>MOV DWORD PTR SS:[EBP-168],《金卡
绣.004D90D4
0044586E EB 0A JMP SHORT 《金卡绣.0044587A
就这样,程序可以运行了,因为我比较菜,没发现是自校验的哪个东东。
虽然程序可以运行了,是VB写的,但是因为没有脱干净,结果,用od查找字符串
什么也找不到,用W32dasm反汇编,查字符串全部是乱码,而且我下api函数,竟
然说断点超出代码段!--见附件图片2因为菜所以无法破解,因大大们帮忙怎么对付?
第一次发这样的帖子,还比较嫩,呵呵
[ 本帖最后由 rsice 于 2007-5-18 23:31 编辑 ] |
-
改动文件名出错
-
无法下api断点
|