自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 简单易懂的SSDT学习心得

在这篇心得开始,说点其他的。之前参加百度校园招聘的时候,面试官问我什么是SSDT,已经HOOK SSDT的实现过程。自己明明知道,可是我一下答上来,所以我找出来以前学习的心得,贴出来,好备份吧!我这篇心得呢!是代码与文字一起加载在一起的,学习就想读书的时候一样,书看到哪里笔记就做到哪里。这样方便理解。如果代价复制黏贴来学,不会影响的,一边看代码一边看笔记哟!其实我平时写代码不是这样的……都是规范化

2013-04-14 19:59:54 3015

原创 开始学习SDK

#include #pragma comment (lib,"User32.lib")int WINAPI WinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPSTR     lpCmdLine,                     i

2013-04-08 09:45:55 606

原创 读万卷书,写万行代码

读万卷书,写万行代码。我的意思不是说理论知识无用,更不是说“读书顶个鸟用”。对于读书无用论我认为是!TRUE.正如古人云,读万卷书行千里路。不过技术的东西靠实践,知易行难。         在我大一的时候,我老以为看了几本书我就能上天入地,咋地咋地……最后我发现一切都是浮云。回想大一的自己是多么的愚蠢,大一的时候我最喜欢的书是缓冲区溢出了。在河滨常常跑到本部去借书,我记得《黑客防线》有一本

2013-04-08 09:19:23 1201 1

原创 旧文新发

VC码农现在没有了,这些年写的文章重新发一遍。

2013-04-08 09:10:01 625 1

原创 Chilkat----开源网站之VS2010 CKMailMan一个非常好的邮件发送开源开发包

Chilkat 是一个非常好的开源网站,有各种开源库。开发语言主要有Classic ASP •C • C++ • C# • Delphi ActiveX • Delphi DLL • Visual FoxPro • Java • MFC • Objective-C • Perl • PHP ActiveX • PHP Extension • Po

2014-06-26 09:41:04 4273 6

原创 一个注册表恶意程序

不想重复打字了,请转到http://bbs.pediy.com/showthread.php?p=1182489#post1182489有附件,有源码,有注释,有交流

2013-05-30 02:06:54 768

原创 关于NoDriveTypeAutoRun的键值

最近在写一个修改注册表的驱动,只是为了好玩,也算是一个恶搞驱动吧!遇到一个问题,花了我差不多两天的时间的,详情往下看……写这篇文章,为了记住这个教训,一个提供一种纠错的思路——无知真可怕我想修改注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]并且添加一个键值,键值

2013-05-28 22:11:01 9252

原创 学习InlineHOOK

其实InlineHook 不像想象的那么复杂。如果你慢慢的学习研究还是很好理解的。我在看雪http://bbs.pediy.com/showthread.php?t=98493 看了这篇文章,做了一下修改。这里说说我的心得体会吧!我们看到很多文章都说是修改前五个字节,其实这是不完全正确的说法,如果你熟悉InlineHook的话,可以换成这个函数地址范围内的任意五个字节,但是要确保这个五

2013-05-22 23:18:51 815

原创 一个菜鸟的内核学习——Win7内核隐藏进程

写了个WIN7隐藏驱动程序,不多说什么,贴代码,主要包括驱动程序和应用程序。开发环境:win7+VS2012+WDK8.0其他操作系统不支持详情请看附件,大牛勿喷……附件地址:http://bbs.pediy.com/showthread.php?p=1175981#post1175981//驱动程序://********************************

2013-05-10 22:47:31 1941

原创 VS2012+WDK8.0+WIN7的一点心得

本想使用VS2010+WDK,开发一些win7的驱动。但是感觉配置开发环境挺麻烦,于是我就换成了VS2102+WDK8.0.      这里我就不多说VS2012+WDK8.0的安装预配置了。但是要注意的一点是一定要先装VS2012,然后再装WDK8.0.      然后就是配置双机调试了。这个非常简单,百度一大把。     在WIN7使用Windbg 它不支持local,所以显示的信

2013-04-28 21:35:38 5269 7

原创 sizeof计算赋值变量和形参的大小

