游客
【初夏原创】【技术教程】小白适用基础自更新应用小技巧

【初夏原创】【技术教程】小白适用基础自更新应用小技巧

一言准备中...

江湖漫漫,而我再现[滑稽]

取之三楼,终究要归于三楼,此乃因果[滑稽]安达姬大佬(应该已注销)分享过的一个自更模板,陪伴了我一段时间,在hook学习路程上一次里程碑式的纪念。

为我后面重写整个游戏菜单hook逻辑从lua到汇编提供了一定的基础,最近也刚好做菜单与APP的接口连接,在库存里翻到了这个优秀的模板和里面一些以前玩过的hook思路,所以便把当时对这个模板使用的一个功能实现小思路分享一下

不知道三楼多少人在用,当然这个也不重要,毕竟思路还是更重要(谁让你们不保存的[怒])

在dll中方法大概有几个元素构成,其实跟c命名方式差不多

加载的dll.命名空间.类名.方法名

目前大部分hook,基本不需要记忆dll。只要记好后三个元素即可。

这个模板我觉得有一点点不足就是,好像没有对重载方法的寻址,目前看寻址过滤是限定类,限定方法名,限定方法参数数量

也就是在同一个类中有两个同名方法
比如a(int a)和a(float a)他们唯一区别就是参数类型不同,有一点代码基础的朋友应该能知道

再加上很多接口都是封装好的,改装起来太麻烦。只能含泪重写了一个根据方法参数类型名字进行过滤的方式

所以结合以上一个小小的科普,再看下方的图片大家是不是可以大概了解到一个自更的过程了,找到方法地址后,就是简单的下钩了,剩下的与原有无异,先记忆一下图片内的代码


然后我们进入正题,大家可以看到我们把一个死亡方法的地址hook住了也是dodie,他在满足与isenough位于同一个类的情况下,我们可以通过hookisenough获取到这个类的实例。一样有代码基础的朋友都知道,除了静态方法其实大部分方法调用都需要一个实例

你也可以hook这个类初始化必定会调用到的方法,因为一般来讲我们只需获取一次实例,然后把他进行一次全局的保存。

这里我的写法其实是有点问题的,应该加一个判断instance实例(一般不会遇到空问题)不为空再保存或者说boosinstace为空再保存

拿到这个实例我们可以如何操作呢,那就是下一步了


我们可以直接调用这个类中所有任意的方法,只要你有他们方法的其他参数值,比如直接死亡,加金币等等,注意的是这里规范写法加上一个片段实例是否为空好一点

大概内容便是如此,文字略有差错处还请担待。江湖路漫漫,愿一路同行。他日青云见[滑稽]

  • 本文作者:Naive
  • 本文链接: https://www.starringx.cn/post-32138.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
3.2W+
5
0
6
安静的做,成功了说。

【技术教程】UE4引擎通用绘制矩阵寻找 第一期

上一篇

FPA框架使用教程

下一篇
评论区
内容为空

这一切,似未曾拥有