安全矩阵

 找回密码
 立即注册
搜索
查看: 580|回复: 0

逆向分析010 editor

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2022-11-26 11:13:38 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2022-11-26 11:15 编辑

逆向分析010 editor
原创 zer0 Tide安全团队 2022-11-23 17:03 发表于山东
转载自:逆向分析010 editor
逆向分析010 editor
0x01 什么是010 editor
010 Editor 是一款专业的文本编辑器和十六进制编辑器,旨在快速轻松地编辑计算机上任何文件的内容。该软件可以编辑文本文件,包括 Unicode 文件、
批处理文件、C/C++、XML 等,但 010 Editor 擅长的地方在于编辑二进制文件。二进制文件是计算机可读但人类不可读的文件(如果在文本编辑器中打开,
二进制文件将显示为乱码)。十六进制编辑器是一个程序,允许您查看和编辑二进制文件的各个字节,包括 010 编辑器在内的高级十六进制编辑器还允许您
编辑硬盘驱动器、软盘驱动器、内存密钥、闪存驱动器、CD-ROM、 流程等。

官网地址:https://www.sweetscape.com/010editor/

0x02 OD暴力破解
在软件逆向破解的过程中,OD暴力破解是比较有效的方式,通过修改jcc指令或者nop掉一些跳转让程序按照正确的流程走下去。
主要流程大概是:
1、寻找关键函数;2、分析整体流程;3、修改程序验证逻辑。
本次测试的010 editor版本为v13.0

首先查壳

既然无壳那就直接上OD
首先我们要找到注册的函数,首次下载010 editor可以试用30天,点击注册按钮

程序会让输入用户名和注册码,随便输入试试

程序会提示无效的用户名和密码,可以根据程序提示的内容来找到对应的函数
通过OD的中文搜索引擎-智能搜索功能查找对应字符串

找到对应的字符串,跟进函数

跟进后可以看到,程序执行到输出无效的用户名和密码处,是通过一个跳转到该位置的,继续往上跟看看是那个地方跳转

发现是从0x0144B62A位置处跳转过来的,这样的话是否可以直接修改jcc执行来让程序不跳转呢

改成je试下,改成je后发现不对,程序会执行到0x0144B6C6的位置,提示 Password accepted but the trial period is already over,那么就继续
往上跟踪在跳转前边有三个cmp指令,其中0x0144B60D是从0x0144B4E2 处跳转来的

在0x0144B4E2处下断点调试一下

在这里发现0x0144B51D的位置会输出Password accepted,所以这里把jnz改成je或者nop掉就可以了


保存出来看一下

可以看到输入任意的内容已经激活成功,但是这样的话每次打开都需要点击一下check license,那么继续看看能不能让程序直接打开。
首先来梳理一下正常的逻辑程序是怎么运行的:首先在0x0030B3FC的位置处EAX和0xE7进行比较,此时EAX的值为0xE7,所以je跳转成立,
程序运行到0x0030B4DC 处,cmp ebx,0xDB,这时候EBX的值为0x177,jnz不等于则跳转,所以此时跳转成立,跳转到0x0030B60D的位置处,
这个时候程序已经跳过了验证成功的地方,继续执行,有三个cmp语句后跟jcc跳转指令,cmp ebx,0xED和cmp ebx,0x20C,这时EBX的值还是0x177,
所以两个je都没有跳转,运行到第三个cmp指令cmp eax,0x93的位置,EAX此时的值为0xE7,这里是jnz指令所以跳转成功,跳转到0x0030B6E8的位置,输出无效的用户名密码,验证函数到此结束。
通过上面的分析当EBX等于0xDB的时候程序才会走到验证成功的位置,也就是说想要程序不每次运行都弹验证框,需要直接将0xDB赋给EBX


返回到0x0030B3FC的位置继续往上跟踪可以看到EBX的值就是EAX的值,所以需要将0xDB赋给EAX,那么需要继续跟踪看看EAX的值是谁赋给的,
在0x0030B3E9的位置处下断点,F8执行,发现在执行call 0x0013808A的时候EAX的值发生了变化,所以直接跟进call里面

在开头直接给EAX赋值,mov eax,0x2d retn 0x8
最后把程序dump出来,发现程序直接打开就能使用了也不用每次都点击验证了。

0x03 总结
其实010 editor对于新手逆向来说还是挺友好的,没有加壳,然后整个函数的逻辑也算比较清晰,更改起来也很简单,
以后有时间的还是要研究一下注册验证的算法,然后写个注册机出来。

参考文章:逆向分析商业软件 010 Editor 及注册机编写

END




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 21:43 , Processed in 0.012494 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表