上一页 1 2 3 4 5 6 7 8 ··· 39 下一页

2021年10月9日

摘要: 反调试——6——附加进程反调试 经常在给调试器附加进程时进程直接崩溃了,比如说用比较常见的ollydbg没有加任何处理来附加DNF就会直接崩溃。 附加调试流程 debugger(调试器)在调用DebugActiveProcess来附加进程后,进程中有多少个线程,调试器就会发送多少个CREATE_TH 阅读全文
posted @ 2021-10-09 21:31 Sna1lGo 阅读(925) 评论(0) 推荐(0)
 
摘要: 反调试——5——检测调试对象 有一些内容采用的是WRK里面的定义。因为这个算是没有公开的文档,公开的不能这样使用。 查询父进程实现反调试 正常打开(双击运行)的程序的父进程是explorer.exe(资源管理器)(Windows的内置机制),通过查询父进程的ID是否是explorer.exe来判断程 阅读全文
posted @ 2021-10-09 04:17 Sna1lGo 阅读(689) 评论(0) 推荐(0)

2021年10月1日

摘要: 反调试——4——硬件断点反调试 首先需要明白什么是硬件断点,硬件断点其实是通过一个调试寄存器来实现的,这个调试寄存器是CPU上的东西,就是前面截图的这个东西,叫做Debug Registers,在intel手册卷3 17章第二节里面)。 DR0-DR3为设置断点的地址,DR4和DR5为保留内容。DR 阅读全文
posted @ 2021-10-01 02:18 Sna1lGo 阅读(1590) 评论(3) 推荐(0)

2021年9月26日

摘要: 网络游戏逆向分析-9-自动更新基址 基址在每次更新之后都会修改,这个比较麻烦,不然每次都得重新找,非常消耗体力和时间。 自动更新基址原理 搜索游戏进程的内存,然后把硬编码依次和内存里面数据进行匹配,匹配到了之后就返回地址,地址附近就是基址了,通过加减来得到基址。 这里要扯到一些关于硬编码和机器指令的 阅读全文
posted @ 2021-09-26 03:25 Sna1lGo 阅读(2364) 评论(3) 推荐(3)

2021年9月21日

摘要: 数据结构逆向分析-Map map是一个典型的二叉树结构,准确的来说是一个平衡二叉树或者红黑树,特点是数据存储是有序的存储。 参考侯杰老师的stl源码剖析,map里面采用的是RB-TREE也就是红黑树 map存储的数据是以键值对的形式来存储的,Key:Value 优势:查找数据效率高,因为是平衡二叉树 阅读全文
posted @ 2021-09-21 19:15 Sna1lGo 阅读(926) 评论(0) 推荐(0)
 
摘要: 数据结构逆向分析-Vector 这个应该是家喻户晓了的东西把,如果说C/C++程序员Vector都不用的话,可能就是一个不太好的程序员。 Vector就是一个STL封装的动态数组,数组大家都知道是通过连续的地址空间来处理的,vector的原理就是如果原来的不够了要扩展,就会开辟一段更大的内存,然后将 阅读全文
posted @ 2021-09-21 03:08 Sna1lGo 阅读(469) 评论(0) 推荐(0)

2021年9月19日

摘要: 数据结构逆向分析-List 首先STL中的List就是一个链表,但是肯定C++用了很多封装,所以这里我们来一探究竟。 开始 首先先写一些简单的分析的源代码: #include<iostream>#include<list>using namespace std;​int main(){​ list< 阅读全文
posted @ 2021-09-19 20:55 Sna1lGo 阅读(380) 评论(0) 推荐(0)

2021年9月17日

摘要: 网络游戏逆向分析-7-人物背包分析 前面我们找到了使用人物背包的函数调用,但是并不完美,因为我们需要处理一些参数,比如说用背包第二个物品,就需要push 1像数组一样从0 1 2 4 5 6这样来数,这对于程序员来说没问题,但是对于使用者肯定是不好的,所以我们需要得到背包的内容,来遍历背包,再根据需 阅读全文
posted @ 2021-09-17 00:55 Sna1lGo 阅读(1082) 评论(0) 推荐(2)

2021年9月15日

摘要: 网络游戏逆向分析-6-使用背包物品call 首先,大家在处理网络游戏的时候,一定得利用好发包函数,因为他就是整个网络游戏的关键。 处理办法: 这里还是直接给发包打断点来处理。 就像我们之前处理喊话函数call一样来处理它: 还是先给send打断点,然后依次往上找函数调用,直到只有使用背包物品才会断下 阅读全文
posted @ 2021-09-15 23:37 Sna1lGo 阅读(1237) 评论(2) 推荐(1)

2021年9月12日

摘要: 网络游戏逆向分析-5-线程发包函数 非线程发包执行流程: 线程发包执行流程: 多线程可能是线程A把数据给线程B,然后线程B再把数据给服务器进行交互。 之前的可能就一个线程就搞定了,这次就需要复杂一点,两个线程协同合作来交互数据。 线程A把封包数据写到某个地方,然后线程B一直读该地方如果有值就发送,没 阅读全文
posted @ 2021-09-12 23:20 Sna1lGo 阅读(1896) 评论(0) 推荐(3)
上一页 1 2 3 4 5 6 7 8 ··· 39 下一页