首页
论坛
专栏
课程

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

2014-12-10 16:44 6896

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

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



  
  
主要是显示UPolyX v0.5*,还有一种查出显示是VMPoctect 2.46的。

分析:加壳的情况不能确定,但软件是Vb的可以确定,因此根据VB的特征寻求脱壳的方向。
二、脱壳工具的准备:
OD、LoadPE、ImportREC
三、步骤
1、确定OEP的地址
载入OD

在API函数LoadLibraryA下断

  
运行或F9

看加载动态链接库的情况,第一个是MSVB60.Dll



第二个是Kennal32.dll或者是USER32.dll

这时可以下ThunRTMain断点,bp ThunRTMain

断下后看堆栈,往上翻看看,会看到你喜欢的jmp ThunRTMain
记下堆栈中的数据,
  
然后跟随到汇编窗口,看到了OEP,但代码被偷了,注意下图
  

2、跟踪到OEP

如果你想直接F4过来,可能会飞。
  
重载入后,用LoadlibraryA下断到Kernal32.dll或User32.dll 后,不再bp ThunRTMain,Cltr+G到00407B1c.然后F4.

到这里了,OEP前一行,如果这是里Dump是不行的,改下这行让OD跳到00407b22

这样就到了OEP
  
改下OEP的代码,按图中改,然后Dump就可以了。

  
三、修复RVA
脱壳后的程序仍然不能汉化。
  
  

上图的RVA是错误的

改为10就OK。

四、总结
1、VB编写的软件用ThunRTMain这个函数来找OEP比较容易。
2、这个软件目前是什么程序加壳的,我仍然不能确定,希望有人能帮我确定下。

软件下载地址:(待上传)
http://pan.baidu.com/s/1sjJPn8x

[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

上一主题 下一主题
最新回复 (2)
viden 2 2014-12-11 10:41
2
0
没必要纠结于是什么壳,要分析解密过程。
reddiamond 2014-12-11 19:17
3
0
我只是汉化,哈哈!
谢谢你的帮助!
游客
登录 | 注册 方可回帖
返回