刘收获

导航

上一页 1 2 3 4 5 6 ··· 14 下一页

2018年2月25日 #

初识虚拟化

摘要: 0x01 硬件虚拟化 早期的虚拟机都是进程级虚拟机,也就是作为已有操作系统的一个进程,完全通过软件的手段来模拟硬件,软件再翻译内存地址的方法实现物理机器的模拟,这样虚拟效率较低,资源利用率低。之后Intel和AMD相继推出了支持硬件虚拟化的处理器,所谓硬件虚拟化,也就是在硬件抽象层对虚拟技术提供直接 阅读全文

posted @ 2018-02-25 22:14 沉疴 阅读(920) 评论(0) 推荐(0) 编辑

2018年1月25日 #

HYPERSPACE

摘要: Windows中,不管是应用程序还是内核程序,都不能直接访问物理内存,所有非IO指令都只能访问虚拟内存地址,如Mov eax, DWORD PTR[虚拟地址]形式,但是,有时候,我们明明已经知道了某个东西固定在物理内存条某处,假如系统时间的值永远固定存放在物理内存条的物理地址0x80000000处, 阅读全文

posted @ 2018-01-25 15:02 沉疴 阅读(540) 评论(0) 推荐(0) 编辑

2018年1月22日 #

几个常用内核函数(《Windows内核情景分析》)

摘要: 参考:《Windows内核情景分析》 0x01 ObReferenceObjectByHandle 这个函数从句柄得到对应的内核对象,并递增其引用计数。 两个特殊情况: #define NtCurrentProcess() (HANDLE)-1 #define NtCurrentThread() ( 阅读全文

posted @ 2018-01-22 23:35 沉疴 阅读(1813) 评论(0) 推荐(0) 编辑

句柄的创建

摘要: 创建对象的三大步骤: 1.通过ObCreateObject函数创建目标对象。 2.目标对象本身的初始化 3.通过ObInsertObject将目标对象插入对象目录和句柄表,并返回句柄。 ObCreateObject函数用来创建一个指定类型的内核对象。 其实真正的工作函数是ObpAllocateObj 阅读全文

posted @ 2018-01-22 20:44 沉疴 阅读(2653) 评论(0) 推荐(0) 编辑

内核对象

摘要: 0x01 对象 在计算机中,“对象”是个专有名词,其定义是“一个或一组数据结构及定义在其上的操作” 。 对于几乎所有的内核对象,windows都提供一个统一的操作模式,就是先通过系统调用打开或创建目标对象,让当前进程与目标对象之间建立起连接,然后再通过别的系统调用进行操作,最后通过系统调用关闭对象。 阅读全文

posted @ 2018-01-22 20:00 沉疴 阅读(1179) 评论(3) 推荐(1) 编辑

句柄与句柄表(数据结构,源码分析)

摘要: 0x01 句柄,句柄表概念 任意进程,只要每打开一个对象,就会获得一个句柄,这个句柄用来标志对某个对象的一次打开,通过句柄,可以直接找到对应的内核对象。句柄本身是进程的句柄表中的一个结构体,用来描述一次打开操作。句柄值则可以简单看做句柄表中的索引,并不影响理解。HANDLE的值可以简单的看做一个整形 阅读全文

posted @ 2018-01-22 17:05 沉疴 阅读(3611) 评论(0) 推荐(0) 编辑

2018年1月21日 #

ShellExecute, WinExec与CreateProcess

摘要: 0x01 ShellExecute 函数原型: 参数说明: ●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindo 阅读全文

posted @ 2018-01-21 18:28 沉疴 阅读(616) 评论(0) 推荐(0) 编辑

COM/DCOM简述

摘要: 这些组件对象可以互相通讯与交互,而与它们的语言、分布及原始平台无关。COM规程包括一套标准API、一个标准的接口集以及COM用于支持分布式计算的网络协议。而DCOM模型则是一套用于分布式环境中的COM对象,在DCOM环境中,位于一个网络上的COM对象能与位于另一个网络上的COM对象进行通信。通常我们 阅读全文

posted @ 2018-01-21 15:14 沉疴 阅读(4784) 评论(0) 推荐(0) 编辑

2018年1月20日 #

LoadLibrary和GetModuleHandle

摘要: 0x01 区别 LoadLibrary是把一个模块映射进调用进程的地址空间,需要时增加引用计数,每调用一次,引用计数增加一,需要通过相同步骤地调用FreeLibrary来减少引用次数,当为0时,系统卸载DLL。 GetModuleHandle是返回一个已经映射进调用进程地址空间的模块的句柄,不增加引 阅读全文

posted @ 2018-01-20 21:05 沉疴 阅读(727) 评论(0) 推荐(0) 编辑

获取,修改进程命令行

摘要: 在XDebug的源码学习中看到的命令行操作,将主要源码摘录出来做了个获取和更改进程命令行的Demo. 0x01 获取命令行 这里获取命令行的方式并不是通过调用GetCommandLine函数。 而是借由ntdll中的NtQueryInformationProcess函数查询ProcessBasicI 阅读全文

posted @ 2018-01-20 13:41 沉疴 阅读(2100) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 ··· 14 下一页