求助脱壳:ELMConfig

jinggangshi 2014-12-04 09:02:10
问题:
在对ELMConfig 汉化中,需要对主程序ELMConfig.EXE脱壳,但我用了好几个工具都脱不了壳,用查壳工具看了,Language和Peid都查不出壳和编程语言,用FastScanner查出壳是UPX3,但我目前用了很多UPX的脱壳工具都脱不了这个壳。
这个程序是俄罗斯人编写的可用于福特汽车的诊断和设置程序,本人一直在为车友义务汉化,以前的版本加壳方式不一样,能脱壳,现在的新版本我脱不了了,希望能得到大家的帮助,造福车友!

后来发帖求助:00木一朋友帮助我脱了,在些再次表示感谢!

现在我学习了简单的脱壳,对手动脱壳的方法有了基本的了解,能脱压缩壳和部分加密壳(前提是能准确查壳,网上有类似的脱壳教程),我想能学会脱这个壳。

这个壳用FastScanner查出壳是UPX3,用两个版本的Peid查出了不同的结果:



但我怀疑这个壳是伪装的了,我用了OD跟踪,无法找到入口点,以下是我的分析过程:


我用了ESP定律,包括按http://www.52pojie.cn/forum.php?mod=viewthread&tid=265705的提示方法找第二大跳,也都找不到OEP。
我也用了最后一次异常,但这个程序一次异常都没有就飞了。
我怀疑是OD和我的设置的问题,包括对OD隐藏插件都怀疑过,换了无数OD版,也换了无数Od隐藏插件,但都找不到。
我最后想用API来断下来,我找到了一个程序指针,但最后跟进去后程序做了一圈迭代后又回到原来的地方,很大的一圈,从07XXXXXXX到01XXXXXXX再到05XXXXXXX再到0cXXXXXXX,最后到07XXXXXXX。

我用尽了所有的寻找OEP的方法,都没有结果。

最后我想用笨办法,花了很多时间全程单步跟,连续的无数次跟飞,用了一个星期时间,还是没有找到OEP。


以下是我做的部分笔记:

73391B72 ^\75 B5 JNZ SHORT 73391B29 //程序飞1,如果用F4到下一行

*********************************
7C93B5F7 ^\E9 E9FEFFFF JMP ntdll.7C93B4E5

01220353 ^\EB A8 JMP SHORT 012202FD

01220364 ^\E9 63FFFFFF JMP 012202CC

012204C7 ^\E2 8F LOOPD SHORT 01220458

01220531 ^\E9 38FEFFFF JMP 0122036E 程序飞2,如果用F4到下一行

01220531如果手动单步跟踪,每次做一个大的循环后会跳到这里,周而复始
**********************
0055d85f 程序飞3,如果用F4到下一行

0055D85F E8 04000000 CALL ELMConfi.0055D868 跟进去

后面会碰到无数个E8 04000000,不跟进去就飞

0055D884 ^\EB AF JMP SHORT ELMConfi.0055D835

0055D8E7 8540 FF TEST DWORD PTR DS:[EAX-0x1],EAX

0055D8E7 E8 04000000 CALL ELMConfi.0055D8F0

0055DA7F E8 04000000 CALL ELMConfi.0055DA88

7C801D88 68 60E1807C PUSH kernel32.7C80E160 ; ASCII "twain_32.dll"//这里还好像是个木马?

00C4F1A7 E8 0C000000 CALL ELMConfi.00C4F1B8
00C4F1ED E8 02000000 CALL ELMConfi.00C4F1F4

00C4F351 E8 02000000 CALL ELMConfi.00C4F358

00C4F351 E8 02000000 CALL ELMConfi.00C4F358

00C4F3E2 E8 5D030000 CALL ELMConfi.00C4F744

00C4F7FE E8 04000000 CALL ELMConfi.00C4F807
00C4FA73 E8 04000000 CALL ELMConfi.00C4FA7C

00C4FA4C E8 04000000 CALL ELMConfi.00C4FA55

00C4FB4C E8 04000000 CALL ELMConfi.00C4FB55

00C4FB73 E8 04000000 CALL ELMConfi.00C4FB7C

00C4FBB6 E8 04000000 CALL ELMConfi.00C4FBBF

00C5019D E8 04000000 CALL ELMConfi.00C501A6

