逆向分析 KiSystemService和KiFastCallEntry 调用内核函数部分 ####一、回顾 前两篇博客,我逆向分析 KiSystemService 和 KiFastCallEntry 填充_KTRAP_FRAME 结构体的代码,二者 大同小异,主要的区别是 sysenter 只改了 ...
分类:
其他好文 时间:
2020-12-17 13:02:57
阅读次数:
6
windows7内核分析之x86&x64第二章系统调用 2.1内核与系统调用 上节讲到进入内核五种方式 其中一种就是 系统调用 syscall/sysenter或者int 2e(在 64 位环境里统一使用 syscall/sysret 指令,在 32 位环境里统一使用 sysenter/sysexi ...
有处错误在sysenter在内核处理例程是_KiFastCallEntry,int2e是_KiSystemService,这个是图有点这里的错误 ...
理论知识 SYSENTER 指令是在 Inter Pentium(R) Ⅱ 处理器上作为“高速系统调用”功能的一部分被首次引用的。 SYSENTER 指令进行过专门的优化,能够以最佳性能由 Ring3 层切换到 Ring0 层。 微软首次引用 SYSENTER 指令是在 Windows 2000 的 ...
分类:
其他好文 时间:
2017-08-18 13:36:42
阅读次数:
322
1. linux-gate.so是什么参考这里:http://www.trilithium.com/johan/2005/08/linux-gate/简而言之,linux-gate.so是为了实现用户程序使用sysenter/sysexit进行系统调用的辅助机制。为什么我们需要这么一种机制来完成sy ...
分类:
系统相关 时间:
2016-12-11 15:10:48
阅读次数:
289
OpenProcess-->ntdll!NtOpenProcess-->ntdll!zwOpenProcess-->ntdll!KiFastSystemCall() ↓mov edx, esp ↓sysenter 用户层 ↓ 内核层 nt!KiFastCallEntry() ↙ ↘ nt!zwope ...
分类:
其他好文 时间:
2016-04-19 17:14:49
阅读次数:
159
关于Sysenter、Kifastcallentry、中断之类的内核入口hook技术早就烂大街了,可是对hook的检测与恢复代码却是寥寥无几,一切抛开代码将原理的行为都是耍流氓。 下面以Sysenter hook技术为例子,重点分析下这类钩子的检测与恢复技术。 Sysenter简述 : Window ...
分类:
其他好文 时间:
2016-04-18 19:01:56
阅读次数:
587
概述 API在某个头文件中定义,被封装在某个DLL中,而这个DLL会进一步被封装在ntdll.dll中(它里面的API叫native api),比如,ReadFile在ntdll.dll中就对应着ntReadFile;然后这个API会通过sysenter的方式进入内核层。 那么,比如对于Create ...
分类:
其他好文 时间:
2016-04-03 13:17:22
阅读次数:
194
依书上的例子,ReadFile()函数会调用ntdll!NtReadFile(),后者将服务号放到eax之中,然后调用SharedUserData!SystemCallStub(),由此函数执行sysenter指令来切入内核。但是实际操作查看反汇编却是这个样子:指令完全是错乱的,猜测此处应该是不是指...
分类:
其他好文 时间:
2016-01-14 07:28:46
阅读次数:
187
首先总结2种切换到内核模式方法的各自流程:内存法(中断法):(用户模式)WriteFile()->ntdll!NtWriteFile()->ntdll!KiIntSystemCall()->int2Eh->查找IDT的内存地址,偏移0x2E处->(内核模式)nt!KiSystemService()->nt!KiFastCallEntry()->nt!NtWriteF..