一、软件及加壳情况: 1、软件是用VB6.0编写的,是俄罗斯人编写的福特汽车配置修改程序--ELMConfig,软件的版本为V0.2.14。 2、加壳情况:用PEid查壳是UPX->d0cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4g2H3P5q4)9J5k6i4y4G2N6i4u0U0k6h3k6G2M7X3N6W2i4K6u0W2L8X3g2@1i4K6u0m8i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1u0p5i4K6R3$3i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1%4i4K6R3&6i4K6R3^5i4@1f1$3i4K6W2o6i4@1q4o6i4@1f1$3i4K6S2m8i4@1p5#2g2V1#2b7L8$3y4@1k6h3y4@1 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、这个软件目前是什么程序加壳的,我仍然不能确定,希望有人能帮我确定下。 软件下载地址:(待上传) 138K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4m8S2L8W2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3M7#2)9J5c8U0q4K6K9V1A6b7L8U0S2^5
[培训]科锐逆向工程师培训第53期2025年7月8日开班!