-
-
[原创]x64内核实验5.1-API进0环(补充)
-
发表于:
2023-10-9 22:54
9783
-
[原创]x64内核实验5.1-API进0环(补充)
这章是对系统调用进0环的补充说明,因为之前将的时候好像没有对ssdt表做太多说明,光顾着写64位新引入的kpti机制了,所以单独拿一节来在逆一下KiSystemCall64把ssdt表怎么取地址怎么计算函数地址在逆向的过程中找到因为我发现网上很多将ssdt的都是直接讲结果我倒觉得自己去逆向一下找到系统是怎么用这个表的会记得更深刻一点即便后面改了或者增填了什么机制也可以自己找过去看,顺便补充一下过程中有一些注释
首先还是老一套保存3环现场到trap_frame
这一串空调用就不看了直接往下跳
下面就是我们要找的地方了
在上面的指令里我们可以总结出ssdt是怎么用的
首先我们的函数序号是32位,012这13位是有用的,011位是偏移,第12位是标志位,标志位是0的时候是ssdt表1的时候使用ssdtShadow表
然后ssdt里存的第一个位置是一个地址,这个地址指向的位置是一个32位的数组,上面我们函数序号的后12位就是这个数组的索引
这个数组里存的东西我们取出来之后右移4位 + 这个数组的首地址就是我们要找的函数地址
而且这个数组里寸的32位的内容里面后4位就是这个函数的参数个数
这个函数内容很多后面我们还会继续逆向他,今天主要就是补充一下ssdt表系统是怎么用的
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)