|
|
|
[原创]开源一份WIN7x64VT源码
想了一天,还是没有想明白为什么是64 * PAGE_SIZE 。 |
|
[原创]开源一份WIN7x64VT源码
看了很久还是不明白。 为什么只是初始化了4GB内存? EPT 使用了2M 页表,512 * 2M * 4(张PDE) = 4GB 正好 PAGE_SIZE 为 0x1000 (4096) = 512(表项) * 8(size) 应该是 4(张PDE) * PAGE_SIZE 才是4G 吧? 可是代码 是 64 * PAGE_SIZE 。。 可是把64改成4 ,不能运行了。 |
|
[翻译]《深入解析windows操作系统第6版下册》第10章:内存管理(第三部分)
支持楼主!! mark |
|
[原创]开源一份WIN7x64VT源码
非常感谢Lz的开源. 看代码时有个疑问。在初始化EPT时 l1.QuadPart = 0; //这个是最低什么位置开始分配连续的内存 0x0 l2.QuadPart = -1; // 这个是最高到什么位置,-1 = 0xFFFFFFFFFFFFFFFF l3.QuadPart = 0x200000; // 2MB 那么L3 是怎么理解?? MmAllocateContiguousMemorySpecifyCache(size,l1,l2,l3,type); 同样的,再分配Pdpte时, FirstPdpteVA = (PULONG64)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE, l1, l2, l3, MmCached); PAGE_SIZE 的定义为512 , 按EPT结构来说,分配的size应该为 sizeof(PVOID)*PAGE_SIZE,难道是因为L3? 还有这里的64,是否只初始化了64G? for (i = 0; i < 64; i++) { { *FirstPdpteVA = (i * 0x1000 + FirstPdePA.QuadPart) | EPT_READ | EPT_WRIT | EPT_EXECUTE; FirstPdpteVA++; } } |
|
[原创]x64枚举DPC定时器
支持LZ。先mark ,以后肯定用的上 |
|
[原创][高清有码]x64的DPC定时器完整工程
支持!!! |
|
[原创]绝对自动支持32、64位的内存加载源码
这个不支持SEH吧 |
|
|
|
[求助]来看看 这是语法问题吗? 还是C基础不过关
[QUOTE=kingsdows;1379202]Crc32Table[(Crc & 0xFF) ^ chText[i]]; 这里如果chText[i]取出来是负数, 然后就索引就超限了, 访问异常崩溃[/QUOTE] 应该是这样了。 3Q |
|
[求助]64位内核ZwAllocateVirtualMemory失败
谢谢老V ,修改LocK 是先用 ExReleaseFastLock 吗? |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值