se 2.4 path 小记。

继上次C#一波后,朋友又给我扔了一个软件,打开一看

se 2.4 path 小记。

@%#……#%@……!%

让我这种小白玩SE真的好吗。。

简直万念俱灰啊,又不想强行打脸

有气无力的拖入OD

se 2.4 path 小记。

附加

se 2.4 path 小记。

虽然早就猜到了这种结果,但还是忍不住唱一首凉凉啊

你以为我会就这么放弃了?不存在的

接下来就是一波疯狂的diss度娘

历经接近两个小时的下载删除下载删除(其实大部分时间还是在下载上,这网速%@¥!……&%@)

链接:https://pan.baidu.com/s/1Gxa3uZrdgZ5qKBLDGBLh-Q 密码:h6we

终于找到一款能够完美过检测的OD。。附上链接一枚(别人说SOD过的,然后各种版本都带SOD,且配置一致, 然而只有这一款能过)

检测过了,接下来确定一下SE版本

se 2.4 path 小记。

OK,2.4版本,问一下度娘

2.4版本度娘也不知道多少啊,这个就有点难受了,偶然看到一句话

se 2.4 path 小记。

找了一下2.3.x系列教程,感觉打开了新世界的大门

中间测试经历的艰难坎坷这里就不说了,主要记录一下正确path流程

开始正文吧

第一篇启蒙正文

https://www.xuepojie.com/thread-39131-1-1.html

本着(bao)交(da)流(tui)的心思,注册了一个论坛帐号,留下自己的问题要个联系方式

打开楼主的主题&回复,又一扇新世界的大门向我打开

se 2.4 path 小记。

跟我一样遇到同一个问题的同学,跟着他的脚步,结合他的帖子内容+大神的教程:https://www.xuepojie.com/thread-9264-1-1.html

se 2.4 path 小记。

首先Ctrl+B 二进制搜索windows api 函数 RegQueryValueEXA   

两次找到了这里

se 2.4 path 小记。

由于是第一次找,先F8单步慢慢跟,看看有没有找错地方

现在jmp处下个断,F9运行到断点

se 2.4 path 小记。

跟到这寄存器处发现了关键字,鼠标放在EAX后的数据上,数据窗口跟随

中间有个小插曲,大神的视频中手动找断尾,然而我这个代码好像有自己的想法,最后发现还有一种骚操作

se 2.4 path 小记。

这下不用绕了。。

现在ret上面的popad上面的jmp处下个断,以免回来找不着

单步过ret,在下面跳转处上方下一个断点

se 2.4 path 小记。

可能是2.4的代码上跟旧版本的会有点不同,在这个地方下断后各种报内部错误

se 2.4 path 小记。

不过不影响,尽管有报错,还是能够让我们看到他出现机器码的地方

se 2.4 path 小记。

找到了机器码后,由于此处机器码已经被程序校验过了,所以我们重新运行软件,回到我们的出现关键字的popad上方的jmp处,0071ECBF   . /E9 5B030000   jmp Demo.0071F01F

这个地方很重要,最好把地址保存一下,单步跟,出去

上面找机器码的时候已知,0x18E4F4+0x4=0x18E4F8

下方二进制搜索18E4F8

se 2.4 path 小记。

来到这个位置,在机器码尾部下硬件写入断点,不在头部下是因为机器码未加载完你也看不出什么花来。。

se 2.4 path 小记。

F9运行两次,可以看到我们的机器码已经出来了

se 2.4 path 小记。

直接右键二进制编辑,替换正确的机器码

se 2.4 path 小记。

把硬件断点取消,程序就完美运行,path成功。(前提需要有一个正确的key文件和机器码)

接下来就是很蛋疼的打补丁时刻,SE的补丁比较特别,自己又没有写补丁的经验。

最后还是那位大神还是熟悉的操作

本文不详细记录补丁过程,下面是补丁源码内需要修改的地方:

链接:https://pan.baidu.com/s/1XEqsAzvT-YPMNWo-x9gctA 密码:2q2o

SE_Jmp_Addr = popad上面的jmp地址

SE_Call_Addr = 下硬件断点后出现机器码地址处最近的一个jmp地址

SE_Offset = 关键字与机器码头部出现位置偏移

SE_NEW_SN = 需要替换的机器码

Install_Hook_Jmp 方法内

Origin_Jmp_Addr = SE_Jmp_Addr 地址中jmp后边tiao跳转的地址