- 博客(11)
- 收藏
- 关注
原创 LogonUser[advapi32.dll] 验证当前账户是否有密码
Code#include <windows.h>#include <Ntsecapi.h>#include <stdio.h>#pragma comment(lib, "Secur32.lib")int main(){ WCHAR UserName[256] = {0}; ULO
2018-07-04 00:43:24
2869
翻译 Intel® 64 and IA-32 Architectures Software Developer's Manual:Vol 3 Section 11
第六章内存缓存控制这一章描述了内存缓存和缓存控制机制
2018-06-10 22:42:33
503
翻译 Intel® 64 and IA-32 Architectures Software Developer's Manual:Vol 3 Section 6
第六章任务管理器
2018-05-19 02:47:39
538
翻译 Intel® 64 and IA-32 Architectures Software Developer's Manual:Vol 3 Section 7
第七章多处理器管理
2018-05-19 02:44:48
245
翻译 Intel® 64 and IA-32 Architectures Software Developer's Manual:Vol 3 Section 10
第八章高级可编程中断处理器(APIC)高级可编程中断处理器(参考以下章节的本地APIC)在IA-32的Pentium处理器上被引入(参照17.26节,高级可编程中断处理器),同时包含在P6家族,Pentium 4,Intel 志强处理器和其他较新的Intel 64和IA-32处理器家族中(参照8.4.2章节,本地APIC的存在)。本地APIC为处理器提供两项主要功能: ...
2018-02-10 03:37:30
1890
原创 AWE & PAE
PAE和AWE本质上是无关的东西PAEPAE是需要硬件支持的,32位地址总线变成36条,那么寻址范围从4G变成了64G;此外PDE和PTE中的pfn的范围也大了(页大小没有变),所以PDE和PTE的长度就变了,成了8字节,那么虚址物址映射时,1个页面就只能存512项PDE或PTE,2^9,原来的10+10+12变成了9+9+12少了2位,所以又增加了一级映射,也就是三级映射的成因。如果是LARGE
2017-07-02 03:31:24
566
原创 C++&系统 异常
User ModeC++ Demo(Debug)int wmain( int argc, WCHAR * argv[]){00DF13C0 push ebp00DF13C1 mov ebp,esp00DF13C3 push 0FFFFFFFEh00DF13C5 push 0DF6EB
2017-06-28 22:48:13
832
原创 线程启动
WrkKeInitThread(KThread, KernelStack, SystemRoutine, StartRoutine, StartContext, ContextFrame, Teb, KProcess){ 1.初始化KThread 2.MmCreateKernelStack 创建内核栈 3.KiInitializeContextThread 构建内核栈
2017-06-28 22:04:45
310
原创 线程调度
WrkKiSwapThread(OldThread, CurrentPrcb){ //单核:从Prcb拿一个新线程,如果没有就选(KiSelectReadyThread)一个,如果再没有就拿Idle NewThread = CurrentPrcb->NextThread //多核:自己还是没有可执行的线程就从其他核去拿,如果有就得看是不是Idle,要是Id
2017-06-28 21:32:22
406
原创 Big Mode
首先,说下开机后CPU的第一个动作:CS=DS=ES=SS=0xFFFF,IP=0x0000。因为当前模式是实模式,CS:IP指向的地址实际是0xFFFF0,这个地址存的是个far jump,去跳到BIOS的POST阶段(BIOS在FlushROM执行和RAM里执行的细节还需要了解),其中一个目的就是重置CS寄存器。什么是32位Big Mode(或称Flat Mode)?它在什么情景下会被用到?解
2017-06-25 04:15:04
451
原创 MMU地址转译的位数选择
定义一个页面大小为:P=2y;y为页面所占位数;x为PDT和PT所占位数P = 2^y;\text{y为页面所占位数};x\text{为PDT和PT所占位数}给出下面两个公式 {2x+y=32;2y=4×2x; \begin{cases} 2x + y = 32;\\ 2^y = 4\times2^x; \end{cases}结果:
2017-06-25 03:36:54
256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人