内容列表
- Iczelion 的 Win32Asm VxD 汇编教程 (九)
- 虚拟8086模式的内存管理
下边我们用到的V86即指虚拟8086模式。 在以前的教程中,你学习了怎样模拟V86中断,但还有一个问题没有解决:在VxD和V86代码之间交换数据。我们将在此学习如何使用V86内存管理器来实现这个功能。
理论
假如你的VxD和一些V86程序一起运行,如何传送大量数据到V86程序中或从V86程序中传送大量数据迟早是一个大问题。通过寄存器传送大量数据是不现实的。
- 分类:VC语言 查阅全文
- Iczelion 的 Win32Asm VxD 汇编教程 (二)
-
虚拟机管理器虚拟机管理器(VMM)是Windows 95的实际操作系统,它建立和维护一个管理虚拟机的框架,同时为其他vxd程序提供许多重要的服务。其中三种重要的服务是:
内存管理
中断处理
线程调度
内存管理VMM使用Intel 80386或更新的处理器的内存调页能力来为系统虚拟机创建一个32位的虚地址空间。它把这个地址空间分为四个不同的部分:
V86区 地址从0H
- 分类:VC语言 查阅全文
- Iczelion 的 Win32Asm VxD 汇编教程 (三)
-
虚拟设备驱动程序结构现在大家对vmm和vxd有了一定的了解,接下来我们来看一看如何编写vxd代码。首先,你必须具备Windows 95/98 Device Driver Development Kit。Window95 ddk只有MSDN 订户才能拿到,但Windows98 ddk却可以免费从Microsoft公司取得。尽管Windows 98 ddk是面向WDM的,但你还是可以用它来开发Vx
- 分类:VC语言 查阅全文
- Iczelion 的 Win32Asm VxD 汇编教程 (四)
-
VxD 程序设计入门We 我们在上一节学会了如何编写一个什么事也不做的VxD程序。在这一节里,我们要给它增加处理控制消息的功能。
VxD的初始化和结束VxD程序分为两种:静态的和动态的。每种的加载方法都不同,接受到的初始化和结束的控制消息也不同。
静态VxD:下列情况下,VMM加载一个静态VxD:
一个实模式常驻程序通过调用中断2FH,1605H,来调用此VxD。
此VxD
- 分类:VC语言 查阅全文
- 用时间差反跟踪
- 概述:
如果关掉中断,不仅仅是键盘不动了,时钟也不会走,所以可以利用时间差来反跟踪,具体方法是:先关掉中断,,再用当前时间作 key 加密,在执行一大堆指令后,偷偷地再用当前时间解密, 如果为了解密跳过关中断指令, 时间就会变化, 解密结果就会不对,然后...当然是死机啦 !
汇编编程示例:code segm
- 分类:VC语言 查阅全文
- Iczelion 的 Win32Asm VxD 汇编教程 (六)
- DeviceIoControl接口
在这一节中我们将要关于学习动态VXD,特别是如何创建,加载和使用。
点击这里下载例子
VxD接口
VxD总共提供了4种接口。
l VxD services &nb
- 分类:VC语言 查阅全文
- Iczelion 的 Win32Asm VxD 汇编教程 (八)
- 客户寄存器结构
我们将学习本教程中另外一个重要的结构,叫客户寄存器结构。在本文中,V86指虚拟8086模式。
理论
VxDs与正常的win32/win16/DOS应用程序有很大不同。大多数情况下,当其他应用程序正常工作时,它们是休眠的。它们象一个监管者一样工作,其作用是监视ring-3应用程序并在其出错时改正它们。下面是其工作时的典型的情况:
1、中断发生时2、VMM得到控制权时
- 分类:VC语言 查阅全文
- VB初级教程(第一章)
-
说在前面
今天我带大家做一个程序,以便让大家熟悉一下VB。 大家都已经安装上了VB了吧?没有可以下载啊!下载好,安装,接着往下看:(本教程中带下划线的句子为重点。应熟读背诵。本教程带考试。)
开始奋斗
首先启动VB(开始菜单
- 分类:VC语言 查阅全文
- 理解C++面向对象编程[多态性部分]
- [面向对象编程]
初次写文章,错误一定百出不止。我只是希望我学习面向对象编程的一些理解看法能对有关有共同爱好的人有一些小小用处,还谈不上帮助。
[文本涉及称谓说明]1.变量:这个称谓包括两个部分。内建类型实例(比如int,float,char等)用户自定义类型实例(比如类(class),联合(union),结构(struct)等)
同时本文有时候也泛泛的称变量和函数为程序成员.2.父类/子类
- 分类:VC语言 查阅全文
- C与C++中的异常处理13
- 1. 异常安全
接下来两次,我将讨论“异常安全”,C++标准中使用了(在auto_ptr中)却没有定义的术语。在C++范围内,不同的作者使用这个术语却表达不同的含义。在我的专题中,我从两个方面来定义“异常安全”:
l  
- 分类:VC语言 查阅全文
- 信息隐藏与数字水印技术
-
内容:
信息隐藏
数字水印
结 论
参考资料
关于作者
戴元军 ( [email protected])北京邮电大学信息安全中心博士2002 年 1 月
多媒体数据的数字化为多媒体信息的存取提供了极大的便利,同时也极大地提高了信息表达的效率和准确性。随着因特网的
- 分类:VC语言 查阅全文
- Windows CE/Pocket PC安装盘的制作
- Windows
- 分类:VC语言 查阅全文
- C++存储修饰符解释
- C++存储修饰符解释(纯理论部分)
在C++中,存储空间主要是指变量或者函数或者类(下文中为了方便都称为标识符)的可见性和使用范围。为此C++提供下面几个存储空间修饰(storageclassspecifiers),这些修饰符告诉编译器标识符的生存周期和可见性(可以理解为可引用性),以及这些标识符是应该如何被存储。
生存空间修饰符:autoregisterstaticextern本文分成几个部
- 分类:VC语言 查阅全文
- [补充]C++存储修饰符--生存空间详细解释
-
C++ names can be used only in certain regions of a program. This area is called the “scope” of the name. Scope determines the “lifetime” of a name that does not denote an object of static exte
- 分类:VC语言 查阅全文
- namescope
-
标题
[补充]C++存储修饰符--生存空间详细解释 zosatapo(收藏)
关键字
C++存储修饰符 scope
C++ names can be us
- 分类:VC语言 查阅全文
- CWinApp::CWinApp
-
CWinApp::CWinApp
CWinApp( LPCTSTR lpszAppName = NULL );
参数
lpszAppName
一个以null结尾的字符串,其中包含了Windows使用的应用程序的名字。如果没有提供这个参数,或者其值为NULL,CWinApp使用资源字符串AFX_IDS_APP_TITLE或可执行文件的文件名。
注释
构造一个CWinApp
- 分类:VC语言 查阅全文
- C与C++中的异常处理17
- 1. C++异常和Visual C++ SEH的混合使用
我在Part2介绍了Structured Exception Handling(简称SEH)。在那时我就说过,SEH是window及其平台上的编译器专有的。它不是定义在ISO C++标准中的,使用它的程序将不能跨编译器移植。因为我注重于标准兼容和可移植性
- 分类:VC语言 查阅全文
- C与C++中的异常处理15
- 1. 模板安全(续)
在异常安全的第二部分,我讲了在构造函数和析构函数中导致资源泄漏的问题。这次将探索另外两个问题。并且以推荐读物列表结束。
1.1 Problem #2:get
上次,我定义X::get()为:
T
- 分类:VC语言 查阅全文
- C与C++中的异常处理6
- 1. Microsoft对于<new>的实现版本中的异常处理
上次,我讲述了标准运行库头文件<new>中申明的12个全局函数中的异常行为。这次我将开始讨论Microsoft对这些函数的实现版本。
在Visual C++ 5中,标准运行库头文件<new>提供了这些申明:
n
- 分类:VC语言 查阅全文
- MFC文件复制的函数程序代码
- //复制文件的函数BOOL CommonCopyFile(CString SourceFileName, CString DestFileName){ CFile sourceFile ; CFile destFile ; CFileException ex; if (!sourceFile.Open((LPCTSTR)SourceFileName,CFil
- 分类:VC语言 查阅全文