C/C++/Driver
文章平均质量分 63
jANxIN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
驱动学习笔记二:加载驱动
下面的代码是使用的SCM加载的驱动,非是什么猥琐方法...思想委琐的人可以去蹲墙角去了。驱动名和驱动路径之前定义过了...如果想写个加载工具,是可以参考下InstDrv工具源代码的。方法都一样的,呵呵#include #include #include #include #define DRIVER_NAME "HelloDDK" #defi原创 2008-09-28 20:59:00 · 1127 阅读 · 0 评论 -
关于DLL显式链接的二三事
很久没有写过链接DLL一类的程序了。很多时候,功能都是直接写在主程序里,不需要实现什么插件功能。于是乎,根本不需要链接什么DLL文件。最近C++ builder老师突然说,期末考试不考试题,改做程序,于是本来打算做个关于扩展插件功能实现的程序。当然,由于是插件程序,牵扯到了如何获得插件程序是否安装、如何生成对应的图形界面等等的问题。不过这里我倒不是很想说那么多东西,就是写一些关于DLL编写中的原创 2009-05-28 08:46:00 · 794 阅读 · 0 评论 -
C/C++混合编程
来源:cppblog 前段时间,碰到了C,C++混合编程的需求,经过努力,顺利解决问题.现把这方面的知识做一下简单的总结: 1.当C++文件要用到C语言中的函数代码时,采用下属方法即可:在C++中的.h文件或.cpp文件中加入下列代码,#define LINT_ARGS 1extern "C" {#include "system.h"} 然后在代码中直接调用这些函数转载 2009-03-03 18:16:00 · 768 阅读 · 0 评论 -
如何检测U盘的插入删除
之前有写过一次这种程序,使用的一种比较消耗资源的方法,用一个死循环,不停检测从A~Z盘的类型是否为DRIVE_REMOVABLE。其实,用过这种方法也会发现,其实这种方法是有毛病的,那就是其实还是有一定的延迟可能。那么,如何才能检测U盘的插入呢? 其实MS提供了一个WM_DEVICECHANGE消息用于检测设备的改变。而且接受这些消息并不需要注册。在这个消息中,有个结构体详细提供了改原创 2008-12-18 21:25:00 · 1094 阅读 · 0 评论 -
如何使用VC进行HTTP连接
CString httpRequest(char* lpHostName, short sPort, char* lpUrl, char* lpMethod, char* lpPostDara, int nPostDataLen){ HINTERNET hInternet, hConnect, hRequest; BOOL bRet; CString strResponse;原创 2008-12-12 20:23:00 · 2783 阅读 · 1 评论 -
ISO C++的文件拷贝
自学的时候很多东西不经心就过去了,现在回想起来十分的后悔,因为基础没有掌握的十分的扎实。像在写标准ISO C++时,很多库函数是十分有用的,比如fstream,很多时候我还是带有C习惯的使用Fopen等等的实现这些功能,但是,实际上来说,fstream操作起来更是方便一些。举个例子来说,对文件的copy操作我可以这样实现(原谅我这样举例,因为有个人最近学C++,这是出给他的题目):#include原创 2009-01-13 17:25:00 · 731 阅读 · 0 评论 -
时间有效性判断函数CheckDate
原创 2008-11-21 22:28:00 · 1674 阅读 · 0 评论 -
SEH不能捕获异常
异常处理真的是个好复杂的东西,网上有不少牛文,大家参考,这里只说其中的一点,关于SHE不工作的问题及如何解决的一点思路。 这个故事是发生在内核,驱动A开始工作的很好,后来老大说改成由驱动B模拟系统加载驱动B吧。也就是自己完成PE文件映射,重定位处理,导入表处理等等。改完后唯一的问题就是,SHE不工作了。__try...{ Xor eax,eax Mov [eax],ebx转载 2008-10-09 20:13:00 · 2282 阅读 · 2 评论 -
几个驱动重要的结构
DEVICE_OBJECT:typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; struct _DEV原创 2008-10-03 15:25:00 · 894 阅读 · 0 评论 -
驱动学习笔记一:实现一个简单的HelloDriver
枉被人叫了这么久的驱动大牛,实际上驱动差的要命,哈哈。现在来补习下驱动知识,写个笔记,反正在学校里也算是个学习的过程吧。以下代码均在VC2008 + WDK2008下编译通过。至于DDK和选择的工具什么的我也不知道怎么说,反正现在可供选择的东西还有详细配置的教程还是比较多的,所以我就不再赘述了。我就直接跳过那些配置文章,直接从代码开始说起吧。至于逆向或者分析bug,这些可能我在文章里就完全不会涉及原创 2008-09-28 09:01:00 · 1273 阅读 · 0 评论 -
棧的代碼實現
#ifndef _STACK_H #define _STACK_H #define STACK_INIT_SIZE 100 //初始栈的最大长度 #define STACKINCREMENT 10 //每次新增的栈的长度 #endiftemplate class Stack{ public: Stack(); void Push(D原创 2010-03-31 16:53:00 · 868 阅读 · 0 评论
分享