摘要:
一、windows系统的引导过程如下:1、电源自检程序开始运行2、主引导记录被装入内存,并且程序开始执行3、活动分区的引导扇区被装入内存4、NTLDR从引导扇区被装入并初始化5、将处理器的实模式改为32位平滑内存模式6、NTLDR开始运行适当的小文件系统驱动程序。小文件系统驱动程序是建立在NTLDR内部的,它能读FAT或NTFS。7、NTLDR读boot.ini文件8、NTLDR装载所选操作系统二、NTLDR在引导过程中扮演的角色:NTLDR一般存放于C盘根目录下,是一个具有隐藏和只读属性的系统文件。它的主要职责是解析Boot.ini文件。如果你对它的理解还不是很清楚,那么下面我们就以Wind 阅读全文
摘要:
1、首先安装DDKWizard官方网页:http://ddkwizard.assarbad.net/从官方网页下载这三个重要的文件:DDKBUILD.BAT、 DDKBUILD.CMD、DDKWIZARD_SETUP。EXE在WDK7600安装目录新建一个bat 目录,用来保存bat与cmd两个文件,再安装DDKWIZARD_SETUP.EXE。2、VS2008中相关配置在系统环境变量中添加一条记录:PathE:\WinDDK\bat (刚刚从DDKWizard下载保存的两个文件对应的路径)WXPBASE E:\WinDDK\7600.16385.0 (这条记录貌似可以不需要)再打开VS200 阅读全文
摘要:
标准库vector类型使用需要的头文件:#include <vector>。vector 是一个类模板。不是一种数据类型,vector<int>是一种数据类型。Vector的存储空间是连续的,list不是连续存储的。一、定义和初始化vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;vector<typeName>v2(v1); 或v2=v1;vector<typeName>v2(v1.begin(), v1.end());//v2是v1的一个副本,若v1.size()>v2.si 阅读全文
摘要:
STL 中map的用法详解Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用cha 阅读全文
摘要:
1.打印软件监视日志const DWORD dwBufferSize = MAX_PATH * 2;TCHAR szMoudleFileName[dwBufferSize] = {0};GetModuleFileName(0, szMoudleFileName, dwBufferSize);_tcscat_s(szMoudleFileName, dwBufferSize, _T("\\MyProcessViewer.log"));VERIFY( g_Log.Open( szModuleFileName ));2. IsUserAnAdmin 查看用户权限是否是管理员权限in 阅读全文
摘要:
1 VC中TabControl控件使用方法 (1) 添加Tab Control控件并在Property属性中设置ID为IDC_TAB,添加变量m_tabctrl,类型为CTabCtrl。 (2) 在对话框的初始化函数OnInitDialog里面添加如下代码: m_tabctrl.InsertItem(0, "memo0");//添加参数一选项卡 m_tabctrl.InsertItem(1, "memo1"); //添加参数二选项卡 (3) 在对话框中添加两个对话框资源,设置好ID,属性设置为style:Child,Border为None,再适当调整宽度 阅读全文
摘要:
// 管理驱动程序#ifndef _CDRIVER_H_#define _CDRIVER_H_#include <winsvc.h> // 使用SCM函数 class CDriver{public:/** 参数: pszDriverpath 为驱动所在的目录,pszLinkName 为符号连接名字* 功能: 试图创建和打开服务*/ CDriver(LPCTSTR pszDriverPath, LPCTSTR pszLinkName); virtual ~CDriver();// 属性 // 此驱动是否可用 virtual BOOL IsValid(){return (m_hSCM 阅读全文
摘要:
// 挂钩指定模块hMod对MessageBoxA的调用BOOL SetHook(HMODULE hMod);// 定义MessageBoxA函数原型typedef int (WINAPI *PFNMESSAGEBOX)(HWND, LPCSTR, LPCSTR, UINT uType);// 保存MessageBoxA函数的真实地址PROC g_orgProc = (PROC)MessageBoxA;void main(){// 调用原API函数::MessageBox(NULL, "原函数", "HookDemo", 0);// 挂钩后再调用SetH 阅读全文
摘要:
01.用ZwQueryVirtualMemory枚举进程模块 02.枚举进程模块通常可以使用诸如:CreateToolhelp32Snapshot,Module32First,Module32Next 等"Tool Help Functions"接口来实现, 并且这也是最通用的方法(从Win95就开始支持了), 但是今天我们要介绍的是ntdll.dll导出的未文档化接口ZwQueryVirtualMemory,。相比前面所介绍的方法,该方法可以检测出隐藏的模块(类似IceSword)。 03.我们先来看下这个接口的原型: 04. 05.//----------------- 阅读全文
摘要:
1.VS2008提示无法打开包括文件:“afxcontrolbars.h//功能区和控件条的 MFC支持 以前用了vs2008SP1写的程序,现在用没有SP1的vs2008编译引起的 解决方法: 把#include <afxcontrolbars.h>注掉,后面加了一行 #define CWinAppEx CWinApp2. VC6.0#include<map>之后使用map容器报一大堆警告 解决方法是在 #include <map>之前加#pragma warning(disable:4786)3. Visual C++ 中fatal error C108 阅读全文