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 *****
学习学习!!!!!!!!!!!!!! 学习了 我那个核盾到现在也没搞定呢 希望大神能帮忙看看啊~ 前来学习一下 这个确实很不错 看看,学习学习 这个整哈搜需要
谢谢分享,学习一下 学习学习学习学习
我来学习啦