Windows Service编程

Abstract   本文主要介绍 Windows service 的编程模式和 SCM 的相关功能。 Content 基础知识 What is Windows Service SCM Service Programs Event Trace for Windows 关键函数 Servi...

2019-02-26 19:38:16

阅读数 70

评论数 0

在Windows上编译、应用glog

glog是google提供的一个开源的C++日志库。由于最新的glog源码工程中,已经移除了“.sln”文件,代之以“a CMake build system”,在Windows平台下应用最新的glog库,需要自行使用CMake来生成适用不同版本VS的“.sln”文件。这个过程相对来说,有点小繁琐...

2017-08-22 17:31:21

阅读数 7416

评论数 0

Windows注册表的操作

本文介绍Windows注册表的结构、注册表读、写和查询等操作的Win32 API和内核函数。 一、注册表原理 1,《Windows  Internals》     该书的中文版叫《深入解析Windows操作系统》,它的第4章第一节,详细讲解了Windows注册表,包括注册表的结果和各个项的含...

2017-04-12 14:13:33

阅读数 374

评论数 0

Windows CMD命令行编程总结

众所周知,Windows操作系统是图形化的操作系统,对于普通用户来说,它极大地降低了操作难度。但是,对于程序员来说,你有时候会发现,Windows 下的IDE不如Linux的bash来的高效和便利。事实上,这是一个误区,Windows也支持命令行编程。CMD就是Windows自带的shell。我在...

2017-01-20 09:52:15

阅读数 6599

评论数 1

VS中DLL的导出宏的定义和头文件的位置导致的两类编译错误总结

一般地,我们在新建一个win32的动态链接库(DLL)时,会采取如下的方式的来编写导出接口文件(.h)。 #pragma once #ifndef API_EXPORT #define DECL_API extern "C" __declspec(dllimport) #e...

2016-12-29 14:59:13

阅读数 1112

评论数 0

Windows虚拟机

1,Windows虚拟机 https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ 下载win7-10 2,讲解 http://www.iplaysoft.com/windows-test-vms.h...

2016-09-19 17:26:51

阅读数 333

评论数 0

《Windows核心编程》之“线程池”

本文主要结合四个应用场景介绍Windows内置的几种线程池机制,并配了一张思维导图。事实上,Jeffrey在该书中,并没有过深的去探讨“线程池”的机制,Windows所提供的这四种线程池机制也并非所有场景都合适,后续我将会单独开一篇博客来自己实现一个线程池。     如上图,本文主要介绍...

2016-09-05 14:15:01

阅读数 529

评论数 0

《Windows核心编程》之“完成端口”

《Windows核心编程》第10章开头部分一再强调:“IO Completion Port”是“构建高性能、可升缩的应用程序”的最佳设施之一,它不仅适用于处理设备IO,也适用于其它越来越多的应用场景,比如:Job内核对象、Socket编程等。故此,我单独用一篇博客来讲述“IO Completion...

2016-09-02 14:53:42

阅读数 756

评论数 0

《Windows核心编程》之“同步IO和异步IO”

本文主要通过一张思维导图来总结Windows编程中关于设备IO的相关知识,其中,“IO Completion Port”后面会单独用一个系列文章进行介绍,在此不再展开。

2016-08-29 14:33:34

阅读数 388

评论数 0

《Windows核心编程》之“堆”

本文我将用一张思维导图来总结“堆”相关的知识点。

2016-08-26 15:50:42

阅读数 430

评论数 0

《Windows核心编程》之“内核对象同步”

本文主要总结如何使用“kernel object”来实现线程间的同步。与用户模式下的同步方法相比,内核对象同步的效率会相对要低一些(需要切换到内核模式下),但是,它可以跨进程使用,而且在编程上也更简单。     除了总结知识点,我还分析了内核对象同步实现的Queue.exe的示例代码,并与上一篇...

2016-08-26 11:01:59

阅读数 443

评论数 0

《Windows核心编程》之“用户模式同步”

本文我将用一张思维导图来总结“用户模式下线程同步”的各个知识点,然后再分析书中给出的“Queue”示例代码。 Queue示例代码分析: 一、功能简介     该示例实现了一个简单的“client/server”模式的“producer .vs consumer”案例。待保护资源是 一个全局...

2016-08-24 11:19:52

阅读数 307

评论数 0

《Windows核心编程》之“线程调度和优先级”

  “线程调度和优先级”这一章主要讲解 Windows 的线程调度的机制,特别是线程上下文切换(context switch)。由于 Windows 并非“实时操作系统”,在线程调度方面留给程序员操作的空间很少,因此,这一章对实际编程的帮助并不大,如果仅仅是想了解一些基本原理,建议通读一遍即可,或...

2016-08-23 11:04:14

阅读数 512

评论数 0

《Windows核心编程》之“线程基础”

  本文主要介绍线程的一些基础知识,包括:线程内核对象、线程的创建和退出、线程的初始化和线程上下文等,可以用下面这张思维导图来总结。 一、线程VS进程 内核对象 地址空间 进程 进程内核对象 进程地址空间 线程 线程内核对象 线程栈 进...

2016-08-22 16:43:59

阅读数 262

评论数 0

《Windows核心编程》之“进程”

    本文我尝试用一张思维导图来总结我对《Windows核心编程》CH4“进程”这一章内容的理解,然后针对一些感兴趣的内容展开来谈谈我的理解。建议大家在阅读这一章时,认真阅读示例程序“ProcessInfo.exe”,它是一个迷你版的“procexp.exe”,通过对“ProcessInfo.e...

2016-08-22 14:08:59

阅读数 905

评论数 0

《Windows核心编程》之“内核对象”

    内核对象(Kernel Object)是Winodws操作系统中最核心的一个概念,本章主要介绍“内核对象”整个抽象概念的共性,而不针对具体的某个内核对象。     这一章介绍了“内核对象”的公共属性:usage count(使用计数) 和 Security Descriptor (SD,...

2016-08-19 11:17:38

阅读数 1887

评论数 0

《Windows核心编程》之“SEH”

SEH,Structured Exception Handling(结构化异常处理),包括两种类型:一是Termination Handling,即终止处理;另一个是Exception Handling。本文主要介绍Termination Handling。 一、Advantages of T...

2016-08-18 11:14:41

阅读数 487

评论数 0

《Windows核心编程》之“API Hooking”(二)

前一篇主要讲“API Hooking”的原理——修改IAT,这一篇主要讲代码实现和调试。 一、修改IAT     我们要修改IAT,首先要了解导入段的数据结构和操作API。 1,IMAGE_IMPORT_DESCRIPTOR     在winnt.h文件中,定义了这么一个数据结构来描述导入段中的信...

2016-08-17 16:19:34

阅读数 712

评论数 0

《Windows核心编程》之“API Hooking”(一)

《Windows核心编程》中介绍了两种API Hooking的方法 —— “Overwritting Code”(代码覆盖)和“API Hooking by Manipulating a Module's Import Section”(修改导入段)。本文在以学习这两种API Hooking为目的...

2016-08-17 11:11:33

阅读数 1256

评论数 0

《Windows核心编程》之“Windows挂钩”(三)

本文主要结合之前两篇介绍的“Windows挂钩”知识,讲解《Windows核心编程》一书中的“DIPS"示例程序和我的调试经验。 一、程序功能介绍 1,功能需求     DIPS.exe应用程序使用了Windows Hook来将一个DLL注入到Explorer.exe的地址空间中,并...

2016-08-12 14:56:21

阅读数 976

评论数 0

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