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

2021年10月9日

摘要: 反调试——7——CRC检测 CRC32: CRC的全称是循环冗余校验,作用是为了检测数据的完整性。 CRC32的检测原理: 程序被编译后,代码段是固定的,因为已经被写死了。 我们在调试程序的时候,打断点或者修改代码都会影响CRC32的值,这个时候只需要检测CRC32的某一时刻值和最初的CRC32值是 阅读全文
posted @ 2021-10-09 23:25 Sna1lGo 阅读(997) 评论(0) 推荐(0) 编辑
 
摘要: #include"CRC32.h" #include<Windows.h> #include<iostream> using namespace std; void test1() { int a = 1; cout << "1111111111111111111111" << endl; } vo 阅读全文
posted @ 2021-10-09 23:24 Sna1lGo 阅读(248) 评论(0) 推荐(0) 编辑
 
摘要: 反调试——6——附加进程反调试 经常在给调试器附加进程时进程直接崩溃了,比如说用比较常见的ollydbg没有加任何处理来附加DNF就会直接崩溃。 附加调试流程 debugger(调试器)在调用DebugActiveProcess来附加进程后,进程中有多少个线程,调试器就会发送多少个CREATE_TH 阅读全文
posted @ 2021-10-09 21:31 Sna1lGo 阅读(646) 评论(0) 推荐(0) 编辑
 
摘要: 反调试——5——检测调试对象 有一些内容采用的是WRK里面的定义。因为这个算是没有公开的文档,公开的不能这样使用。 查询父进程实现反调试 正常打开(双击运行)的程序的父进程是explorer.exe(资源管理器)(Windows的内置机制),通过查询父进程的ID是否是explorer.exe来判断程 阅读全文
posted @ 2021-10-09 04:17 Sna1lGo 阅读(486) 评论(0) 推荐(0) 编辑

2021年10月1日

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

2021年9月26日

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

2021年9月21日

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

2021年9月17日

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