MingKing 发表于 2017-9-21 19:41

【KeyMake】内存追码再探

本帖最后由 MingKing 于 2017-11-25 14:01 编辑

新手笔记,大佬可绕道!!!
之前用keymake做了个周易的追码笔记,但是当时用法没完全搞明白,特蛋疼,获取的是断点下指定地址的信息,害得我每个系统都得追一次码,
特难受,这回学聪明了

上篇周易笔记:https://www.52pojie.cn/thread-640417-1-1.html


不懂的先看上篇哦!

这次做个小笔记,以捷速OCR文字识别软件为例,补充一下内存追码的设置,以及一些注意事项(软件请自己官网下载,相关工具在最下方)

刚开始是用XP追码,追到了,做了注册机,放到本机(Win10)上,就失效了,当时没太注意,经Hmily大大提醒才解决,下面细述

首先是追码
使用的是X64dbg
OD好像不会显示地址中指针所指向的值(或者是我不会设置)
还有就是X64dbg能搜索出所有模块下的字符串,所以这次感觉用X64dbg要方便一点

右键所有模块字符串搜索,关键字“id”,看到一个关键字符串“Encrypt MachineID”(加密机器码)



点进去向下单步,发现走过注释处(变化)的CALL时机器码变化







复制之后填入,发现这就是注册码,OK,追到码(上面是机器码,下方是注册码)



这里开始着重说明一下,这里和之前周易的追码不一样,前面多了个&符号,这是什么意思呢?
稍微学过点C语言的知道,这是取地址符,大意是取EAX 0018E1BC中的地址,其中存放的数据为后面那串数字。


下面我们试一下,右键选择数据窗口跟随,数据窗口跳到下图位置,ASCII值窗口没有对应数字,E8 2C 29 00 下有
一根横线,表示这是一个指针(内部保存地址信息),指向哪个地址呢?



鼠标停放一下,看到保存的地址是00292CE8,右键跟随



00292CE8处,发现后方ASCII值窗口保存的正是注册码



所以不能像之前周易那篇帖里那样设置,而是再勾选地址指针1层,结合之前信息,设置如下:



周易那篇帖里,当时我还不太会用,设置的是寻找断点下指定地址存放的数据,导致每个系统下都不一样
这里如果勾选寄存器方式,获取EAX中的值,就不会有这个问题了,EAX中存放的地址可能不同,但值一定是出现在
EAX所保存的地址之中(不懂的请仔细对比尝试)


假如是像下图,没有&符号,就不用勾选指针了



如果是像这个ebp-3E8,就要在ebp偏移里填上-3E8



(寄存器方式是保存寄存器地址的值,好像没啥用,内存单元好像是保存内存地址,也没啥用)


到此,内存注册机的所有设置就都差不多搞明白了(反正我是明白了)


但是,这样注册机就能追到码了吗?并不是!!!


如下,每次启动程序,基址都在变




原因是使用了ASLR技术(再次感谢Hmily大大)


ASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,
防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。据研究表明ASLR可以有效的降低缓冲区溢出攻击的成功率,如今Linux、FreeBSD、Windows等主流操作系统都已
采用了该技术。(百度百科)
(反正就是用了这个的程序每次运行,基址都不一样)


怎么搞呢?


推荐如下两个工具:



第一个:直接关闭系统的ASLR服务,此软件方便一键开启或关闭http://www.pc6.com/softview/SoftView_355795.html


第二个:处理掉待破解文件的ASLR功能https://www.52pojie.cn/thread-377450-1-1.html


(经测试,软件安全)


两个软件各有用处


前者直接关掉系统服务,感觉影响系统安全(不过,一般都是在虚拟机里跑程序,影响不大)


后者直接修改文件,更方便,不需要其他注册机使用者再去设置服务了(但是程序有自校验就GG了,这时候还得前者出马)


引用第二个软件的作者的话:任你虐它千百遍,载入基址永不变(贼顺口啊有木有!!!)


注册机就不发了,有人发过啦:https://www.52pojie.cn/forum.php?mod=viewthread&tid=646011&page=10#pid17319733


以上,补充完整内存注册机的设置方法,以及追码的注意事项


还差30多积分升级,求各位大佬小佬的免费评分!!!



MingKing 发表于 2017-9-21 20:13

wang65424773 发表于 2017-9-21 20:06
厉害了,能把内存注册机分享一下吗,还有就是那个指令长度怎么得到的?

周易那篇不是说了么

Hmily 发表于 2017-9-25 10:00

jixun66 发表于 2017-9-24 19:56
@Hmily 小图的水印太大,把内容都挡掉了...

另外可能对 png 透明格式处理有问题,水印背景被换成白色而 ...

咦,这地方没动过,奇怪的是楼主那图片有的是透明的有的是不透明的{:301_971:}

璐璐诺 发表于 2017-9-21 19:51

能做到这些我觉得不算新手是进阶了。

天宫太祖 发表于 2017-9-21 19:51

学习了,谢谢楼主!

wang65424773 发表于 2017-9-21 20:06

厉害了,能把内存注册机分享一下吗,还有就是那个指令长度怎么得到的?

yhxing 发表于 2017-9-21 20:20

这等分析了 还要积分干什么啊—— 有技术就可以了啊。

MingKing 发表于 2017-9-21 20:21

yhxing 发表于 2017-9-21 20:20
这等分析了 还要积分干什么啊—— 有技术就可以了啊。

我要帅气的签名,我要更6的技术

帅气的签名=更6的技术

溜走~~~~~

wang65424773 发表于 2017-9-21 20:29

MingKing 发表于 2017-9-21 20:13
周易那篇不是说了么

好的,找到了,谢谢,跟你学习了

wubinwg 发表于 2017-9-21 21:09

鼓励转贴优秀软件安全工具和文档!

qiaoqiaota 发表于 2017-9-21 22:47

学习了,谢谢楼主!
页: [1] 2 3 4
查看完整版本: 【KeyMake】内存追码再探