zuishikonghuan的博客

welcome to my blog ^_^

MinGW 与 MSVC 生成 DLL 各种情况的折腾笔记

写这篇博客,主要是刚折腾 MinGW,相关内容网上的资料不全,而且错误很多 其实之前我根本没把这个当回事,我就想 MinGW 跟 Linux 上的 GNU 编译器不会有差别,但是事实却不是这样。。。 提示:所有代码均使用 __stdcall 安装 MSVC 和 MinGW MSVC:安装 ...

2016-07-15 18:43:55

阅读数 8180

评论数 0

Ring3 下 API Inline Hook 优化方案探索与实现

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51302024  以前写过两篇“[Win32] API Hook(1)在3...

2016-05-03 09:30:33

阅读数 5989

评论数 3

驱动开发(13)IRP 的异步完成和 CancelRoutine

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51301922在之前的博文中,我们对于IRP,都是同步完成的,但是 Windows...

2016-05-03 09:26:53

阅读数 1966

评论数 0

驱动开发(12)内核中的多线程和同步对象

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在内核模式下创建线程在驱动程序中创建线程的方法是调用 PsCreateSystemThread 内核函数,此函数即可以创建系统线程,也可以创建用户线程。此函数的原型如下:NTSTATUS ...

2016-05-03 09:04:24

阅读数 2157

评论数 2

驱动开发(11)中断请求级

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51062287 “中断”是一个非常重要的概念,在 80x86 的设备上,Windo...

2016-05-02 08:35:44

阅读数 1415

评论数 0

驱动开发(10)直接I/O和内存描述符表

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/50643005 在上篇博文中,我们实现了在驱动程序中处理设备收到读写I/O请求,这...

2016-03-18 16:52:27

阅读数 1696

评论数 0

内核编程之SSDTHook(3)Hook NtCreateSection监控所有可执行模块加载

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/50924829 在上两篇博文中,我介绍了SSDTHook的原理,并给出了一个实例-...

2016-03-18 16:51:54

阅读数 4436

评论数 0

内核编程之SSDTHook(2)Hook NtOpenProcess实现进程保护

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 上一篇博文“内核编程之SSDTHook(1)原理(地址:)”中,介绍了SSDTHook的原理,这一篇博文,我们来写一个实例,通过Hook NtOpenProcess来的实现进程保护。 我...

2016-03-11 14:20:36

阅读数 5300

评论数 0

内核编程之SSDTHook(1)原理

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 说驱动开发这么长时间了,也玩玩内核钩子,钩子(Hook)技术是一种截获对某一对象访问的技术,不仅在Windows平台,Linux平台上也有Hook技术。Hook技术种类繁多,实现细节也不...

2016-03-11 14:19:58

阅读数 7466

评论数 0

驱动开发(9)处理缓冲I/O设备的读写请求

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/50413094 在上面的几篇博文中,介绍了 IRP 与派遣函数,通过例子“磁...

2016-01-03 16:32:16

阅读数 2117

评论数 0

驱动开发(8)处理设备I/O控制函数DeviceIoControl

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 在上面的两篇博文中,介绍了IRP与派遣函数,以及我们通过了一个例子“磁盘设备的绝对读写”来演示了在应用程序中是如何向一个设备发出I/O请求的。这篇博文将演示在驱动程序中处理一个非常简单的...

2016-01-03 16:31:37

阅读数 5058

评论数 0

[Win32] 直接读写磁盘扇区(磁盘绝对读写)

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 正讲着驱动开发呢,这里突然插一篇Win32的博文,其实,还是做引子,上一篇博文“IRP与派遣函数”中,我们知道了驱动程序需要处理I/O请求,我们先来看看怎么发出一个I/O请求。 一般的程...

2016-01-03 16:31:00

阅读数 13052

评论数 6

驱动开发(7)IRP与派遣函数

在上一篇博文中,介绍了NT驱动的基本结构,这几篇博文,博主来说说驱动开发的一个核心内容——如何处理I/O请求。 为何要处理I/O请求?因为通常一个驱动程序是为了控制硬件而设计的(虽然没有对应具体硬件的驱动远比有对应具体硬件的驱动要多得多),可以说,是操作系统与硬件通信的桥梁。而I/O操作是控制硬件...

2016-01-03 16:30:19

阅读数 1931

评论数 0

驱动开发(6)NT驱动的基本结构

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/49047055 在之前的一篇博文“驱动开发(2)第一个NT驱动和NT驱动的编译”(...

2015-11-08 13:25:55

阅读数 1920

评论数 0

[Win32] ShellHook的实现

启动Windows,加载Win32子系统,登录一个用户会话后,会启动Shell程序,默认是explorer.exe,就是我们看到的桌面和任务栏等,其实Shell是可以自定义的,我们完全可以自己编写一个Shell取代系统的Shell。下面我们来看看编写Windows Shell的核心技术之一——Sh...

2015-11-08 13:25:01

阅读数 2553

评论数 0

驱动开发(5)内核中的字符串

在驱动开发中,内核函数使用的字符串不再是应用程序使用的Win32子系统API和Native API中的char*和wchar_t*,而是内核Unicode字符串UNICODE_STRING。 内核字符串有两种,ANSI字符串是ANSI_STRING,Unicode字符串是UNICODE_STRIN...

2015-11-08 13:23:40

阅读数 1777

评论数 0

驱动开发(4)内核中的内存分配和错误码

在驱动开发中,我们不应该使用C/C++运行时函数中的malloc或者calloc函数分配内存,更不应该使用new关键字,因为内核中的内存分配需要特殊处理。 在应用程序中,每个应用都有2G的虚拟内存,因此内存并不紧张,而所有的驱动程序共用内核模式的2G虚拟内存,因此内核中的资源非常宝贵,应该尽量节省...

2015-11-08 12:36:53

阅读数 1760

评论数 1

驱动开发(3)使用SCM加载NT驱动(用应用程序加载驱动)

在上一篇中,我简单介绍编写了一个NT驱动空壳,这一篇中,将介绍如何自己编写一个驱动程序加载器,即使用编程的方法加载驱动,而不是使用工具。 我在上一篇中也提到了,驱动程序是通过服务加载的,我以前写过SCM(服务控制管理器)API的文章,详细介绍各函数的具体用法,详见: [Win32] SCManag...

2015-10-02 11:02:59

阅读数 2203

评论数 0

驱动开发(2)第一个NT驱动和NT驱动的编译

在上一篇中,我简单介绍了驱动开发的基础知识,这一篇中,将介绍编写一个NT空壳驱动(驱动基础框架) 一、驱动入口 驱动程序的入口点是DriverEntry,此函数的原型是: extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT pDrive...

2015-10-02 10:59:21

阅读数 2923

评论数 0

驱动开发(1)基础知识

驱动程序是操作系统和硬件通讯的桥梁,同时,驱动程序可以实现很多特殊功能,比如,虚拟光驱(虚拟设备),内核级hook,文件系统透明加密(过滤驱动),修改Windows内核等等 并非所有驱动程序都必须由设备的设计方编写。如果设备根据已发布的硬件标准来设计。这时驱动程序可以由 Microsoft 编写,...

2015-10-02 10:51:21

阅读数 1938

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