rsice 发表于 2007-5-18 23:30:41

菜鸟脱upx+自校验

这是我第一次实际脱壳,本来都已经写好了,结果错按一个键,全部没了,只好

重头来。唉。这个软件是用于股票软件直间数据转换的,跟准确的说是将免费股

软的数据转化为各种收费股软的数据。现在股软好破,但没数据等于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:
004456A2   52               PUSH EDX
004456A3   8B85 F0FEFFFF    MOV EAX,DWORD PTR SS:
004456A9   50               PUSH EAX
004456AA   FF15 E0104000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;

MSVBVM60.__vbaHresultCheckObj
004456B0   8985 9CFEFFFF    MOV DWORD PTR SS:,EAX
004456B6   EB 0A            JMP SHORT 《金卡绣.004456C2
004456B8   C785 9CFEFFFF 00>MOV DWORD PTR SS:,0
004456C2   8D4D C0          LEA ECX,DWORD PTR SS:
004456C5   FF15 44144000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;

MSVBVM60.__vbaFreeObj
004456CB   C745 FC 13000000 MOV DWORD PTR SS:,13
004456D2   FF15 00104000    CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>;

kernel32.GetCurrentProcess
004456D8   8985 04FFFFFF    MOV DWORD PTR SS:,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:
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:,14
00445702   66:C785 1CFFFFFF>MOV WORD PTR SS:,0
0044570B   8D95 1CFFFFFF    LEA EDX,DWORD PTR SS:
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:,15
0044572E   C745 88 04000280 MOV DWORD PTR SS:,80020004
00445735   C745 80 0A000000 MOV DWORD PTR SS:,0A
0044573C   C745 98 04000280 MOV DWORD PTR SS:,80020004
00445743   C745 90 0A000000 MOV DWORD PTR SS:,0A
0044574A   C745 A8 04000280 MOV DWORD PTR SS:,80020004
00445751   C745 A0 0A000000 MOV DWORD PTR SS:,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:
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:
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:
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:
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:
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:,EAX
004457DE   C745 B0 08000000 MOV DWORD PTR SS:,8
004457E5   8D4D 80          LEA ECX,DWORD PTR SS:
004457E8   51               PUSH ECX
004457E9   8D55 90          LEA EDX,DWORD PTR SS:
004457EC   52               PUSH EDX
004457ED   8D45 A0          LEA EAX,DWORD PTR SS:
004457F0   50               PUSH EAX
004457F1   6A 10            PUSH 10
004457F3   8D4D B0          LEA ECX,DWORD PTR SS:
004457F6   51               PUSH ECX
004457F7   FF15 54114000    CALL DWORD PTR DS:[<&MSVBVM60.rtcMsgBox>>; //出错消息框MSVBVM60.rtcMsgBox
004457FD   8D55 C8          LEA EDX,DWORD PTR SS:
00445800   52               PUSH EDX
00445801   8D45 CC          LEA EAX,DWORD PTR SS:
00445804   50               PUSH EAX
00445805   8D4D D0          LEA ECX,DWORD PTR SS:
00445808   51               PUSH ECX
00445809   8D55 D4          LEA EDX,DWORD PTR SS:
0044580C   52               PUSH EDX
0044580D   8D45 D8          LEA EAX,DWORD PTR SS:
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:
0044581F   51               PUSH ECX
00445820   8D55 90          LEA EDX,DWORD PTR SS:
00445823   52               PUSH EDX
00445824   8D45 A0          LEA EAX,DWORD PTR SS:
00445827   50               PUSH EAX
00445828   8D4D B0          LEA ECX,DWORD PTR SS:
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:,16
0044583E   FF15 54104000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaEnd>] ;

MSVBVM60.__vbaEnd
00445844   C745 FC 18000000 MOV DWORD PTR SS:,18
0044584B   833D D4904D00 00 CMP DWORD PTR DS:,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:,《金卡

绣.004D90D4
0044586E   EB 0A            JMP SHORT 《金卡绣.0044587A

就这样,程序可以运行了,因为我比较菜,没发现是自校验的哪个东东。
虽然程序可以运行了,是VB写的,但是因为没有脱干净,结果,用od查找字符串

什么也找不到,用W32dasm反汇编,查字符串全部是乱码,而且我下api函数,竟

然说断点超出代码段!--见附件图片2因为菜所以无法破解,因大大们帮忙怎么对付?
第一次发这样的帖子,还比较嫩,呵呵

[ 本帖最后由 rsice 于 2007-5-18 23:31 编辑 ]

dh0807 发表于 2007-5-19 12:59:43

楼主能把它作成视频就好了,呵
还有如果脱完壳.打不开文件.但文件不弹出对话框要用什么断点呢?

rsice 发表于 2007-5-19 13:35:39

呵呵,这个我也说不上,大概是推出函数吧,exitProces

congxinks 发表于 2007-5-19 13:56:33

楼主你的是什么版本
我曾经也想破,但水平太差,一看到vb就头痛

rsice 发表于 2007-5-19 14:28:01

原帖由 congxinks 于 2007-5-19 13:56 发表 https://www.chinapyg.com/images/common/back.gif
楼主你的是什么版本
我曾经也想破,但水平太差,一看到vb就头痛
你指什么的版本?金卡绣球?最新版

congxinks 发表于 2007-5-19 14:42:20

它现在是5.11版了,我主要是用来转容维,这个软件要100rmb,有点贵,但对做股票的人吗就不这么贵的了

[ 本帖最后由 congxinks 于 2007-5-19 14:49 编辑 ]

deletex 发表于 2007-5-19 17:07:37

lz那样真能去自效验,怀疑

rsice 发表于 2007-5-19 19:29:38

原帖由 deletex 于 2007-5-19 17:07 发表 https://www.chinapyg.com/images/common/back.gif
lz那样真能去自效验,怀疑
我也说脱的不干净嘛,不过确实可以运行的
请你帮忙看看如何破解被加密的字符串,不过我用一款vb资源器到是可以看到正常的字符串,回头我贴图上来

congxinks 发表于 2007-5-20 20:07:31

刚才我试了去掉后,结果是点转换的时候就直接退出了,还有检测的,现在也没有办法了
你可以用vb资源器把那些乱码改成英文或者是数字,就可以在od里面直接找到

rsice 发表于 2007-5-20 22:00:45

原帖由 congxinks 于 2007-5-20 20:07 发表 https://www.chinapyg.com/images/common/back.gif
刚才我试了去掉后,结果是点转换的时候就直接退出了,还有检测的,现在也没有办法了
你可以用vb资源器把那些乱码改成英文或者是数字,就可以在od里面直接找到
功能我确实没有试过,我试过把vb资源器把字符串改成数字,可能使我操作不对,我保存格式是一个什么VB项目.gtc,没法选exe格式,你能具体教我一下吗?
ps,我发现不能下断点的问题所在了,是我下断点的方法不对,不是程序的问题。
页: [1] 2
查看完整版本: 菜鸟脱upx+自校验