一、软件及加壳情况: 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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课