00C50AAF E8 04000000 CALL ELMConfi.00C50AB8

00C64041 E8 04000000 CALL ELMConfi.00C6404A

00C75228 E8 04000000 CALL ELMConfi.00C75231

00C80430 E8 04000000 CALL ELMConfi.00C80439

00C81D71 E8 04000000 CALL ELMConfi.00C81D7A

00C8FDE7 E8 04000000 CALL ELMConfi.00C8FDF0

00C92EA0 E8 04000000 CALL ELMConfi.00C92EA9

00C937C2 E8 04000000 CALL ELMConfi.00C937CB

00C97E68 E8 04000000 CALL ELMConfi.00C97E71

00C9BEE5 E8 04000000 CALL ELMConfi.00C9BEEE

00C9C101 E8 04000000 CALL ELMConfi.00C9C10A

00C9C448 E8 04000000 CALL ELMConfi.00C9C451

00C9C7B9 E8 04000000 CALL ELMConfi.00C9C7C2

00C9CCE0 E8 04000000 CALL ELMConfi.00C9CCE9

00C9CD07 E8 04000000 CALL ELMConfi.00C9CD10

00C9CEE9 E8 04000000 CALL ELMConfi.00C9CEF2

00C9D180 E8 04000000 CALL ELMConfi.00C9D189

00C9D4D9 E8 04000000 CALL ELMConfi.00C9D4E2

00C9D500 E8 04000000 CALL ELMConfi.00C9D509

00C9D8ED E8 04000000 CALL ELMConfi.00C9D8F6

00C9D9C5 E8 04000000 CALL ELMConfi.00C9D9CE

00C9DEBE E8 04000000 CALL ELMConfi.00C9DEC7

00C9E14D E8 04000000 CALL ELMConfi.00C9E156

00C9E286 E8 04000000 CALL ELMConfi.00C9E28F

00C9EBE5 E8 04000000 CALL ELMConfi.00C9EBEE

00C9F8C7 E8 04000000 CALL ELMConfi.00C9F8D0

00C9F8EE E8 04000000 CALL ELMConfi.00C9F8F7

00C9FC8E E8 04000000 CALL ELMConfi.00C9FC97

00C9FCB5 E8 04000000 CALL ELMConfi.00C9FCBE

00C9FE02 E8 04000000 CALL ELMConfi.00C9FE0B

00C9FE29 E8 04000000 CALL ELMConfi.00C9FE32 最后

00CA0031 E8 04000000 CALL ELMConfi.00CA003A

00CA0362 E8 04000000 CALL ELMConfi.00CA036B

00CA07F6 E8 04000000 CALL ELMConfi.00CA07FF

00408284 - FF25 6C124000 JMP DWORD PTR DS:[0x40126C]

733935A4 55 PUSH EBP


程序肯定是VB
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&这个好像是个OEP,但是个假的,可能
733935A4 55 PUSH EBP
733935A5 8BEC MOV EBP,ESP
733935A7 6A FF PUSH -0x1
********************************************

733935FB E8 5C000000 CALL MSVBVM60.7339365C


****************************************************8
00C9FEE3 E8 BA000000 CALL ELMConfi.00C9FFA2


**********************************

00CA0A99 E8 04000000 CALL ELMConfi.00CA0AA2




^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0012FEF8 |00CA0B86 ?? ELMConfi.00CA0B86


现在俄罗斯人又推出了0.2.15版,以后也不断会有新的版本推出,车友


需求:
1、如何确定壳的类型?
2、手工脱壳的方法和步骤?(希望能详细一点)



如果觉得我现在的水平不足以脱此壳,也请指点出壳的准确类别, 我可以针对性的学习。



说明:

0.2.15版程序云盘地址:
http://pan.baidu.com/s/1ntmNeA1

软件的版本:0.2.14
下载链接在CSDN有,我已经上传了:
http://download.csdn.net/detail/jinggangshi/8122765
...全文
744 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinggangshi 2014-12-23
  • 打赏
  • 举报
回复
已经找到了解决方法,因为是VB编写的软件,这是我可以肯定的,就下断ThunRTMain,查出了OEP,然后就跟踪修复,OK。
yage_18 2014-12-09
  • 打赏
  • 举报
回复
碰到同样的问题,需要同样的帮助,支持下!
jinggangshi 2014-12-07
  • 打赏
  • 举报
