【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多积分升级,求各位大佬小佬的免费评分!!!
wang65424773 发表于 2017-9-21 20:06
厉害了,能把内存注册机分享一下吗,还有就是那个指令长度怎么得到的?
周易那篇不是说了么 jixun66 发表于 2017-9-24 19:56
@Hmily 小图的水印太大,把内容都挡掉了...
另外可能对 png 透明格式处理有问题,水印背景被换成白色而 ...
咦,这地方没动过,奇怪的是楼主那图片有的是透明的有的是不透明的{:301_971:} 能做到这些我觉得不算新手是进阶了。 学习了,谢谢楼主! 厉害了,能把内存注册机分享一下吗,还有就是那个指令长度怎么得到的? 这等分析了 还要积分干什么啊—— 有技术就可以了啊。 yhxing 发表于 2017-9-21 20:20
这等分析了 还要积分干什么啊—— 有技术就可以了啊。
我要帅气的签名,我要更6的技术
帅气的签名=更6的技术
溜走~~~~~ MingKing 发表于 2017-9-21 20:13
周易那篇不是说了么
好的,找到了,谢谢,跟你学习了 鼓励转贴优秀软件安全工具和文档! 学习了,谢谢楼主!