皇帝陛下万岁 发表于 2020-6-4 11:23

【新手破解】跳过 一个SDK的加密狗验证;另求指点,不修改源dll破,是dll注入吗?

本帖最后由 皇帝陛下万岁 于 2020-6-4 11:37 编辑

——偷懒是学习的动力

前景提要:
最近修改一个公司的老项目,调用了一个第三方的SDK,调用SDK接口时有加密狗检测,抠逼公司只有一个加密狗 到处借用,然后加密狗还过期了,需要修改系统时间才能用。总之各种麻烦,所以尝试一下破解跳过加密狗检测。


动手:
调用接口时,如果没有加密狗,会有打印“加密狗无效!”,这个应该好办了。
打开OllyDBG,打开程序。
然后 找到SDK的 dll

双击该SDK模块



然后查找所有参考文本字符串

很容易就找到了,双击 “加密狗无效”



往上找关键判断,下断点 调试运行之后
发现该判断会进入打印错误然后返回了


于是改成jmp,再次运行。成功跳过加密狗验证!




最后求问大佬:
修改后的库当然不能发给甲方啦,怕手滑把这个库给打包进去了,所以有什么办法更方便的使用?
我记得之前的公司,有个SDK 的加密狗,有个文件丢C盘根目录就能跳过验证了,这是DLL注入的方法吗?求大佬指点一下嗷。!

IBinary 发表于 2020-6-4 17:54

这个简单.你自己做个HOOK. 检测你想检测的位置. 比如像你所说.检测C盘下一个文件(一个key) 都可以.自己做HOOK 当然做HOOK最简单的方法是DLL注入.HOOK写到DLL中.如果不想这样. 另一种方法就复杂了. 自己在程序中找空白区域.也是做HOOK.不过HOOK代码是写在空白区.相当于就是写ShellCode. 这样也可以.如果你不想用DLL就用这个方法.写ShellCode很难受的很费时间.
两种方法各有优劣:
1.DLL注入方法.好破解.别人IDA打开看看能推出出来.
2.ShellCode : 不好找HOOK位置.ShellCode不好分析.缺点就是比较考研逆向基本功以及ShellCode编写能力.

终南明月 发表于 2020-6-5 08:30

塞北的雪 发表于 2020-6-4 18:01
可以试试用CE生成加载器直接内存修改

这个好,使用时临时修改,不影响原DLL文件。

不知道改成啥 发表于 2020-6-4 12:12

打包的时候自动替换掉这个不就可以了吗?

wuai920981023 发表于 2020-6-4 17:58

厉害 推荐.DLL注入方法.好破解.别人IDA打开看看能推出出来.

塞北的雪 发表于 2020-6-4 18:01

可以试试用CE生成加载器直接内存修改

qingliang87 发表于 2020-6-4 18:19

新手也这么厉害啊

阿洋阿洋i 发表于 2020-6-4 18:24

强啊 学习了

LoongKing 发表于 2020-6-4 20:16

老板给你加钱没有

LL520 发表于 2020-6-4 23:56

感谢分享 很不错
页: [1] 2
查看完整版本: 【新手破解】跳过 一个SDK的加密狗验证;另求指点,不修改源dll破,是dll注入吗?