回复
引用 2 楼 Rocloud 的回复:
http://www.pediy.com/ 看雪学院,应该专业
脱掉了外层的UPX->www.upx.sourceforge.com*,但里面还有一个VMProctect2.46,这个好像很难啊,能再给点提示吧?
jinggangshi 2014-12-04
  • 打赏
  • 举报
回复
引用 1 楼 u012938487 的回复:
看雪安全论坛,,,,,,
去过了,是很专业,但针对这个壳的文章我还没有找到,我对脱壳只是入门级,希望能尽快汉化这个软件,对车友有所帮助
Rocloud 2014-12-04
  • 打赏
  • 举报
回复
http://www.pediy.com/ 看雪学院,应该专业
Mindly123 2014-12-04
  • 打赏
  • 举报
回复
看雪安全论坛,,,,,,
打开链接下载源码: https://pan.quark.cn/s/8ec3d104bde6 华为MA5671是一款针对宽带接入需求而研发的智能型光猫设备,其核心应用场景为家庭用户及小型企业环境。该设备运用了千兆以太网技术,能够提供卓越的网络连接性能,从而使用户可以体验到稳定流畅的互联网服务。其完整名称为SmartAX MA5671,其中"SmartAX"是华为对其智能接入产品系列的特定命名,意指该设备具备智能化管理功能与自动化配置特性。固件,即Firmware,是指存储于硬件设备内部的一套程序代码,负责控制设备的各项功能运作并合理调配硬件资源。在华为MA5671设备中,固件发挥着核心作用,它直接影响着设备的操作系统运行机制、网络协议兼容性、安全防护机制以及性能表现等多个维度。"MA5671V8R313C00SPC100"作为该固件的标识编号,通过此代码可以解析出以下几个关键层面的信息: 1. **V8**:这通常象征固件的主版本号,或许表明这是第8代产品形态或第8次主要升级迭代。 2. **R313**:这可能代表固件的次级版本或修订层级,暗示着相较于V8版本,该版本经历了313次的迭代优化。 3. **C00**:这部分或许与设备的特定型号设定或地域适配性相关,不同的C00编码可能对应不同的功能模块配置或区域适应性调整。 4. **SPC100**:最后的这一段编码可能标识着特殊版本或性能增强配置,SPC(Special Performance Configuration)可能是华为针对特定性能优化版本设定的代号,而100可能代表这种优化措施的等级或序列编号。 在实际部署过程中,将固件保持为最新版本是非常重要的,这样做能够有效修正已知的安全隐患,优化设备运作效能,...
代码转载自:https://pan.quark.cn/s/558f943fe8b9 Oracle 11g是由甲骨文公司推出的一款面向企业级应用的数据管理平台,其具备丰富的功能特性与性能优化措施,能够充分满足大型商业机构及组织的复杂数据管理诉求。这份“Oracle 11g官方中文帮助文档”作为一份高清晰度且内容全面的资源,专门为中文使用者提供系统化的操作指引和必要的技术支持。 1. **Oracle 11g核心构成** - 数据库模型:该系统基于关系数据库架构,负责对结构化数据进行系统化存储和处理。 - 实例与服务机制:数据库实例指的是部署在服务器内存中的运行环境,而服务则是客户端接入数据库的核心通道。 2. **部署与设置** - 部署模式:涵盖高级部署流程和快速部署方案,以适应多样化的应用场景。 - 参数配置文件:初始化参数文件(init.ora)用于设定数据库的运行环境参数。 - 逻辑存储与物理存储:表空间作为数据库对象的逻辑组织单元,数据文件则是实际存放数据的物理载体。 3. **SQL与PL/SQL技术** - SQL指令集:主要用于数据库数据的查询、录入、修改及删除等操作。 - PL/SQL编程:作为Oracle的特色编程语言,支持过程化编程范式,常用于开发存储过程和触发器逻辑。 4. **安全防护机制** - 用户身份与角色管理:通过用户账户和角色权限体系来控制数据库的访问权限。 - 授权管理及审计功能:实现数据访问权限的精细化控制,并记录数据库活动日志以保障合规操作。 5. **效能提升策略** - 查询执行优化器:智能选择最优的查询执行路径。 - 重做日志与归档机制:保障事务的持久性和系统故障后的恢复能力。 - 数据分区技术:通过将大型数据表...

9,513

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