Win8中的MmVerifyCallbackFunction
2013-12-20 Nie.Meining Coding
看了下Win8中的MmVerifyCallbackFunction,依然守护 ObRegisterCallbacks 和 PspSetCreateProcessNotifyRoutine:
不过检测方案和win7中是一样的:
[开发笔记]关于匈牙利命名法
2013-12-19 Nie.Meining Life
由于项目需要,这段时间都在研究linux内核。感觉linux内核代码跟wrk的代码相比,风格上的最大区别是命名法。linuxer似乎都觉得匈牙利命名法是没有必要,甚至在内核编码规范中也明确抵制匈牙利命名法。但作为一名长期使用匈牙利命名法的码农,我个人觉得这种命名法在开发过程中还是能带来很大帮助的,尤其是可能帮助你避免很多潜在的bug,提高代码的严谨性。举几个例子:
1. 假设你要给某个变量赋值:
unsigned short usLocal = g_usGlobal;
是的,不用疯狂向上滚屏去寻找 g_usGlobal 的声明了,我们知道它的类型是unsigned short。更给力的是,你能立刻知道 g_usGlobal 是一个全局变量,于是你被迫去思考这个地方是否会出现多线程竞争的问题……
内核呓语系列2 —— windows子系统
2013-12-18 Nie.Meining Coding
上一篇写到Windows将图形支持作为windows子系统的一部分放到了内核支持中。其实windows子系统既有内核部分也有用户态部分,其内核部分由win32.sys实现,负责窗口管理(会话、窗口站、桌面)和GDI。win32.sys对应用层不处理任何IO请求,只作为内核功能扩展导出Shadow SSDT表向用户层提供大量系统服务。因此基于这个定位,win32.sys不是一个完整的内核驱动,而是一个内核动态链接库,其加载方式是 MmLoadSystemImage + call oep。
任何一个线程,只要调用了Shadow SSDT中的函数则会转变成一个GUI线程(PsConvertToGuiThread),纳入csrss.exe的管理范畴。转换过程包括分配子系统相关的对象、切换一个更大的内核栈(KeSwitchKernelStack)、切换为 KeServiceDescriptorTableShadow 等。具体可以参考wrk。另外,win32.sys 并不常驻内存,因此在有些进程中可能看不到Shadow SSDT表(例如 system):
[分析引擎开发笔记]硬件模拟器
2013-12-18 Nie.Meining Life
最初选择硬件模拟器作为基础架构,主要出于以下几个方面考虑:
1. 可以模拟多种硬件架构,这样针对不同的分析环境提供统一的分析方法,如x86架构的Windows/Linux系统、arm架构的Android系统等……
2. 这种软件模拟硬件的方法,容易从虚拟硬件层提取原始数据进行分析,实现不对虚拟操作系统做任何更改,在对抗检测虚拟机的样本时,有一定优势。不过硬件模拟器这种译码执行的方式也肯定会带来性能损失……
3. 方便在不修改虚拟操作系统的情况下实现远程屏幕控制。我们正在测试的深度分析客户端截图:
内核呓语系列1 —— 系统结构
2013-12-17 Nie.Meining Coding
学习内核有一段时间了,做了不少底层开发、驱动开发相关的东西,因此打算写一个系列,把一些内核相关的东西梳理梳理。
首先声明,这个系列不是系统地介绍内核原理,主要是整理一些底层开发中涉及到的东西,相当于一个开发笔记汇总,想到什么写什么,也许同样做底层开发的朋友们看到后能产生共鸣。我争取把这个系列坚持记录下去,水平有限出错难免,还望路过的大牛们多加指点。
废话不说了,进入正题。
作为内核相关的文章,还是从系统结构讲起吧。Windows和Linux内核一样,基本结构分3层,自底向上分别是硬件设备(即HAL层,提供硬件抽象)、系统环境(提供系统服务)、应用环境(使用系统服务):
链接
分类
最新日志
最新评论
- Billyscado
Valuable write ups. ... - Lowellmiz
Nicely put, Many tha... - Billyscado
Really all kinds of ... - Lowellmiz
Beneficial knowledge... - Billyscado
Reliable forum posts... - Billyscado
Many thanks. A lot o... - Lowellmiz
Kudos! Wonderful inf... - Lowellmiz
Amazing many of awes... - Billyscado
Seriously tons of su... - Billyscado
You actually reveale...
存档
- 2017年5月(1)
- 2017年4月(1)
- 2017年3月(1)
- 2015年3月(1)
- 2014年11月(2)
- 2014年10月(2)
- 2014年8月(1)
- 2014年2月(2)
- 2014年1月(6)
- 2013年12月(15)
- 2012年11月(2)
- 2012年6月(1)
- 2012年3月(1)
- 2012年2月(3)
- 2011年12月(1)
- 2011年11月(1)
- 2011年5月(5)
- 2010年12月(1)
- 2010年11月(3)
- 2010年9月(3)
- 2010年8月(2)
- 2010年4月(1)
- 2010年3月(2)
- 2010年1月(1)
- 2009年12月(8)
- 2009年11月(2)
- 2009年10月(1)
- 2009年9月(1)
- 2009年8月(9)
- 2009年3月(3)
- 2008年7月(2)
- 2008年6月(1)
- 2008年5月(1)
- 2008年4月(5)
- 2008年2月(1)
- 2007年12月(2)
- 2007年11月(1)
- 2007年8月(1)
- 2007年7月(1)