-
-
[原创]VB程序脱壳方法步骤(UPX->www.upx.sourceforge.net*)
-
发表于:
2014-12-10 16:44
11668
-
[原创]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
[课程]FART 脱壳王!加量不加价!FART作者讲授!