09 2021 档案
网络游戏逆向分析-9-自动更新基址
摘要:网络游戏逆向分析-9-自动更新基址 基址在每次更新之后都会修改,这个比较麻烦,不然每次都得重新找,非常消耗体力和时间。 自动更新基址原理 搜索游戏进程的内存,然后把硬编码依次和内存里面数据进行匹配,匹配到了之后就返回地址,地址附近就是基址了,通过加减来得到基址。 这里要扯到一些关于硬编码和机器指令的
阅读全文
数据结构逆向分析-Map
摘要:数据结构逆向分析-Map map是一个典型的二叉树结构,准确的来说是一个平衡二叉树或者红黑树,特点是数据存储是有序的存储。 参考侯杰老师的stl源码剖析,map里面采用的是RB-TREE也就是红黑树 map存储的数据是以键值对的形式来存储的,Key:Value 优势:查找数据效率高,因为是平衡二叉树
阅读全文
数据结构逆向分析-Vector
摘要:数据结构逆向分析-Vector 这个应该是家喻户晓了的东西把,如果说C/C++程序员Vector都不用的话,可能就是一个不太好的程序员。 Vector就是一个STL封装的动态数组,数组大家都知道是通过连续的地址空间来处理的,vector的原理就是如果原来的不够了要扩展,就会开辟一段更大的内存,然后将
阅读全文
数据结构逆向分析-List
摘要:数据结构逆向分析-List 首先STL中的List就是一个链表,但是肯定C++用了很多封装,所以这里我们来一探究竟。 开始 首先先写一些简单的分析的源代码: #include<iostream>#include<list>using namespace std;int main(){ list<
阅读全文
网络游戏逆向分析-7-人物背包分析
摘要:网络游戏逆向分析-7-人物背包分析 前面我们找到了使用人物背包的函数调用,但是并不完美,因为我们需要处理一些参数,比如说用背包第二个物品,就需要push 1像数组一样从0 1 2 4 5 6这样来数,这对于程序员来说没问题,但是对于使用者肯定是不好的,所以我们需要得到背包的内容,来遍历背包,再根据需
阅读全文
网络游戏逆向分析-6-使用背包物品call
摘要:网络游戏逆向分析-6-使用背包物品call 首先,大家在处理网络游戏的时候,一定得利用好发包函数,因为他就是整个网络游戏的关键。 处理办法: 这里还是直接给发包打断点来处理。 就像我们之前处理喊话函数call一样来处理它: 还是先给send打断点,然后依次往上找函数调用,直到只有使用背包物品才会断下
阅读全文
网络游戏逆向分析-5-线程发包函数
摘要:网络游戏逆向分析-5-线程发包函数 非线程发包执行流程: 线程发包执行流程: 多线程可能是线程A把数据给线程B,然后线程B再把数据给服务器进行交互。 之前的可能就一个线程就搞定了,这次就需要复杂一点,两个线程协同合作来交互数据。 线程A把封包数据写到某个地方,然后线程B一直读该地方如果有值就发送,没
阅读全文
Windows内核开发-7-IRP和派遣函数
摘要:Windows内核-7-IRP和派遣函数 IRP以及派遣函数是Windows中非常重要的概念。IRP 是I/O Request Pocket的简称,意思是I/O操作的请求包,Windows中所有User和Kernel之间的交流都会被封装成一个IRP结构体,然后不同的IRP会被派遣到不同的派遣函数里面
阅读全文
Windows内核开发-8-监听进程、线程和模块
摘要:Windows内核基础知识-8-监听进程、线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程、线程和模块加载通知。 本次采用链表+自动快速互斥体来实现内核的主要架构。 进程通知 只要在内核里面注册了进程通知那么创建进程就会反馈给内核里面。 //注册/销毁进程
阅读全文
浙公网安备 33010602011771号