摘要:
网络游戏逆向分析-6-使用背包物品call 首先,大家在处理网络游戏的时候,一定得利用好发包函数,因为他就是整个网络游戏的关键。 处理办法: 这里还是直接给发包打断点来处理。 就像我们之前处理喊话函数call一样来处理它: 还是先给send打断点,然后依次往上找函数调用,直到只有使用背包物品才会断下 阅读全文
2021年9月15日
2021年9月12日
摘要:
网络游戏逆向分析-5-线程发包函数 非线程发包执行流程: 线程发包执行流程: 多线程可能是线程A把数据给线程B,然后线程B再把数据给服务器进行交互。 之前的可能就一个线程就搞定了,这次就需要复杂一点,两个线程协同合作来交互数据。 线程A把封包数据写到某个地方,然后线程B一直读该地方如果有值就发送,没 阅读全文
2021年9月6日
摘要:
Windows内核-7-IRP和派遣函数 IRP以及派遣函数是Windows中非常重要的概念。IRP 是I/O Request Pocket的简称,意思是I/O操作的请求包,Windows中所有User和Kernel之间的交流都会被封装成一个IRP结构体,然后不同的IRP会被派遣到不同的派遣函数里面 阅读全文
2021年9月4日
摘要:
Windows内核基础知识-8-监听进程、线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程、线程和模块加载通知。 本次采用链表+自动快速互斥体来实现内核的主要架构。 进程通知 只要在内核里面注册了进程通知那么创建进程就会反馈给内核里面。 //注册/销毁进程 阅读全文
2021年8月30日
摘要:
1 void IrpTest(PDRIVER_OBJECT DriverObject) 2 { 3 DriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutin; 4 DriverObject->MajorFunction[I 阅读全文
摘要:
反调试——3——反调试手段 反调试的方法有非常非常多,这里介绍一些比较常见的。 通过CloseHandle() 通过CloseHandle来试图关闭一个不存在的句柄,如果程序处于调试状态就会引发异常,否则没有任何反应。 这种机制在User下看起来就是调用一个CloseHandle,但是其实它的内部逻 阅读全文
摘要:
反调试——2——深入NtQueryInformationProcess ProcessDebugPort这个标志位里面涉及到的东西比较复杂,所以要展开来讲。 CheckRemoteDebuggerPresent(): CheckRemoteDebuggerPresent function (debu 阅读全文
2021年8月28日
摘要:
反调试——1——开始反调试 前面的文章可以算是反调试的一些铺垫了,现在算是正式开始。 调试器的工作流程 调试器调试分两种情况,一种是附加进程,一种是通过可执行程序来创建进程调试。 创建进程: 通过CreateProcess并设置为DEBUG_PROCESS模式来启动。 BOOL CreateProc 阅读全文
摘要:
反调试——异常过滤器 首先什么是异常:很简答就是CPU遇到了无法执行的指令。 异常处理的流程: CPU->操作系统->调试器(如果有)->VEH->SEH->异常过滤器(SetUnhandleExceptionFilter) 异常过滤器: https://docs.microsoft.com/en- 阅读全文
摘要:
void RegTest()//内核的操作Reg函数和User下的函数不一样 { RawCreateOpenRegTest(); EasyOpenRegTest(); EditReg(); QueryReg(); } void RawCreateOpenRegTest() //内核的操作Reg函数和 阅读全文