首页
社区
课程
招聘
[原创]010Editor算法分析
发表于: 2019-11-16 22:34 5951

[原创]010Editor算法分析

2019-11-16 22:34
5951

应用程序名称:010Editor.exe

MD5值:67399a3650be615df420393758c799cd

SHA1值:95cc3dbfef9781c73d147c44e179edbafac37f42

简单功能介绍:

16进制修改、文本修改、模板解析各种文件格式、对比文件

    系统环境:win7 32位虚拟机

工具:vs2017、OD、EXEINFOPE、010Editor

010算法分析

2.1 先用ExeinfoPE查看程序的一些基本信息,可以猜出这是用VS2013写的,语言是C++,eax作为返回值,ecx传递this指针。


 

 

 

 

2.5现在我们有两种选择,一是根据给出的错误信息,搜索对应的字符串,二是下API断点,栈回溯分析。我们这里先用简单点的字符串搜索试试,如果搜索不到,或者有多处,我们再改用第二种方法

 

2.6如图,已经搜索到用户名或密码无效的字符串,并且查找下一个没有了,那应该就是我们要找的关键位置了。

 

2.7双击进入反汇编窗口,分析上下文,在上方找打了疑是注册成功的字符串

 

2.8继续往上看,找到关键跳转

 

2.9,到这里我们nop掉跳转,应该就能实现暴力破解了,这次我们要分析算法,所以继续往上跟,我们发现比较cmp edi,0xDB是跳转来的。

 

2.10转到跳转过来的位置

 

2.11发现上下两个位置都调用了这个call,更加说明了这是一个关键call,要想注册成功,需要这个call的返回值为0xDB

 

2.12我们双击进去这个call里进行进一步的分析

 

2.13在这个call里面我们可以看到有多种返回结果,找到我们要的返回结果0xDB,将光标移动到其上的pop edi,发现是通过跳转到达这里,转到跳转处

 

2.14跳转的成立的条件是上面最近的一个call的返回值必须为0x2D,所以这也是个关键的call,再次双击进去分析

 

 

2.16我们往上看ESI的值是哪来的,发现ESI的值有三种,其中就有我们需要的0x2D

 

2.17我们将光标移动到mov esi,0x2D处,发现有两处跳转到达这里


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (5)
雪    币: 144
活跃值: (178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错,期待更多类似文章,感谢
2019-11-17 12:56
0
雪    币: 2038
活跃值: (4096)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2019-11-25 22:32
0
雪    币: 8223
活跃值: (6439)
能力值: ( LV12,RANK:207 )
在线值:
发帖
回帖
粉丝
4
感谢,对于我这样新入门的很有用
2019-11-26 21:02
0
雪    币: 782
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
感谢大佬分享。
2019-11-26 21:44
0
雪    币: 128
活跃值: (205)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢大佬分享!我有一个疑问?IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE,我找到PE这个节的位置用WinHex由40修改为00保存后,为何ExeinfoPE中查看重定位表仍然还在?希望能得到一个去处重定位的具体办法,谢谢!(用LoadPE重建可以消除重定位,这我知道,但不知道为何直接修改不能呢)

最后于 2019-11-28 22:27 被imypp编辑 ,原因:
2019-11-28 22:25
0
游客
登录 | 注册 方可回帖
返回
//