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

为我后面重写整个游戏菜单hook逻辑从lua到汇编提供了一定的基础,最近也刚好做菜单与APP的接口连接,在库存里翻到了这个优秀的模板和里面一些以前玩过的hook思路,所以便把当时对这个模板使用的一个功能实现小思路分享一下
不知道三楼多少人在用,当然这个也不重要,毕竟思路还是更重要(谁让你们不保存的[怒])
在dll中方法大概有几个元素构成,其实跟c命名方式差不多
加载的dll.命名空间.类名.方法名
目前大部分hook,基本不需要记忆dll。只要记好后三个元素即可。
这个模板我觉得有一点点不足就是,好像没有对重载方法的寻址,目前看寻址过滤是限定类,限定方法名,限定方法参数数量
也就是在同一个类中有两个同名方法
比如a(int a)和a(float a)他们唯一区别就是参数类型不同,有一点代码基础的朋友应该能知道
再加上很多接口都是封装好的,改装起来太麻烦。只能含泪重写了一个根据方法参数类型名字进行过滤的方式
所以结合以上一个小小的科普,再看下方的图片大家是不是可以大概了解到一个自更的过程了,找到方法地址后,就是简单的下钩了,剩下的与原有无异,先记忆一下图片内的代码

你也可以hook这个类初始化必定会调用到的方法,因为一般来讲我们只需获取一次实例,然后把他进行一次全局的保存。
这里我的写法其实是有点问题的,应该加一个判断instance实例(一般不会遇到空问题)不为空再保存或者说boosinstace为空再保存
拿到这个实例我们可以如何操作呢,那就是下一步了


