- UID
- 86327
注册时间2015-3-8
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 擦汗 2024-11-22 21:27 |
---|
签到天数: 77 天 [LV.6]常住居民II
|
某宝购买的虚拟机,网络验证+ Winlicense授权 ,已购买授权,但是联网验证说不定哪天就不能用了,就想办法干掉联网验证吧.由于自己是个新手,菜鸟一个.研究这个的过程是非常的艰辛 前前后后得有半个月,不知道改了多少个地方才成功.
由于这个程序的关键地方是申请的内存,动态的地址,目前已知的是无法用补丁工具打补丁,要写劫持补丁,好像易语言的劫持补丁无法用在64位的程序上,c++的又很难找到劫持源码 .就换一个思路 不改这个区段的内容,找下其他的地方.
1.程序打开会闪退,因为找不到那个联网验证的程序,我给删掉了.下退出断点
2.运行程序,断在退出的地方 是那个动态地址的区段调用的退出,既然无法补丁那个区段就直接ret系统领空的退出.
3.f8单步一直往下走 到主程序区段这个地方发现rax=0 直接修改为1 (这里我也不知道为什么改成1就可以了,我是乱改的 不知道原理,其它地方我也改过是0改1 是1改0,试出来的结果)有高手知道原理的可以来解释一下.这个地方不改直接运行会提示dll加载的错误.
4.在f9运行 竟然可以了,刚开始就没有想过要修改系统领空的东西 但是在你实在没办法到时候 就乱改呗,说不定就成功了
5.在x64dbg里面成功 ,不算成功,用大白打上补丁才算OK,又折腾了很久才搞定 找到退出断点右键复制rva=240F0 (系统的断点每台电脑不一样) 模块选择ntdll.dll
6.找到rax赋值的地方 修改寄存器rax的值为1 这个地方也是难点因为程序会多次调用这个地方 只需要修改一次 经过反复测试设置条件断点为2 成功
7.系统领空的退出被改了 程序永不退出了 怎么让程序在第一次调用退出不退出 其它退出正常执行呢 这个地方想了很久 最后直接给设置的延时100毫秒 成功搞定 不得不说@Nisy 校长的大白补丁工具是真的牛啊.
补丁运行的视频演示https://710898798.lanzoum.com/isCFT0ynvefi
有其他思路的可以跟帖交流. 欢迎论坛的前辈们大神们指点.
|
|