Welcome 微信登录

首页 / 软件开发 / C++

对PE资源的研究

对PE资源的研究

对PE资源的研究2008-01-05前言:没什么好说的,发现这方面的资料全是英文的,于是我一边研究,一边翻译,一边写出自己的心得。希望大家尊重我的劳动成果,转贴保持完整。资源一般使用树来保存,通常包含3层,在NT下,最高层是类型,然后是名字,最后是语言。一个PE文件是否包含资源文件,通常检测块表(Section Table)中是否含有".rsrc",不过这个方法对有些PE文件无效。一个类型表结构如下————&...
怎样通过一个程序来生成另一个程序

怎样通过一个程序来生成另一个程序

怎样通过一个程序来生成另一个程序2008-01-05前不久大家都在讨论怎样通过一个程序来生成另一个程序,我提出了将另一个程序当资源文件包含在程序中一起编译,然后在程序运行时根据需要再重新生成出来,下面是我的一个例子, 在这里,我将自带的写字板(writer.exe)当资源.下面是源代码//资源文件writer.exe长度为204800,在资源文件中定义为"CUSTOM"资源,编号为1111 HRSRC hMyRes; //resou...
利用VC++编写Windows95的CPL组件

利用VC++编写Windows95的CPL组件

利用VC++编写Windows95的CPL组件2010-05-27控制面板是Windows 95 的控制中心,通过它可以完成添加新硬件设备、改变桌面设置、配置网络协议等多项工作。在Windows 95 中,控制面板通常有20 多个组件,我们只要用鼠标双击任一组件的图标,就会弹出一个对话框,对话框包含有设置一些系统参数的选项,这些参数的绝大多数都存放在Windows 95 的注册表中。---- 控制面板的主程序是CONTROL.EXE,它在启动时自动Winn...
C++ Builder中目录处理的一些函数

C++ Builder中目录处理的一些函数

C++ Builder中目录处理的一些函数2008-01-05在时,经常有一些针对目录的操作,如打开目录对话框选择一个目录,直接创建多级目录,直接删除多级目录,判断某个目录是否存在等。本文就这些问题给出编程实现方法,并给出详细的程序代码,供各位编程爱好者参考。一、判断目录是否存在:C++ Builder中提供了检查文件是否存在的函数FileExists,但没有提供检查目录是否存在的函数,我们可以用Windows API函数FindFirstFile实现这个...
MFC DLL向导(一)

MFC DLL向导(一)

MFC DLL向导(一)2010-05-27虽然能用DLL实现的东西都可以用COM来实现,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL每个DLL都有某种类型的接口:变量、指针、函...
如何实现鼠标拖放文件

如何实现鼠标拖放文件

如何实现鼠标拖放文件2008-01-05一.1:取得要拖放的文件名与路径。2:取得目标文件名与路径。3:在拖动事件中把文件从原目录拷入目标目录。4:取得文件图标放入TImageList。5:以一种方式显示文件名和图标。这里有些难度的是第四步,如何取得图标,现把刚学来的再告诉你(以在TListView显示图标为例):在头文件中加入:#define NO_WIN32_LEAN_AND_MEAN在.cpp中加入:SHFILEINFO FileInfo;THand...
MFC DLL向导(二)

MFC DLL向导(二)

MFC DLL向导(二)2010-05-27使用DLL的一个比较严重的问题就是编译器之间的兼容性问题。不同的编译器对c++函数在二进制级别的实现方式是不同的。所以对基于C++的DLL,如果编译器不同就有很麻烦的。如果创建的是MFC扩展DLL,就不会存在问题,因为它只能被动态连接到MFC的客户应用程序。这里不是本文讨论的重点。一、重新编译问题我们先来看一个在实际中可能遇到的问题:比如现在建立好了一个DLL导出了CMyClass类,客户也能正常使用这个DLL,...
隐藏任意进程、目录/文件、注册表、端口

隐藏任意进程、目录/文件、注册表、端口

