Eric 发表于 2024-8-8 17:37

动态地址也是要分情况的, 按你提供的特征码来看的话, 是在执行某call时临时写入的, 这种一般都有固定call, 所以这种情况下你就算解码了替换的也不一定是实际执行时写入的地址.

你这种只能算内存段特征码定位, 一般为解密或变量临时写入, 这里的数据随时会被覆盖, 除非这里的数据解码后就能出现且修改有效, 不然以你的补丁方式时机不好控制的. 建议找到固定call, 也就是第一时间写入返回的call, 在call下面超级HOOK就可以了.

如果非要以这样定位, 那就只能用内存搜索了, 调试中找一个解码后可以被中断的API或固定地址, HOOKAPI或固定地址, 中断时搜索并判断时机去修改.

另一种是代码段特征码定位, 这种动态地址是可执行代码类, 找唯一特征计算偏移即可.

boot 发表于 2024-8-8 17:40

列举一些Baymax的致命缺陷(杂笔)
https://www.52hb.com/thread-60856-1-1.html
(出处: 吾爱汇编)
1. 无法对付堆内存/私有内存/临时地址,这个工具的本质就是解析PE结构,同时模拟了微型调试器的部分功能;正式的调试器能修改非程序领空的地址,很遗憾,Baymax并不能

解决方案:VirtualAlloc或GetVersion中断,取寄存器指向的内存值作为动态基址,如有必要,可以进行简单位运算得到基址,之后加上低四位的偏移即可动态定位堆内存地址。

boot 发表于 2024-8-8 17:46

1. 关于堆内存的例子:这几个最经典,专门针对Baymax,此工具无法解决:

关于特殊动态地址补丁的问题
https://www.52hb.com/thread-59481-1-1.html
(出处: 吾爱汇编)

打完补丁运行没有效果,求助分析一下原因。
https://www.52hb.com/thread-60641-1-1.html
(出处: 吾爱汇编)

听说Unlicense是个秒杀神器?
https://www.52hb.com/thread-60977-1-1.html
(出处: 吾爱汇编)


具体实例,可自行测试。

吃麻花麻花疼 发表于 2024-8-8 18:14

吃麻花麻花疼 发表于 2024-8-8 18:14

E少 发表于 2024-8-8 22:41

简单看了一眼帖子内容 这秘钥不是量子的秘钥格式吗

吃麻花麻花疼 发表于 2024-8-8 23:24

学编程的闹钟 发表于 2024-8-9 12:43

马保国 发表于 2024-8-8 13:36
既然断一次就解码了,那么就用精易模块,超级模块,以及一些其他的带有特征码搜索功能的模块,搜索一下特 ...

谢谢分享
页: 1 [2]
查看完整版本: 动态解码的搜索替换补丁怎么打?