sizeof()几乎在所有笔试中都会出现,我说的是C/C++……但是各自的考点和考法都不一样下面讲讲一种少见的考法在windows NT下32位的C++程序,请计算sizeof的值??void Func1(char str[100]) //与参数的大小无关{ cout}void Func2(char str) //与参数的大小无关{ cout}

2013-04-24 10:43:13 1022

原创 一个菜鸟的内核学习

学习windows内核也有段时间了。这里发一个自己的小作品。我发这个作品的意图不在于这个作品的实用性,而是为了展示学习中的部分收获。这个作品不代表我学习的所有知识。大牛勿喷!!。。   为什么要写这个作品?附件下载地址:http://download.csdn.net/user/fsjaky   我之所以要写这个作品,有两个原因。原因一是在这段时间面试中都碰壁了。许多面试官都会问,有没有自

2013-04-22 17:55:37 690

原创 Windbg导出User32.dll里面的所有函数

这里要用到一个 Windbg 命令:x user32!*  X [模块名] ![函数名/*]解释:X  :表示查询的意识x user32!MessageBXA  表示在User32 中查询函数MessageBoxAx user32!* 表示查询所有语句 和SQL 中 * 的意思一样的如果一个函数名称不记得全部了 你也可以,用部分匹配的方式去查找,如:x user32!M

2013-04-20 22:14:41 5696

原创 通过驱动名称获取驱动路径加载驱动

最近在写一个小工具需要加载驱动。完成后,分享给朋友使用。大家反馈的信息是,无法加载驱动。后来我自己多次测试,没发现什么问题。       前提条件:驱动文件.sys 必须与可执行文件.exe必须在同一目录下面!       我在想是不是运行环境导致的,后来我复制出来到物理机里面测试,同样的问题出现了——驱动无法加载。       在最后,我发现问题了。在网上还是看到的大部分加载与卸载程

2013-04-20 20:04:03 1820

原创 内核修改注册表

内核修改注册表和API修改注册表非常相似,仅仅只是相似。这里贴出来我自己通过查找资料写出来的注册表操作代码!方法我就不多说了,这些事学习心得,所以会有很多注释,有基础的人都能看懂!有些地方不是很完善,希望大家指出来!这里分为Mykey.h文件 和 Mykey.cpp文件!代码才是最好的说明! |    |    |    |   | |    |    |    |   |\/

2013-04-17 23:47:00 814

原创 -a -v -n -x 5 -r 100:10 -l 300

最近在弄自己的wifi,google,百度了一番。都说reaver好用,于是下载了过来用用,完全是鼠标操作,一切都是为了方便。在使用过程遇到一些问题,明白了就贴出来了。有很多人在问这两个问题:1.-a -v -n -x 5 -r 100:10 -l 300 是什么意思?2 warning:fail to associate with XXX?是怎么回事?       问题2解答

2013-04-17 23:25:06 2432

原创 进程间的通信

进程间的通信进程间的通信方法很多,这里不一一说明,只说一些常见的和使用的API函数。只是个人心得,或许说的不是很好,贴出来只是为了备份。第一种:邮槽(MailSlot)       使用邮槽通信,必须要有服务端和客户端,而且这种通信时单向的即服务端只能读,客户端只能写,遵循先入先出,必须先写才能读。这中方法可以用在本机进程与本机进程间的通信,也可以用在主机间的进程通信。主机间的进程通信

2013-04-17 17:22:20 874

原创 Ring3进程注入技术讲解篇

Ring3进程注入技术讲解在我的学习过程中,写出我所了解的三种技术,贴点理论的东西,方便以后理解。大牛勿喷第一种:远程线程插入技术将要实现的功能程序做成一个线程,并将次线程在运行时自动插入到常见的进程中,比如explorer.exe。不过这个技术好像有点复杂,复杂在什么地方呢?就是在进程中寻址容易出现问题,必须要进行抵制重定位。然后保存函数和变量的地址,插入到目标进程,需要对目标进程重

2013-04-17 17:20:30 993

转载 Driver Development Part 1: Introduction to Drivers

//来自codeproject的文章,共有六篇,感觉写的挺好的。因为不想经常翻墙,所以先收藏。//对于初学者是不错的文章,虽然是英文但是咬咬牙还是可以看懂的,建议不要百度、google翻译了//MSDN、WDK的帮助文档都是英文 哈哈!Driver Development Part 1: Introduction to DriversBy Toby Opferman,5 Feb

2013-04-09 23:04:28 1355

转载 Windows同步机制

在多线程程序设计中,不可避免地面临着同步问题。在Win32中,有以下四种同步机制。    1、临界区 - Critical Section    (1) 说明    多线程程序中,有些代码是共享资源,需将这些代码作为临界区。如果有多个线程试图同时访问临界区,那么在一个线程进入后,其他线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占。

2013-04-09 19:46:36 561

转载 Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取

为什么要写这篇文章1.     因为最近在学习《软件调试》这本书,看到书中的某个调试历程中讲了Windows的系统调用的实现机制,其中讲到了从Ring3跳转到Ring0之后直接进入了KiFastCallEntry这个函数。2.     碰巧前天又在网上看到了一篇老文章介绍xxx安全卫士对Windows系统调用的Hook,主要就是Hook到这个函数3.     刚刚做完毕业设

2013-04-09 19:44:26 900

原创 error LNK2019: unresolved external symbol _DriverEntry@8 referenced in function _GsDriverEntry@8

对于大多数驱动开发初学者来说,有时候我们写的代码,或者在网上copy的代码,你会发现编译程序是出现这样的错误error LNK2019: unresolved external symbol_DriverEntry@8 referenced in function _GsDriverEntry@8e:\vs2008~1\listpr~1\listpr~1\objchk_win7_x86

2013-04-09 17:05:15 4625 1

原创 选择排序

#includeusing namespace std;//a[i] 向其后面的对比一次 有结果交换 i++;//小到大int selectsort(int a[],int n){ int i,j,min; int temp; for(i = 0; i {  min=i;  for(j= i +1; j   {   if(a[min] > a[j

2013-04-09 15:43:28 477

原创 计算一个二进制数中有多少位是 1

#includeusing namespace std;/***********************************************//计算一个二进制数中有多少位是 1//一个字节占八位,第一位肯定是 1//所以 只需要检验后面七位是否有 1 //因此 宏 定义 一个 BIT7 为 0x1 //专业术语 就是最高位置1**************

2013-04-09 15:40:28 1712

原创 设置或清除指定的位

#includeusing namespace std;/**********************************************************//设置或清除指定的位//设置指定的第三位 使用 宏 #define BIT3 由 0x1 左移三位//假如指定的是 第五位 使用 宏 #define BIT5 由 0x1 左移五位//当然 也可以使用

2013-04-09 15:38:19 797

原创 使用strcpy快速移动字符串

//将某个字符串的后n个字符放到字符串的前面//思路:三次运用strcpy#includeusing namespace std;#define MAX_LEN 20void LoopMove ( char *pStr, int steps ){ int n = strlen( pStr ) - steps; //计算出不需要移动的长度 cout char tm

2013-04-09 15:36:45 702

原创 内存泄露

#includeusing namespace std;struct _1{ int a; char b;}struct_1;/*1、struct _1中间有空格,在这里看不出来2、struct_1看是一体,实际中间是有空格,编译器检查不能通过的*///*就是访问这个单元int main(){ //直接访问内存,涉及到内存分页的知识啦!

2013-04-09 15:14:44 487

原创 C++的多态性

C++的多态性分为两种,一是运行时的多态性,二是编译时的多态性,这里我就不多介绍了。代码才是做好的说明,在代码中有注释以及我的理解。不知道自己这样解释是否正确。代码如下://**********************************************-------------------------------------------************////运行时的

2013-04-09 15:10:47 689

原创 逻辑运算符号

#includeusing namespace std;int main(){ int a=0; int c = 0 ; /*在C语言里面 只要是非零 就是 true  一个数不是零 bool 值 就是 1  而 && 的运算 就是 只要 && 的左右两边 都必须是非零 才是true */ a = a && !(c & 1); cout return

2013-04-09 15:04:38 902

原创 SDK通过文件句柄获取文件路径

/*APIHandlePath*///通过文件句柄获取文件路径/*头文件*/#include#include#include#include#include/*预处理申明*/#pragma comment (lib,"Psapi.lib")#define BUFSIZE 512/*函数申明*/BOOL GetFileNameFromHandle(

2013-04-09 12:07:21 935

原创 SDK获取系统时间

#include#include/*********************int main()*功能:获取并显示系统当前的时间,然后时间变成提前一个小时*********************/int main(){ SYSTEMTIME st; //获取当前系统时间,以本地时间格式 GetLocalTime(&st); printf("Now: %

2013-04-09 11:53:26 1260

原创 SDK截屏

/* ************************************* PrtSrcn.c  截屏//http://blog.csdn.net/fsjaky**************************************//* 头文件 */#include /* 常量定义 */#define PALVERSION 0x300#define CA

2013-04-09 11:50:21 724

原创 SDK之socket 通信 客户端

//cilent.c socket 通信 客户端#include//#include#include"WINSOCK2.H"#pragma comment(lib, "ws2_32.lib") /*常量*/#define RECV_BUFFER_SIZE 8192/*main 功能 socket通信客户端*/void main(int argc,char* argv

2013-04-09 11:48:18 1034

原创 SDK之SOCKET服务端

#include#include#include#pragma comment(lib, "ws2_32.lib")/*常量*/#define DEFAULT_PORT "1000"  //端口#define MAX_REQUEST 1024  //接收数据的缓存#define BUF_SIZE 4096     //发送数据缓存/*****************

2013-04-09 11:46:14 819

原创 SDK一个简单的GDI程序(就是画图)

/***********************************gdi.cpp最简单的GDI程序***********************************//*头文件*/#include#pragma comment(lib,"Gdi32.lib")/*函数声明*/VOID GdiOut(HDC hdc);//WinMainint WINAP

2013-04-08 10:31:10 1474

原创 SDK遍历驱动器并获取驱动属性

提示这里分成两个文件,一个是GetDriveInfo.h,另一个是APIFinfFirstVolume.cpp//APIFinfFirstVolume.cpp 代码如下/*// 在这个程序里面。显示的驱动不是如C:\这样的// 而是直接显示 物理驱动的唯一标示,// 每个都是不一样的请仔细看清楚了!//  这些都是 保存驱动器名称的内存缓存区// \\?\Volume{

2013-04-08 10:23:43 709

原创 SDK判断光驱是否有光盘

/*判断光驱是否有光盘*//*头文件*/#include #include #include /*预定义*/#define BUFSIZE 512/***********************// int main(int argc, PCHAR argv[])// 功能:应用程序主函数,根据输入的驱动器根路径参数,// 判断是否为光驱,是否放入光盘

2013-04-08 10:16:23 671

原创 SDK获取文件大小 读取文件内容

/*头文件*/#include#include/******************************************//DWORD ReadFileContent ( LPSTR szFilePath)//功能:获取文件大小 读取文件内容//      并以十六进制的形式打印出来//参数:LPSTR szFilePath  文件路径*********

2013-04-08 10:14:42 1419

原创 SDK递归调用遍历目录树

//递归调用遍历目录树/*头文件*/#include#include/*预处理申明*/#pragma comment (lib,"User32.lib")   //调用User32.dll 在这里""里面不能有空格/*函数申明*/DWORD ListAllFileInDirectory( LPSTR szPath);/* 全局变量 *///记录所有文件和目录

2013-04-08 10:09:07 617

原创 SDK使用 Mapping File 提高文件读写效率

/*使用 Mapping File 提高文件读写效率*/ /*头文件*/#include#include/*预处理申明*/#define BUFFSIZE 1024              //内存大小#define FILE_MAP_START 0x28804     //文件映射的起始位置/*全局变量*/LPSTR lpcTheFile = TEXT("t

2013-04-08 10:07:59 1127 1

EPROCESS和SSDT

基于EPROCESS结构的进程检测方法 基于SSDT的进程保护方法 编程实现NT式驱动的加载与卸载 驱动程序与应用程序的通信 API函数的应用

2013-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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