愿 每 一|

Hello霖

园龄:4年1个月粉丝:4关注:0

【逆向】使用ultimap定位加密程序call基址实现破解

使用ultimap迅速定位加密程序call基址

Ultimap是cheatengine官网出的搜索汇编调用计次工具,使用这个工具可以迅速定位到程序指定内存地址。

常用的寻基址方法就是字节搜索,变量加减搜索,指针扫描大法...但是如果遇到加密程序按这些方法可能就无法找到了,

所以还有个方法就是用ultimap寻找,直接冲汇编调用次数来寻找。

加密?不存在的。

在下根本不需要破你算法,从过程就找到你。

 


记录一下使用过程:

准备工具:

1.CE 7.4(不确定哪个版本开始带有ultimap,测试时是用的7.4)

2. x64dbg

3. 自写加密程序demo.exe

4. 大脑

 


Demo

下面的demo加密程序是 需要输入账号和密码,正确账号密码都为(admin)

 

输错误弹出登录失败

 

输入正确进入功能窗口

 


demo已经过字符串加密,拖进x64dbg无法查看到相关信息,(正常情况下可以找到“登陆失败”字符,然后跳到cpu汇编窗口nop就能强制登录成功。)

加密程序的话找不到相关字符 就无法下手断点位置

(程序可以断点API函数 MessageBox来寻找相关位置,但是我们这次主要目的不是这个,而是使用ultimap,而且不是每次都有API函数给你找的)

 


打开这次工具主角 CE 

帮助 --- 关于 --- 加载DBVM

 

问题来了,什么是特么的DBVM???

 

官方介绍:

 

一堆英文完全不懂,去百度翻译了下,发现一堆鸟语,相关词语根本不准确,所以翻译了等于没翻。

最后在官方论坛找资料,知道 这玩意 ,能开就开,不能开就使用ultimap2

 

ultimap:在cpu支持intel-vt指令集可以打开

ultimap2  :如果是amd,请使用ultimap2  (因为我的机器是amd 所以用的是2)

 

 

ultimap的开启:

先开启dbvm虚拟

 

 

点击这个位置,(因为是amd ,不是intel,所以显示这个 开启不了,如果你是intel,别管,直接点击这个位置,会显示开启成功)

amd的话不需要操作这一步

 

 


 

查看内存 --- 工具 -- 打开ultimap

intel选ultimap

amd 选 ultimap2

两个界面稍微有不一样,但是效果是一样的

 

官方开启教程:数据库克隆 - 作弊引擎 (cheatengine.org)

 


 

点击后进入这个窗口:

 


接下来开始正式操作:

点击 ultimap 的开始记录

 

1. 打开demo.exe  ---  点击 【登录】 按钮 一次 --- ultimap中 点击右上角的 代码已执行按钮

因为我们触发了一次,肯定会走一次程序相关位置的汇编

 

2. 点击 - -- 代码没有被执行

3. 重复一次 1

4. 重复 2 

5.重复 1

 

6.点击 下面的 显示当前有效的指令

 

前面的操作中,我们触发了三次按钮事件,所以只需要找到计数3的位置就可以了

如图:

可以看到还有27934条汇编经过,但是我们不需要那么多,我们需要找call,要把非call的代码都过滤

点击ultimap的过滤除call以外的一切

 

 

过滤结束后,代码少了许多,只剩下1842个

 

 

 但是还是有点多,还有非3次的汇编代码被记录了

写入 3  ,点击左边按钮过滤,再次点击 显示当前有效的指令

 

这时候只剩下1126个call  ,大概率就在这里,随便找一个地址,进x64dbg分析

 


 

随便找个位置下断,然后逐步分析 

可以看到寄存器   参数1:ebp-4位置是账号

参数2:ebp-8是密码

 

0x401047位置是信息框出现的call,但是这里是跳转进入call,并不是真正的call位置,需要步入查看代码

这里F7步入查看

 

 

里面的代码如下:

看到跳转直接nop一下就知道是哪个了,这里找到了je跳转 分别跳入成功or失败指令

我们需要的是无论输入什么都能登录成功

所以直接把je  nop掉即可。

 

修改后效果如下,乱输入账号密码也能进入窗口

 


总结:

Ultimap这玩意可以快速定位找到call位置,是个神器,但是吃内存

开启该功能相当于开启个小型的虚拟机,会将程序所以代码挂入虚拟机,

当程序代码执行后,会记录汇编代码是否经过位置,记录次数 ,每条代码都记录和计次,属实有点吃内存

虽然吃内存但是就是牛逼该用还是得用,

可以无视内存加密,寻基址无思路的时候可以强行操作一手。

 

本文作者:Hello霖

本文链接:https://www.cnblogs.com/Hello233/p/16688362.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Hello霖  阅读(3074)  评论(2编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起