zzzxc123 发表于 2020-2-12 01:08

VMP核盾 劫持winspool打补丁修改3码

本帖最后由 a1078622049 于 2020-2-12 10:18 编辑

原帖地址:https://www.52hb.com/thread-45849-1-1.html

因为主要是讲解怎么打补丁 所以找三码的地址就简单的描述了(写补丁的方法可能通用大部分核盾 ,找三码的方法可能只适用于未加壳核盾以及本教程所逆向软件)


核盾卡号登陆官方例子最先调用三码的地方

这个软件有部分字符没有加密 正好能搜到下面的明文×tamp=


搜到×tamp= 双击进入能看到这处代码
对应核盾例子内的 参数 = “appid=” + appid + “×tamp=” + 时间戳 + “&data=” + 重要数据 + “&sign=” + md5签名

004024A8|.FF35 C8105E00 push    dword ptr              ; |Arg2 = 002EF398 ASCII "33048"
004024AE|.68 AB284E00   push    004E28AB                         ; |appid=


从这里能看出 appid的地址是0x5E10C8

往上找

上面还有一处是用了appid地址从核盾例子得知这里是校验_取md5_文本
对照核盾的例子 另一个全局变量地址就是safeCode了0x5E10CC
至于customCode地址用safeCode的地址+8就行   

下面开始搞补丁


因为这里要调用safeCode 所有要在他之前打上补丁   
我这里选择的是HOOK取时间戳这个子程序(因为没有参数 代码简单 基本不会出错且时机不错)


在OD里搜索他的明文 双击进去取段首地址

004025CD/$55            push    ebp
让他跳到我们伪造的取时间戳去



在 返回 (时间戳) 上面编写我们的补丁

safeCode = 进制_十六到十 (“005E10CC”)

appid = 进制_十六到十 (“005E10C8”)

customCode = 进制_十六到十 (“005E10D4”)

这是我们获取到的地址
我们在OD数据窗口内跟随005E10CC 看一下


会发现 该地址并非直接指向safeCode文本 而是指向一个地址(多次调试会发现为一个动态地址)
所以我们打补丁 只能读取005E10CC 字节集来取地址 而不是直接对00300CF8这个动态地址进行写入

进制_十六到十 (字节集_字节集到十六进制 (翻转字节集 (汇编_读字节集 (safeCode, 4))))
经过一系列复杂的方法可以转换为十进制地址(不知道有没有大神有更好的方法 )

对得到的地址写入我们自己的safeCode即可

汇编_写字节集 (进制_十六到十 (字节集_字节集到十六进制 (翻转字节集 (汇编_读字节集 (safeCode, 4)))), 到字节集 (“429956217”))
其余的两码同上即可

把补丁编译出来 放在与工具同目录运行   

登录成功
源码地址:https://www.lanzouw.com/i99oucj本帖所破FZ地址 https://www.lanzouw.com/i99tq7a
**** Hidden Message *****



10069685351 发表于 2020-2-12 10:08

学习学习!!!!!!!!!!!!!!

mckwap 发表于 2020-2-12 10:34

学习了 我那个核盾到现在也没搞定呢 希望大神能帮忙看看啊~

pj1143560 发表于 2020-2-12 11:22

前来学习一下

千里丶 发表于 2020-2-12 11:27

这个确实很不错

khuntoria 发表于 2020-2-12 11:39

看看,学习学习

leroy特洛伊 发表于 2020-2-12 11:48

这个整哈搜需要

moxiaowei 发表于 2020-2-12 12:10

谢谢分享,学习一下

福尔摩斯锤 发表于 2020-2-12 12:25

学习学习学习学习

asd4746945 发表于 2020-2-12 13:23

我来学习啦
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: VMP核盾 劫持winspool打补丁修改3码