欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

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

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

一、软件及加壳情况:
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

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功