老师早上好,这种题怎么解?
事情是这样的:
一个E程序,双击启动它就是进程A,然后会提醒用户登录或者注册。
这个时候进程A 会创建 进程B,并且把验证代码,随机加载在进程B的某段内存空间。
我画的示意图如下:
一开始我想写drv补丁,随着进程A创建,然后劫持它。
但是发现根本行不通,因为关键的验证代码是在进程B里边。
然后我想能不能劫持进程B,但是由于它是动态加载,我找不到内存加载的基地址。
求助大佬这种题,该怎么来攻与防呀?
为了避免求破,源程序就不发了。 _Bitter 发表于 2023-9-12 11:25
写一个DLL 注入到B里面。
感谢老师指点,DLL注入我会,问题是您怎么能定位到进程B里边,那段随机加载的基地址呢? 666888tzq 发表于 2023-9-17 11:15
A只是一个加载器而已,你要补丁的是b,在补丁里对模块b打补丁就行了。随机地址就用基址+偏移就可以了。
谢谢老师的指点,进程A似乎是随机在进程B里边申请基址,然后各种PE拉伸,等进程B启动起来后,其实所有的验证代码都已加载好了。
这样进程B其实是被无模块注入,我能想到的办法就是分析进程A然后得到进程B的加载基址,然后才能加上偏移获取函数地址。就算写dll也得有这个关键基址的吧 即时调试应该可以搞定…… 写一个DLL 注入到B里面。 无闻无问 发表于 2023-9-12 11:08
即时调试应该可以搞定……
附加调试在调试阶段是可行的,但不能每次用调试器修改完再使用软件吧。
随机加载的基地址可以算,首先先计算便宜,利用你想处理的地址减去模块首地址获得偏移,然后利用易语言模块获取进程B的模块地址,再加上偏移就可以计算和定位他的动态地址了。 你得逆啊,逆出它如何启动,传递了什么参数或数据…… 小南跑 发表于 2023-9-12 11:33
感谢老师指点,DLL注入我会,问题是您怎么能定位到进程B里边,那段随机加载的基地址呢?
取基址 算偏移定位。或者取特征算偏移 逆向思维用起来呀 啥程序 啥验证 山寨封包试试看
页:
[1]
2