逆向分析010 editor

admin 2023年6月25日09:09:31评论23 views字数 1758阅读5分51秒阅读模式

逆向分析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

逆向分析010 editor

首先查壳

逆向分析010 editor

既然无壳那就直接上OD

首先我们要找到注册的函数,首次下载010 editor可以试用30天,点击注册按钮

逆向分析010 editor

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

逆向分析010 editor

程序会提示无效的用户名和密码,可以根据程序提示的内容来找到对应的函数

通过OD的中文搜索引擎-智能搜索功能查找对应字符串

逆向分析010 editor

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

逆向分析010 editor

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

逆向分析010 editor

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

逆向分析010 editor

改成je试下,改成je后发现不对,程序会执行到0x0144B6C6的位置,提示 Password accepted but the trial period is already over,那么就继续往上跟踪

在跳转前边有三个cmp指令,其中0x0144B60D是从0x0144B4E2 处跳转来的

逆向分析010 editor

0x0144B4E2处下断点调试一下

逆向分析010 editor

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

逆向分析010 editor

逆向分析010 editor

保存出来看一下

逆向分析010 editor

可以看到输入任意的内容已经激活成功,但是这样的话每次打开都需要点击一下check license,那么继续看看能不能让程序直接打开。

首先来梳理一下正常的逻辑程序是怎么运行的:首先在0x0030B3FC的位置处EAX和0xE7进行比较,此时EAX的值为0xE7,所以je跳转成立,程序运行到0x0030B4DC 处,cmp ebx,0xDB,这时候EBX的值为0x177,jnz不等于则跳转,所以此时跳转成立,跳转到0x0030B60D的位置处,这个时候程序已经跳过了验证成功的地方,继续执行,有三个cmp语句后跟jcc跳转指令,cmp ebx,0xEDcmp ebx,0x20C,这时EBX的值还是0x177,所以两个je都没有跳转,运行到第三个cmp指令cmp eax,0x93的位置,EAX此时的值为0xE7,这里是jnz指令所以跳转成功,跳转到0x0030B6E8的位置,输出无效的用户名密码,验证函数到此结束。

通过上面的分析当EBX等于0xDB的时候程序才会走到验证成功的位置,也就是说想要程序不每次运行都弹验证框,需要直接将0xDB赋给EBX

逆向分析010 editor

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

逆向分析010 editor

在开头直接给EAX赋值,mov eax,0x2d retn 0x8

最后把程序dump出来,发现程序直接打开就能使用了也不用每次都点击验证了。

逆向分析010 editor

0x03 总结

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

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

原文始发于微信公众号(白帽子):逆向分析010 editor

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月25日09:09:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   逆向分析010 editorhttp://cn-sec.com/archives/1830823.html

发表评论

匿名网友 填写信息