逆向安装之010Editor

010Editor v14.0.1(64-bit)

前言

在脱壳练习中使用了010Editor这款软件,只能使用30天,于是就想去逆向pojie一下
第一次pojie正规稍大一点的软件,没什么经验
这个程序是没有加壳的,轻松修改数据
一开始是想绕过这个30天的检测,想去找这个模块方法的,修改了几个函数跳转,结果程序崩了
没有经验,就像大海捞针,没头没绪
最后还是得搜一搜找篇博客学习一下

https://www.52pojie.cn/thread-1695625-1-1.html

这位师傅的思路方法是:不去分析注册码,而是把注册标志标记为已注册,软件就是成功注册的状态

逆向流程很快的,先看效果

在这里插入图片描述
后(测试:修改系统时间到2050年,有效)
在这里插入图片描述

第一步找目标

思路:010 Editor在启动时,会检查注册状态,如果未注册,会提示是试用版,在这个提示处设断点,寻找pojie线索

首先,使用工具让010Editor.exe程序的基地址固定,方便调试测试修改
在这里插入图片描述
选择固定PE基址,保存导出就可以了

开启x64dbg
通过x64dbg调试发现,是这个窗口先跳转出来的,也就是启动时的试用版提示
在这里插入图片描述
然后我们通过字符搜索Evaluation,找到"Evaluation Version\n"
在这里插入图片描述
搜索之后发现有4个地址存在这个字符
在这里插入图片描述
进一步验证,发现它们在同一个模块(函数)里的,只是分支不同
我们选择一个地址进入,找到函数头部
在这里插入图片描述
然后下个断点,运行
测试是否会运行到这里
我这里断点下在0x00000014037614F,然后运行
在这里插入图片描述
可以看到rip停在到了0x00000014037614F,那就是这里没错了

找到注册标志

还是这个地址0x00000014037614F,右击打开图标
在这里插入图片描述
在这里插入图片描述
大一点的流程图长这样
在这里插入图片描述
可以看到分支指令

cmp     ebx, 0xDB
jnz     0x1403762D2 // 结果不为零(或不相等)则转移

分析得知,ebx = 0xDB,表示成功注册标志

找到注册标志后,改程序流向是无效的,必须找到设置注册标志的公共函数调用call,在函数调用call里边改程序流向,才能真正实现pojie

这个程序中,判断注册标志指令是cmp ebx, 0xDB,它上面的CALL是一个模块外的系统子程序调用

修改注册标志

我们要找到所有的注册标志cmp ebx, 0xDB
在这里插入图片描述
复制搜索指令
在这里插入图片描述
结果只有一条
在这里插入图片描述
之后发现是用了别的寄存器

cmp eax,DB //3D DB 00 00 00

用这个指令搜索发现有7处进行了比对
在这里插入图片描述
依次点击进去看看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这四处在比较DB的上一步,都调用了同一个函数0x140008652
也就是说是这个函数影响了寄存器eax的值
所以接下来要对这个函数进行修改

点击进行发现是跳转表,接着跟进
在这里插入图片描述
进入0x140375D80
在这里插入图片描述
发现都是对寄存器eax赋值的

je 010editor_no.140375DA5
mov eax,113

防止它乱赋值,这里先修改je跳转,然后修改eax,于是

je 010editor_no.140375D95
mov eax,DB

修改成这样
在这里插入图片描述
我这里补丁不上,我这里就用ida修改了
在这里插入图片描述
在这里插入图片描述
然后保存就可以了

成功逆向

最后跳出的界面天数这些都没了
在这里插入图片描述
最后是成功了
虽然是借助了教程博客,贵在学习嘛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值