摘要:
文章来源于对 https://rayanfam.com/topics/reversing-windows-internals-part1/ 的理解。 1. Handle Table 结构体如下所示(Win10, x64, Intel) kd> dt nt!_HANDLE_TABLE +0x000 N 阅读全文
摘要:
Win7 ,7601 sp1。内核 NT 6.1 此函数的参数只有一个(Y),即要解密的指针。 首先调用 ZwQueryInformationProcess(-1,0x24,&Buffer,sizeof(Buffer),4),函数返回一个4字节的值,若返回值 NTStatus 不为负数,则取 Buf 阅读全文
摘要:
算是分析的第一个漏洞,参考了网上的很多分析,从漏洞触发往前进行逆向分析。动态调试使用 Win xp pro SP3 什么是 UAF? Use-After-Free ,即指针向一块内存,但是经过某些方式(或代码逻辑错误)使程序认为该内存是正在使用的(实际上已被释放),再次利用该内存时会发生错误。 采用 阅读全文
摘要:
ObjectHeader = OBJECT_TO_OBJECT_HEADER( RootDirectory ); #define OBJECT_TO_OBJECT_HEADER( o ) CONTAINING_RECORD( (o), OBJECT_HEADER, Body ) #define CO 阅读全文
摘要:
① !object \ ,列出根目录下所有的对象,其中 \objecttypes 目录下存在 Process 对象, 拿到对象头地址后直接 dt _object_header xxxxxxxx ,此种方法只能查出 ObjectType(其 Type 为 Type,由Create),即创建新进程时作为 阅读全文
摘要:
大内核 MacroKernel(类 Unix、Win9x) 使用该结构的操作系统本身也是一个程序,所有基本的 OS 服务都运行在同一内存空间(包含设备驱动程序提供的服务)。 优点:内核组件之间直接通过函数调用实现,不需要进行 R3 与 R0 的转换。 缺点:一块内存空间一旦发生错误,会导致多个系统组 阅读全文
摘要:
网上拼凑的资料 (上图右下角的水印实在是太多了,加我一个应该没事8) 简单理解,在 A 网站的 Session 以及 Cookie 仍然存在的时候,用户访问 B 网站,B 网站执行跨站访问的恶意代码。 首先理清楚执行的恶意代码大概是个什么样子(图片白嫖自CSDN,图片中的代码是 Burp CSRF 阅读全文
摘要:
总结: ① 没有仔细观察 IDA 反编译的结果,导致在爆破第一个字符串时浪费了很多时间。 ② 没有第一时间想到 Smc ,没有观察导入函数以及数据之间的联系,匆忙进入动调,导致在调试时陷入繁复的代码中,没有厘清思路。 程序有一个简单的反调试窗口名称查询,将 GetWindowTextA 的窗口句柄参 阅读全文
摘要:
主要是一个 Switch-Case 的循环。首先会执行 Case 10,读取输入,并检测输入字符数。 v9 作为 Index ,每次从 a1 中取值,执行相应的 Case ,因此操作的顺序是固定的。将代码修改使之不退出,查看全部执行顺序(Case x)。 只有执行 Case 7 ,且不满足条件时才会 阅读全文
摘要:
拉入 IDA,F5 反编译,有几处函数调用后不正常的栈指针,Alt + K 修改即可(即此函数或指令执行后栈指针的变化是多少)。 根据 Wrong 和 omg 两个函数,可以写出代码解出字符串( IDA 中选中字符串,Shift + E 即可拿出数据) 明显不是,继续向后看 encrypt 函数。这 阅读全文