吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10898|回复: 16
收起左侧

[分享] VB程序脱壳方法步骤(UPX->www.upx.sourceforge.net*)

[复制链接]
reddiamond 发表于 2014-12-10 15:07
本帖最后由 reddiamond 于 2014-12-10 17:27 编辑

一、软件及加壳情况:
1、软件是用VB6.0编写的,是俄罗斯人编写的福特汽车配置修改程序--ELMConfig,软件的版本为V0.2.14。
2、加壳情况:用PEid查壳是UPX->www.upx.sourceforge.net*,但有的版本报VMPoctect 2.46,有的报UPolyX v0.5*,特别是在脱壳不完全的情况下,程序能运行但再查壳时是“什么都没有发现*”。

搜狗截图14年11月29日0012_1.png
搜狗截图14年11月29日0012_1.png
搜狗截图14年12月09日0934_17.png
主要是显示UPolyX v0.5*,还有一种查出显示是VMPoctect 2.46的。

分析:加壳的情况不能确定,但软件是Vb的可以确定,因此根据VB的特征寻求脱壳的方向。
二、脱壳工具的准备:
OD、LoadPE、ImportREC
三、步骤
1、确定OEP的地址
搜狗截图14年12月09日0819_1.png 载入OD
搜狗截图14年12月09日0820_2.png
在API函数LoadLibraryA下断
搜狗截图14年12月09日0820_3.png
运行或F9
搜狗截图14年12月09日0821_4.png
看加载动态链接库的情况,第一个是MSVB60.Dll
搜狗截图14年12月09日0822_5.png
第二个是Kennal32.dll或者是USER32.dll
搜狗截图14年12月09日0822_6.png
搜狗截图14年12月09日0823_7.png
这时可以下ThunRTMain断点,bp ThunRTMain
搜狗截图14年12月09日0826_8.png
断下后看堆栈,往上翻看看,会看到你喜欢的jmp ThunRTMain
记下堆栈中的数据,
搜狗截图14年12月09日0827_9.png
然后跟随到汇编窗口,看到了OEP,但代码被偷了,注意下图
搜狗截图14年12月09日0827_10.png

2、跟踪到OEP
搜狗截图14年12月09日0828_11.png
如果你想直接F4过来,可能会飞。
搜狗截图14年12月09日0829_12.png
重载入后,用LoadlibraryA下断到Kernal32.dll或User32.dll 后,不再bp ThunRTMain,Cltr+G到00407B1c.然后F4.
搜狗截图14年12月09日0831_13.png
到这里了,OEP前一行,如果这是里Dump是不行的,改下这行让OD跳到00407b22
搜狗截图14年12月09日0831_14.png
这样就到了OEP
搜狗截图14年12月09日0838_15.png
改下OEP的代码,按图中改,然后Dump就可以了。

搜狗截图14年12月09日0935_18.png
三、修复RVA
脱壳后的程序仍然不能汉化。
搜狗截图14年12月09日0911_16.png
搜狗截图14年12月09日1432_1.png
搜狗截图14年12月09日1433_2.png
四、总结
1、VB编写的软件用ThunRTMain这个函数来找OEP比较容易。
2、这个软件目前是什么程序加壳的,我仍然不能确定,希望有人能帮我确定下。

软件下载地址:(待上传)百度云盘下载
(待续写)





搜狗截图14年11月29日1657_1.png
搜狗截图14年12月09日0934_17.png

免费评分

参与人数 1热心值 +1 收起 理由
Monitor + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| reddiamond 发表于 2014-12-10 16:27
Ctrui 发表于 2014-12-10 15:47
一看到VB就头疼,膜拜会VB的大神

其实我其他的都不会,找OEP都不熟的,我无数次跟我这个点,因为在系统空间里,我就没有当一回事。

733935A4 >  55              push ebp
733935A5    8BEC            mov ebp,esp
733935A7    6A FF           push -0x1
7
33935A9    68 D0973A73     push MSVBVM60.733A97D0
733935AE    68 FDBA4773     push MSVBVM60.7347BAFD
733935B3    64:A1 00000000  mov eax,dword ptr fs:[0]
733935B9    50              push eax
733935BA    64:8925 0000000>mov dword ptr fs:[0],esp

一看不是VB的OEP,就过了,殊不知在系统的空间会是另一个样子,是VC++的OEP
 楼主| reddiamond 发表于 2015-2-9 15:45
今天又脱了一个版,发现在修改后要把程序运行到Push 00424828这一行,也就是将0407b1c改为jmp 00407b22,然后单步下,再将0407b1c改回jmp dword ptr ds:[0x401260],然后Dump,否则脱壳不干净。
或者记住地址,单步到一个空代码处,重新构造一个入口:
push 00424828;
call 00407b1c;

当前行放在push 00424828
viks 发表于 2014-12-10 15:18
大婶呀,,,刚才搞脱了一半 就高不下去了,  结果放弃VB
头像被屏蔽
wanxia 发表于 2014-12-10 15:19
提示: 作者被禁止或删除 内容自动屏蔽
520Kelly 发表于 2014-12-10 15:30
你这个rva是怎么找到的?
Ctrui 发表于 2014-12-10 15:47
一看到VB就头疼,膜拜会VB的大神
神小白 发表于 2014-12-10 15:54
好牛逼啊!又涨姿势了
 楼主| reddiamond 发表于 2014-12-10 16:20
viks 发表于 2014-12-10 15:18
大婶呀,,,刚才搞脱了一半 就高不下去了,  结果放弃VB

小侄,要不你发给我看看,玩笑!
 楼主| reddiamond 发表于 2014-12-10 16:22
520Kelly 发表于 2014-12-10 15:30
你这个rva是怎么找到的?

我正在查这方面的资料。
确定RVA的方法:
1、有个网友说一般是10;
2、网上有个朋友帮我脱过一个版本,能正常汉化,RVA是10;
3、我对ELMConfig进行了系列的汉化,以前的版本都是10.
所以蒙着试了下。
zeromaggot 发表于 2014-12-10 19:51
看完还是一头雾水,还得多看几次
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 21:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表