- 博客(14)
- 资源 (6)
- 收藏
- 关注
原创 Windows中FS段寄存器 V2
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class
2009-07-29 18:10:00 7530 5
原创 Windows下如何获得KeServiceDescriptorTableShadow地址
Windows下如何获得KeServiceDescriptorTableShadow地址 总结网上文章的观点,主要有下面几种:1.根据操作系统分类。在WIN2K下KeServiceDescriptorTableShadow接跟着keServiceDescriptorTable;而在XP下,顺序正好相反,KeServiceDescriptorTable紧跟着KeServiceDescri
2009-07-22 14:37:00 3052
翻译 STOS/STOSB/STOSW/STOSD/STOSQ---存储字符串
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 STOS/STOSB/STOS
2009-07-16 15:03:00 7050
翻译 RDMSR--读MSR
RDMSR--读MSR RDMSR将64位由ECX寄存器指定的MSR(model specific register,模式指定寄存器)的内容读出至寄存器EDX:EAX中(在支持intel64架构的处理器中RCX的高32位忽略)。MSR的高32位内容存放在EDX寄存器中,MSR的低32位内容存放在EAX寄存器中(在支持intel64架构的处理器中RDX和RAX的高32位忽略)。如果MSR中没
2009-07-15 23:04:00 10552
翻译 WRMSR--写MSR
WRMSR--写MSR WRMSR将寄存器EDX:EAX的内容写到64位由ECX寄存器指定的MSR(model specific register,模式指定寄存器)中(在支持intel64架构的处理器中RCX的高32位忽略。)。EDX寄存器内容拷贝至选定的MSR的高32位,EAX内容拷贝至选定的MSR的低32位(在支持intel64架构的处理器中RDX和RAX的高32位忽略)。MSR中未定
2009-07-15 22:54:00 6575
原创 GetTickCount的实现
GetTickCount的实现Kernel32.dll的GetTickCount返回机器启动后的毫秒数。一直不知原理,今天看了资料才知道。写下来。反汇编GetTickCount函数:kernel32!GetTickCount:7c80932e ba0000fe7f mov edx,offset SharedUserData (7ffe0000)7c80
2009-07-15 19:37:00 6801 3
翻译 SYSEXIT——快速系统调用的快速返回
SYSEXIT——快速系统调用的快速返回 SYSEXIT用来快速调用返回至3层的用户代码。SYSEXIT是SYSENTER的同伴指令。该指令经过了优化,它可以使将由操作系统或执行程序(运行在0层)至用户代码(运行在3层)的返回发挥最大的性能。该指令只能在0层的权限执行。 在调用SYSEXIT指令前,软件必须通过MSR寄存器和通用寄存器,指定3层的代码段和代码指针,3层的堆栈段和堆栈
2009-07-15 18:55:00 2512
翻译 SYSENTER——快速系统调用
SYSENTER——快速系统调用 SYSENTER用来快速调用一个0层的系统过程。SYSENTER是SYSEXIT的同伴指令。该指令经过了优化,它可以使将由用户代码(运行在3层)向操作系统或执行程序(运行在0层)发起的系统调用发挥最大的性能。 在调用SYSENTER指令前,软件必须通过下面的MSR寄存器,指定0层的代码段和代码指针,0层的堆栈段和堆栈指针:1. IA
2009-07-15 18:54:00 18874 4
原创 SYSENTER系统服务调用过程
SYSENTER系统服务调用过程 以NtReadFile调用为例。一.NtDll.Dll中,NtReadFile过程如下:ntdll!NtReadFile:7c92d9b0 b8b7000000 mov eax,0B7h7c92d9b5 ba0003fe7f mov edx,offset SharedUserData!SystemCa
2009-07-15 13:14:00 5368 2
原创 WINDOWS系统调用
Windows系统调用 Windows 2K通过2Eh中断来实现系统调用的,但是在XP后使用SysEnter来实现系统调用了,同时2Eh中断还是保存着的。不管是2EH中断还是SYSENTER,Windows对所有的系统调用都会生成下面的KTRAP_FRAME堆栈框
2009-07-15 12:55:00 9687 2
翻译 微软编译器中寄存器的使用
微软编译器中寄存器的使用原文地址:http://www.skullsecurity.org/wiki/index.php/Registers翻译:本文是汇编语言指南的第一篇,若你准备阅读整个指南,你必将有所收获。一个寄存器就像变量,只是这种变量的数量是固定的。寄存器是CPU中用来保存数据的地方。数学计算(加法、减法..)只能在寄存器中进行;寄存器常常保存着内存地址;寄存器与内存
2009-07-11 22:58:00 2188
原创 MASM6.11中指针变量初始化
MASM6.11中指针变量初始化在MASM6.11中,我们可以用数据定义语句(DB/DW/DD/DF/DQ/DT)来定义并/或初始化变量,如: VAR1 DB 0ABH指针变量就是存放其他变量地址(指针)的变量。定义指针变量和定义普通变量一致(实际上,根本没有指针变量一说,只是我根据它的功能"杜撰"的:)),只是是使用其他变量或
2009-07-11 08:20:00 1258
原创 DOS保护模式下中断
测试环境:Win98下的DOS7,用MASM6.11编译。流程如下: 实模式(16位,RING0) | |保护模式(32位, RING 0) -->发生INT 2EH中断,并返回(IRETD) | |保护模式(16位, RING0) | |实模式(16位, RING0) .386PDESC STRUC
2009-07-06 17:00:00 1204
原创 DOS下使用SYSENTER和SYSEXIT
测试环境:Win98下的DOS7,用MASM6.11编译。 .386PDESC STRUC LIMIT DW 0 BASEL DW 0 BASEM DB 0 ATTR DW 0 BASEH DB 0DESC ENDSGDTR STRUC LIMIT DW 0 B
2009-07-02 15:50:00 674
MIC make it clean
2011-06-30
浮点数的内存格式,分单精度和双精度
2010-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人