- 博客(7)
- 资源 (12)
- 收藏
- 关注
原创 离散Ricci flow编程实现
高亏格封闭曲面通过离散Ricci flow嵌入到双曲空间中,具体算法可以在【1】中找到。本文主要记录笔者在实现过程中的一些细节点思考。亏格2曲面亏格3曲面amphora双曲三角形嵌入1.首先将其中一个顶点嵌入到原点,另外一个在此基础上旋转嵌入到虚轴正方向,因此得到莫比乌斯变换,第三个点根据两条边的双曲长度和face定向最终确定。2.第一个face可以通过1进行嵌入。其他三角形,通过1的计算出预嵌入结果,将已经嵌入的边进行原点嵌入和旋转得到...
2021-10-18 22:46:56
614
1
原创 Blue Pill的编译和安装
抱歉,因为工作比较忙,有三个月没有更新了。估计后面都会比较忙,我尽量抽空更新。一、安装之所以先说安装是因为编译和安装方式有关系。Blue Pill有两种安装方式:1、windows普通内核模式驱动安装方式这种方式具体又有多种方式,需要写注册表的、使用未公开的Native API不需要写注册表的。网上找可以找到,或者看《Rootkits--Windows内核的安全防护》。2、shell code方式
2009-07-05 23:55:00
4191
1
原创 从csrss弹出的ASSERT对话框谈起
昨天遇到一件怪事,在进行远程线程注入的时候从csrss进程中竟然弹出了vc的ASSERT对话框。根据对话框提示信息找到了断言的位置在mfc的auxdata.cpp的第95行代码:void AUX_DATA::UpdateSysMetrics(){ // System metrics cxIcon = GetSystemMetrics(SM_CXICON); cyIcon = GetSyste
2009-04-18 15:20:00
4898
2
原创 Blue Pill源代码分析(4)
HvmInit分别用AMD65和IA32的实现对当前CPU平台进行识别,并确认是否支持VT技术。HvmSwallowBluepill函数则对当前物理CPU上的所有逻辑CPU,进行虚拟设置,反转到虚拟机的运行状态。CmDeliverToProcessor 函数调用KeSetSystemAffinityThread将当前线程调度到指定的CPU cProcessorNumber,并将IRQL提升到Dpc
2009-04-03 00:22:00
4499
4
原创 Blue Pill源代码分析(3)
首先看一下IA32页表映射关系如图函数MmSavePage分配如下结构体保存物理地址、宿主机虚拟地址和客户机虚拟地址的对应关系typedef struct _ALLOCATED_PAGE{ LIST_ENTRY le; //链表头 链接到g_PageTableList ULONG Flags; //标志 PAGE_ALLOCATION_TYPE AllocationType; /
2009-03-31 23:59:00
3706
原创 Blue Pill源代码分析(2)
为了在虚拟运行之后,客户机被宿主机接管,驱动程序代码还能被访问,BP使用了和windows一样的虚拟地址映射方式,以下四个常量:#define PML4_BASE 0xFFFFF6FB7DBED000#define PDP_BASE 0xFFFFF6FB7DA00000#define PD_BASE 0xFFFFF6FB40000000#define PT_BASE 0xFFFFF680000
2009-03-30 22:40:00
4606
2
原创 Blue Pill源代码分析(1)
一直都有写blog的想法,但是每次总觉得写东西很浪费时间,还不如利用这些时间多学点东西。不过每次学到东西之后,总是很容易遗忘,学到方法不假,一些零碎细节忘的很快,于是决定还是应该写点东西出来作备忘。去年末,对Blue Pill有稍微了解一下,但终究是没有完整阅读过源代码,今天花了一天的时间把Blue Pill的源代码看了一下,总算对其中的奥妙之处有所了解。原先对VT技术不是特别了解的地方今天看了代
2009-03-29 22:27:00
7925
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人