- 博客(17)
- 资源 (11)
- 收藏
- 关注
转载 Windows调试工具入门-3
Windows调试工具入门-3基本调试操作 http://www.DbgTech.net一、调试器命令窗口 1、简介 使用Windows调试工具进行调试,大部分和调试器之间的交互都是通过调试器命令窗口来进行的。命令的输入、输出都是在调试器命令窗口中显示出来。对WinDbg来说,调试器命令窗口是名为"Command"的窗口;对于KD、CDB和NTS
2012-10-31 16:15:08 741
转载 Windows调试工具入门-2
Windows调试工具入门-2NetRoc http://www.DbgTech.net 本篇介绍Windows调试工具的基本设置和基本操作方法。这里我们会用一个测试程序一步一步说明如何使用WinDbg开始调试工作。首先用VC建立一个名为TestDebug1的控制台项目,并生成它。 一、符号、源码和可执行映像路径设置 使用WinDbg开始调试工作之前,最重要
2012-10-31 16:08:38 450
转载 Windows调试工具入门—1
Windows调试工具入门—1NetRoc http://www.DbgTech.net一、引子 Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)。我第一次接触是在三年前的一个内核驱动项目,由于进行了IDT中键盘鼠标中断的Hook,使用Softice
2012-10-31 16:02:20 462
转载 谈谈对APC的一点理解
异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助。1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2) I/O管理器使用APCs来完成一个线程发起的异步的I/O操作。例如:当一个设备驱动调用IoCompleteRequest来通知I/O管理器,它已经结束处理一个异步I/
2012-10-30 21:09:18 610
转载 异步过程调用(APC)
转自http://ppzzb.blog.sohu.com/84135496.html在Windows NT中,APC被无数次地提到,但在标准Microsoft DDK中却没有说明什么是APC以及应该怎么使用。但是理解APC是理解Windows NT怎么工作的本质。 当然,毫无疑问你们一定知道一些完全支持APC的Win32 API(比如QueueUserApc这个Win32 AP
2012-10-30 21:05:46 564
原创 WIndows内核模式驱动程序运行环境
程序运行时所处的环境 即所谓的执行上下文是程序设计中的重要概念。 对于用户线程而言运行环境也就是线程所属进程的环境, 但对于驱动程序这个问题变得非常复杂。通常这是文件系统开发人员所关心的问题,但所有的内核模式驱动程序开发人员都能得益于对运行环境的深入理解并能使驱动程序拥有更高的性能和更低的开销。 运行环境的概念程序例程的运行环境实际是指其线程和进程的执行环境,在NT系列操作系统中
2012-10-30 20:38:05 1163
原创 一些模糊概念的积累
虚拟内存中内核模式地址 一般来说,Windows的核心代码和Windows的驱动程序加载的位置都是在虚拟地址空间的高2GB的内核地址里(0X80000000~0xFFFFFFFF),Windows操作系统在进程切换的时候,保持内核模式地址是完全相同的。也就是说,所有进程的内核地址映射完全一致,进程切换的时候,只改变用户模式地址的映射。
2012-10-30 17:06:01 329
转载 未公开文档函数的调用
在编写驱动程序的过程中,会经常遇到要调用一些没有在文档中公开的函数,这个该如何处理呢?其实在内核中调用不像ring3层那样麻烦,只需要重新声明一下,下面就以ZwQuerySystemInformation为例示范一下:NTKERNELAPINTSTATUSZwQuerySystemInformation( IN ULONG SystemInformationClass
2012-10-30 16:37:15 465
转载 驱动开发 CTL_CODE 定义说明
ddk中有一个CTL_CODE宏,用这个宏我们可以很方便的定义IOCTL。不管是IRP_MJ_DEVICE_CONTROL还是IRP_INTERNAL_DEVICE_CONTROL包,IOCTL都用如下形式定义:#define IOCTL_Device_Function CTL_CODE(DeviceType, Function, Method, Access)DeviceType:设
2012-10-25 21:43:28 961
转载 CTL_CODE定义说明
我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的,下边我们可以了解一下CTL_CODE的内容。CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceType(设备类型,高16位(16-31位)),Access(访问限制,14-15位),Function(功能 2-13位),Met
2012-10-25 21:42:30 1012
转载 Native Application 开发详解
文章目录: 1. 引子:2. Native Application Demo 展示:3. Native Application 简介:4. Native Application 有何妙用:5. MJ0011 关于 Native Application 的文章整理:6. 互联网上其他关于 Native Application 的文章整理:
2012-10-25 19:59:01 1196
转载 windows内核API种类
在初学windows驱动时,开始除了要学习驱动的加载、调试等准备工作后,就要学习内核的API了,作为初学者在刚刚看到那些很陌生的函数时可能会感到很迷茫,其实这些都是很正常的,就像我们在刚刚接触编程时那样。 今天我在我第一篇正式的博文中总结一下windows内核API函数大概的分类,以便以后看到这些函数时首先能通过函数的名字判断出这个函数大概是做哪方面的工作。 大部分内核API都会有前缀,例
2012-10-25 19:36:53 1322
转载 Nt*和Zw*系列函数的区别
ntdll.dll和ntoskrnl.exe的Nt和Zw系列函数区别in ring3:lkd> ? ntdll!ZwOpenProcessEvaluate expression: 2089999739 = 7c92dd7blkd> ?ntdll!NtOpenProcessEvaluate expression: 2089999739 = 7c92dd7b可以看到,在nt
2012-10-25 19:25:49 825
转载 终止进程的内幕
有来信询问进程结束的有关问题,下面就这个问题简单讨论一下(下面的讨论基于2000,其他NT系统也类似)。 首先看看一个应用程序想要强制结束另一个进程所要做的事:首先获得目标的进程ID,接着利用OpenProcess获取进程句柄(确保足够权限),最后将句柄传给TerminateProcess了结那个进程。 1、OpenProcess通过本机系统服务接口进入核心态,随后调用ntoskrnl
2012-10-25 14:45:54 731
转载 AppInit_Dlls键值
如果你对计算机安全有所了解,那么各种各样的注册表启动项应该会有所了解,今天我会细述一个很著名的启动项:AppInit_Dlls键值。 AppInit_Dlls键值位于注册表 HKLM\Microsoft\Windows NT\CurrentVersion\Windows下面,相对于其他的注册表启动项来说,这个键值的特殊之处在于任何使用到User32.dll 的EXE、DLL、OCX等类型
2012-10-21 16:22:24 1905
转载 Injecting Code Into Privileged Win32 Processes
For a while now, I've been searching for the optimal way to inject code into privileged Win32 processes like lsass.exe, csrss.exe, and winlogon.exe.There are many functions such as the LSA and SAM e
2012-10-17 11:12:08 915
转载 Vista&Win7下CreateRemoteThread应用的若干问题和解决方案
Vista&Win7下CreateRemoteThread应用的若干问题和解决方案在xp、03下面,用CreateRemoteThread往别的进程注入shellcode或者是dll是一件非常容易的事情,甚至是往系统进程里面注入(如svchost、winlogon等),但在vista下,你会发现事情没有那么容易了,就算是在xp下一模一样的代码,在vista下面都有可能给你一个ERROR_N
2012-10-16 10:53:37 3936
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人