隐藏任意进程、目录/文件、注册表、端口2008-01-05查找进程,目录/文件,注册表等操作将最终调用 ZwQueryDirectoryFile,ZwQuerySystemInformation,ZwXXXValueKey 等函数。要想拦截这些函数达到隐藏目的,需先自己实现以上函数,并修改系统维护的一个SYSCALL 表使之指向自己预先定义的函数。因 SYSCALL 表在用户层不可见,所以要写 DRIVE 在 RING 0 下才可修改。关于如何修改已有文章...
用VC++控制多光驱

用VC++控制多光驱

用VC++控制多光驱2010-05-27对于初学者,编写CD播放器不妨为一种入门的捷径。CD播放器的核心在于MCI命令,而在各种媒体上介绍MCI命令如何使用的文章比比皆是,因此我暂且对其略过不谈。在这儿,我着重向大家介绍一个比较重要的技术--多光驱的支持。人们的机器上的光驱往往不止一个,有普通的CDROM、有CDR、有DVD,还有穷人使用的虚拟光驱:)。这样一来,对于编写多媒体软件的程序员就出了个难题:如何能在软件中加入多光驱的支持。要解决这个问题,首先要...
用拷贝钩子实现对文件夹的监控

用拷贝钩子实现对文件夹的监控

用拷贝钩子实现对文件夹的监控2008-01-05ICopyHook是一个用于创建拷贝钩子处理程序COM接口,它决定一个文件夹或者打印机对象是否可以被移动,拷贝,重命名或删除。Shell在执行这些操作之前,会调用ICopyHook接口的CopyCallback方法对它们进行验证。CopyCallback返回一个int值指示Shell是否应该继续执行这个操作。返回值IDYES表示继续,而返回值IDNO和IDCANCEL则表示终止。一个文件夹对象可以安装多个拷贝...
用C++Builder存取Excel文件

用C++Builder存取Excel文件

用C++Builder存取Excel文件2008-01-05C++Builder是Borland公司继Delphi之后又一成功的产品,她集VB、VC++ 及 Delphi 的优点于一体而深得C语言爱好者的青睐。由于多数操作者爱用 MicroSoft公司的Excel组织数据,为此本文介绍了用C++Builder存取Excel 文件的两种方法。一.用OLE技术操纵ExcelOLE(对象链接与嵌入)是微软提出的标准,是应用程序间交换数据、相互操作的一种方式,MS...
在C++Builder中使用Delphi文件

在C++Builder中使用Delphi文件

在C++Builder中使用Delphi文件2008-01-05在使用多种语言和工具编写一个应用程序时,最为困难的事情之一是创建和维护定义文件的接口。幸运的是,C++Builder把这一切都替你做好了。当在项目中加入一个.PAS文件时,C++Builder会自动创建一个.HPP文件。在CPP文件中,可以调用Pascal的函数、对象等。这为Delphi的程序员移植全部或部分的项目提供了便捷的途径。下面是在C++Builder中使用Delphi代码的原则:1、...
使用Windows钩子获取丢失的密码

使用Windows钩子获取丢失的密码

使用Windows钩子获取丢失的密码2010-05-27 vckbase Brian Friesen简介几年前我在CodeGuru 上下载了一个叫 Eureka的程序,如果你忘记了密码,你可以用程序把密码“取”回来。它不是密码破解程序,相反,它利用了一个Windows的安全漏洞来拷贝另外一个运行中的程序的密码。我对这个程序很感兴趣,决定写一个自己的版本。后来,Windows 2000 发布,我失望地发现,微软修补了那个漏洞,这样一来...
如何将多个文件捆绑成一个可执行文件

如何将多个文件捆绑成一个可执行文件

如何将多个文件捆绑成一个可执行文件2008-01-05将多个文件合并成一个最终可执行文件,运行这个最终合成文件后,就相当于运行了合并前的多个文件。这种程序在木马程序合并中会经常用到,你想知道它是怎么用程序实现的么?下面我就拿我用VC6.0做的一个文件捆绑器的例子代码来告诉你: 基本构成思想:其实,其中的构成思想非常简单。合并文件时:建立一个新的二进制文件,先写入你的自身捆绑程序的数据和其文件长度,再写入你要捆绑的第一个文件的数据和其文件长度,后再直接写入...
<< 31 32 33 34 35 36 37 38 39 40 >>