吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 6265|回复: 27

Dll初始化的时候可以被劫持和修改么?

[复制链接]
DavidLiu 发表于 2024-6-24 23:33 | 显示全部楼层 |阅读模式

本站严厉禁止求脱求破行为(包含无自我分析直接求思路),如发现此类求助主题请点击“举报”,让我们共同维护优质的学习环境!


30HB
本帖最后由 DavidLiu 于 2024-6-25 13:16 编辑


-------------------2024年06/25/13:11--------------------------
-------------------帖子修改--------------------------------------

先前为了防止求破违规没有放链接,这次帖子修改,把我写的源码和模拟程序贴进去

如下图,程序(植物大战僵尸.exe)启动的时候,会加载DLL (无限金币.dll)  

DLL在初始化的过程中弹窗(用来模拟游戏的作弊补丁)



001.png

然后进入游戏界面



002.png

我写的EXE程序和DLL源码链接如下:
链接:https://wwl.lanzouq.com/iBNTB22o33wh
密码:6sbu


希望能够在DLL加载的时候,把它的DllMain初始化函数给修改了。

比如把弹窗内容给它改成:“Crack Done!!!”

实际分析的时候,这个“无限金币.dll"的加载基址始终是0x1000 0000(易语言的毛病)

所以实战的时候,不能把这个基址作为已知的基址直接使用,因为DLL加载很多时候它的基址都不是固定的,要么hook Loadlibrary获取,要么遍历程序模块获取


--------------原始帖子的内容如下--------------------------------
001.jpg

如上图所示,某游戏(就称它为:“植物大战僵尸”好了)在启动的时候,让它加载我们的dll

这个dll呢是大佬开发的作弊补丁(无限金币,要收费的)

我们知道dll在加载的时候,就会执行DllMain进行初始化,而它的验证呢,干脆就放在dll初始化的过程中

验证通过就可以无限金币,否则就没有。

想请教一下,有没有什么办法可以在DllMain执行之前就把代码修改掉呢?

(我尝试APIHOOK  Loadlibrary 虽然可以得到dll的加载基址,但是人家dll加载后就会立刻初始化,找不到合适的时机改代码)

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lies 发表于 2024-6-25 00:03 | 显示全部楼层

一个思路,仅供参考:
1、用工具将dll初始化代码开始改成CC
2、APIHOOK之后先设置自己的异常处理
3、Loadlibrary执行到初始化部分会触发异常,转到自己的异常处理里改代码,同时恢复用CC覆盖的代码
4、异常处理之后转回到dll初始代码执行,现在就是执行你修改的代码了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boot 发表于 2024-6-25 00:08 | 显示全部楼层

lies 发表于 2024-6-25 00:03
一个思路,仅供参考:
1、用工具将dll初始化代码开始改成CC
2、APIHOOK之后先设置自己的异常处理

这个问题很有价值,明确地说,可以,有好几种稳定的方法。如果能解决这个问题,也就解决了我出的下面这道题。

听说se只需1分钟就能patch?
https://www.52hb.com/thread-60773-1-1.html
(出处: 吾爱汇编)

评分

参与人数 1HB +1 收起 理由
笑一笑九炜 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2024-6-25 00:20 | 显示全部楼层

lies 发表于 2024-6-25 00:03
一个思路,仅供参考:
1、用工具将dll初始化代码开始改成CC
2、APIHOOK之后先设置自己的异常处理

感谢老师的回复,我能大概理解您说的思路

(通过异常中断程序的执行,然后我们就趁机改代码,改完后在恢复程序往下执行)

但是拦在我面前的大山就是,要怎么来让它异常中断呢?中断后又怎么才能接管呢?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2024-6-25 00:22 | 显示全部楼层

boot 发表于 2024-6-25 00:08
这个问题很有价值,明确地说,可以,有好几种稳定的方法。如果能解决这个问题,也就解决了我出的下面这道 ...

给讲讲吧
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
E少 发表于 2024-6-25 00:36 | 显示全部楼层

建议把游戏跟文件放网盘提供链接 要不然说再多都是白扯
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lies 发表于 2024-6-25 08:16 | 显示全部楼层

DavidLiu 发表于 2024-6-25 00:20
感谢老师的回复,我能大概理解您说的思路

(通过异常中断程序的执行,然后我们就趁机改代码,改完后在恢 ...

直接16进制修改硬盘文件写入CC,不管怎样都会发生异常
至于接管,你都能Hook了就不能写自己的VEH?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
弃天帝520 发表于 2024-6-25 08:47 | 显示全部楼层

E少大佬都发话了,你还不把游戏和dll放网盘
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
我的爱是你 发表于 2024-6-25 10:24 | 显示全部楼层

异常处理需要对编程进行深刻理解,因为此类开源代码或教程太少了。
我还是推荐简单的HOOK,如软件1.exe 会调用2.dll 遂dllmain进行初始化 会调用验证函数func1() 进行验证。
那么我们对func1()进行hook,这里就要考验hook功底了,太早2.dll没加载 太晚2.dll已经初始化调用func1()了。
我们要在检测到2.dll被加载时,即时注入Hook代码并执行Hook操作。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boot 发表于 2024-6-26 18:16 | 显示全部楼层

lies 发表于 2024-6-25 08:16
直接16进制修改硬盘文件写入CC,不管怎样都会发生异常
至于接管,你都能Hook了就不能写自己的VEH? ...

> 直接16进制修改硬盘文件写入CC

如果是加了壳之后的文件,是不能直接修改的,一般保护壳都有校验。因此,需要Hook判断解码时机并修改。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表