
汇编及系统
b2b160
电子爱好者
展开
-
VC++数据库技术系列(三)DAO对象模型组成
<br />DAO对象模型组成 <br />DAO对象模型,也就是Data Access Object,它是一个针对Jet引擎的访问操作。所以对于Access数据库来说,使用DAO无疑是最佳首选。而MFC DAO是微软提供的用于访问Microsoft Jet数据库文件(*.mdb)的强有力的数据库开发工具,它通过对DAO的封装,向程序员提供了各种辅助类,从而大大降低了DAO对象使用复杂度。DAO模型通过多个DAO对象构成一个体系结构,在这个结构里,各个DAO对象协同工作。对应MFC DAO的对象如下所示:<原创 2010-06-15 00:55:00 · 1868 阅读 · 0 评论 -
在GUI程序中使用控制台的两种方法
1. 方法-1:内嵌式 顾名思义,我们主动在自己写的GUI程序中,创建一个控制台。 1.1 API在Windows 的API,提供一大族Console的函数(最无聊的,比如可以设置字符颜色:) ),AllocConsole用来直接为一个进程创建一个控制台。注意,一个进程只能有一个控制台:RemarksA process can be associated with转载 2009-08-26 16:52:00 · 2019 阅读 · 0 评论 -
漫谈兼容内核之一:ReactOS怎样实现系统调用
漫谈兼容内核之一:ReactOS怎样实现系统调用毛德操有网友在论坛上发贴,要求我谈谈ReactOS是怎样实现系统调用的。另一方面,我上次已经谈到兼容内核应该如何实现Windows系统调用的问题,接着谈谈ReactOS怎样实现系统调用倒也顺理成章,所以这一次就来谈谈这个话题。不过这显然不属于“漫谈Wine”的范畴,也确实没有必要再来个“漫谈ReactOS”,因此决定把除Wine以外的话题都纳入“漫谈转载 2009-06-16 10:11:00 · 1072 阅读 · 0 评论 -
令人感叹的非主流操作系统收藏
这里要谈的操作系统既非Windows,也非Mac OS X或Linux,也不是BSD或Solaris,我们要谈的这10个操作系统远没有那么主流。它们一般由一些技术狂人或小公司开发,它们的存在向我们展示了技术的各种可能。AmigaOS 4.12008年9月, AmigaOS 4.1发布。虽然AmigaOS 在操作系统行业行是个新手,但当前的版本已经是个完整的现代操作系统。AmigaOS只运行于特定的转载 2009-06-10 15:33:00 · 2515 阅读 · 0 评论 -
操作系统历史列表
早期操作系统(专利保护) TRS-DOS,ROM OS’s TI99-4 Commodore PET, 64, 和 VIC-20, 第一套IBM-PC Apple Sinclair Micro和QX等 非Unix商业操作系统CPM操作系统 MP/M-80 UCSD P-system Mini-FLEX SSB-DOS CP/M-86 DR-DO转载 2009-06-10 15:28:00 · 1705 阅读 · 0 评论 -
VC自带单元测试
发布日期 : 5/24/2005 | 更新日期 : 5/24/2005Mark MichaelisItron Corporation摘要:本演练通过测试驱动开发 (TDD) 和先测试-后编码 (test-then-code) 的方法学习单元测试。本页内容 简介 开始 创建测试 运行测试 检查异常 从数据库中加载测试数据 测试视图 (转载 2009-06-05 15:45:00 · 6752 阅读 · 1 评论 -
Windows基础调试器(BASIC DEBUGGER)
Windows提供了许多调试程序的方法.其中一个叫Basic Debug.提供了基础调试方法.他是一个事件驱动的调试方法.提供了简单调试功能.所谓事件驱动就是在相关调试事件发生时给调试器发送相关事件并由调试器对该事件采取适当的动作. 下面就来看看如何创建一个基础调试器.有两种方式运行基础调试器.1.其中一个方法是调试正在运行进程.要对运行中的进程进行调试,可以通过调用转载 2009-06-03 17:19:00 · 2199 阅读 · 0 评论 -
Win32调试API原理
来自《软件技术加密内幕》和chm版本不太一样 在Win32中自带了一些API函数,它们提供了相当于一般调试器的大多数功能,这些函数统称为Win32调试API(Win32 Debug API)。利用这些API可以做到加载一个程序或捆绑到一个正在运行的程序上以供调试;可以获得被调试的程序的底层信息,例如进程ID、进入地址、映像基址等;甚至可以对被调试的程序进行任意的修改,包括进程的内存原创 2009-06-04 17:59:00 · 14277 阅读 · 2 评论 -
关于分析FAT12/16/32文件系统的实验
首先对硬盘0磁头0柱面1扇区,也就是MBR(Main Boot Record)分析它自0X1BE处开始,16字节为一个数据结构,称为分区信息,具体格式请参考下面实例程序,一般有不超过4个.这个数据结构可以得到各个分区的始末CHS参数,方便对各个分区的读取.数据量较小,实例程序需要CCDOS中文支持,贴图为我的486 4.3G硬盘2个FAT分区.下一篇文章,将会进行BPB数据结构的转载 2009-07-30 18:10:00 · 2660 阅读 · 0 评论 -
关于分析FAT12/16/32文件系统的实验(2)
这节将会让我看到期待已经的效果,即读取根目录下的目录和文件,在fat16文件系统下,根目录是一个特殊的扇区,但是fat32则是普通的数据簇的第一个扇区,这是他们的区别之一。由于我对FAT32文件系统详细说明的白皮书领悟的尚不是太深,对于长文件名的读取,还有没完全领会,所以程序能够解析短文件名目录和文件,而且对部分区域还是有些影响。因此下面这个程序是不完整,不严谨的程序,大家拿来仅供对转载 2009-07-30 18:04:00 · 3348 阅读 · 0 评论 -
FAT12文件系统基本格式
一、基本数据分布|--------------------| 2879扇区 | 数据区(长度不固定) | |--------------------|------- | 根目录区(长度不固定,需计算) | |转载 2009-07-30 17:52:00 · 9419 阅读 · 2 评论 -
关于英文DOS下的汉字显示技术
一、汉字库结构及区位码 国家标准的汉字字符集(GB2312-80)在汉字系统中是以汉字库的形式提供的。汉字库中将汉字分成94个区,每个区有94个汉字,即所谓的“区”和“位”,每个汉字在字库中都有确定的区号和位号(用两个字节表示),这两个字节就叫做区位码。区位码的第一个字节表示区号,第二个字节表示位号。只要知道了汉字的区位码,就可以知道该汉字在汉字库中的位置。 二、汉字的内码转载 2009-07-28 16:13:00 · 2331 阅读 · 0 评论 -
如何写DOS下的设备驱动程序(一)
基本上我写的文章中的程序实例都是32位的,需要运行在保护模式下,但是不要祈求在DOS下可以写32位的设备驱动程序,因为DOS本身是16位实模式下的操作系统,当然其驱动程序的机制也只能是实模式下的,尽管在DOS下可以编写保护模式的程序,但这些程序亦可以通过DPMI调用实模式下的驱动程序,只是效率低一些,所以,按照DOS的规则编写设备驱动程序一样可以让你的32位保护模式下的程序使用。 D转载 2009-09-18 16:13:00 · 2679 阅读 · 0 评论 -
XP下开机回答问题才让使用的解决办法
那天看到论坛有人提出,XP系统开机回答几个问题才让使用的.心血来潮就做了下,不过还没最终完成,以后更新会在本文更新.目前还欠缺管理功能,大家测试后将在以后更新.在XP系统下测试了,Win7下的锁定未必能完美.大家测试后将把意见收集起来再对软件进行更新.程序下载http://download.youkuaiyun.com/source/2445758原文: {因家小孩要玩电脑,又不能太限制他,于是就想一个方法: 电脑开机时,回答10个问题(此回答的问题可以随机从预先设置在电脑的库中选取。这个库是我预先编制的内容,如开机原创 2010-06-10 16:35:00 · 4424 阅读 · 37 评论 -
DDK是什么,驱动是否都要用DDK写
<br /><br />准备开始window下的驱动开发了。<br />先转个文章热身热身,学前班。<br />DDK是什么,驱动是否都要用DDK写<br /> DDK是什么,驱动是否都要用DDK写 收藏 <br />DDK是Device Development Kit,设备开发包的意思。如果你想开发一个设备驱动程序,如显卡驱动程序,就必须使用DDK。DDK没有包括在VC++中,其主页为http://www.microsoft.com/whdc/devtools/ddk/default.mspx,通常需要转载 2010-06-09 11:36:00 · 6299 阅读 · 0 评论 -
2D模式下的alpha混合
alpha混合是一种常见的颜色处理,是把源点的颜色值和目标点的颜色值按照一定的算法进行运算,得到一个透明的效果.alpha混合的基本公式:result = ALPHA * srcPixel + ( 1 - ALPHA ) * destPixel其中: ALPHA:0到1之间的一个数,表示混合时的透明程度,为0的时候结果就是目标点的原值,为1的时候是源点的原值 srcPixel:源点颜色值转载 2009-10-23 14:55:00 · 1946 阅读 · 1 评论 -
Windows启动过程详解
我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。本文的适用范围随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件C转载 2009-10-19 09:35:00 · 2957 阅读 · 3 评论 -
驱动编写的全过程
驱动编写的全过程(上)2008-04-05 12:04目录: ☆ 概述 ☆ 编写hello.c文件 ☆ 编写dirs文件 ☆ 编写sources文件 ☆ 编写makefile文件 ☆ 编译产生hello.sys文件 ☆ 编写hello.inf文件 ☆ 安装hello.inf文件 ☆ 卸载hello.sys及相转载 2009-09-18 18:18:00 · 10799 阅读 · 0 评论 -
USB系列:列出你的USB设备
USB现在已经成为PC机必不可少的接口之一,几乎所有的设备都可以接在USB设备上,USB键盘、鼠标、打印机、摄像头,还有常用的U盘等等,从本篇文章开始,将集中篇幅介绍一下在DOS中使用USB设备的方法,具体会有几篇暂不好定,写到哪里算哪里吧,三、四篇总是少不了的。 本文介绍如何使用我以前文章中介绍过的知识在你的机器中找到USB设备,并判定设备类型。 一个USB系统一般由一个USB转载 2009-09-18 16:20:00 · 5455 阅读 · 0 评论 -
如何写DOS下的设备驱动程序(三)
本文我们拟给出一个RAM DISK的实际的设备驱动程序,并分析、解释,为下面我们完成DOS下的U盘驱动程序做准备,在提供源代码之前,我想我们必须先了解一下硬盘的结构,为了以后方便,我们索性直接介绍U盘的文件系统结构,因为它和硬盘基本是一样的。 和硬盘一样,U盘上的数据可大致分为5个部分:MBR区(Main Boot Record 主引导记录)、DBR区(DOS Boot Record转载 2009-09-18 16:16:00 · 2976 阅读 · 0 评论 -
如何写DOS下的设备驱动程序(二)
这篇文章是我写DOS设备驱动程序时临时决定加上的,或者对大家会有帮助。 为了能更好地让大家了解设备驱动程序,在这篇文章里,我打算介绍一个程序给大家,这个程序可以把DOS下的设备驱动程序一个一个地列出来,你可以清楚地看到每个驱动程序的入口地址、设备属性、下一个设备的入口地址、STRATEGY和INTERRUPT的入口地址、以及设备驱动程序的名称,从程序中,你可以清楚地体会到设备驱动程序转载 2009-09-18 16:15:00 · 1489 阅读 · 0 评论 -
进程间通讯的一些方法列举
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程转载 2009-07-23 17:04:00 · 900 阅读 · 0 评论 -
跟踪了解80X86实模式和保护模式转换的技术细节
一.编写实方式和保护方式切换演示程序;编译要点: 通过masm/link 生成exe文件,再用exe2bin转成.com文件;演示实方式和保护方式切换;----------------------------------------------------------------------------INCLUDE 386SCD.INC;-----------转载 2009-03-04 18:34:00 · 1192 阅读 · 0 评论 -
使用Delphi进行X86操作系统内核的开发实践
----- 老鳃 -------- Delphi作为WINDOWS平台下的RAD工具,其开发的高效性吸引了众多软件公司用来开发应用层软件,除了一般RAD所具备的高效性外,Delphi的开放性(开放源代码、方便深入底层)确实让众多的开发人员爱不释手,Delphi作为优秀的WINDOWS平台下的32位编译器,其用途是非常之广的,国外已经有不少组织利用Delphi来开发高级编译器、驱转载 2009-03-04 18:31:00 · 3069 阅读 · 1 评论 -
详谈HOOK API的技术
HOOK API是一个永恒的话题,如果没有HOOK,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠HOOK TextOut()或ExtTextOut()这两个函数实现的,在操作系统用这两个函数输出文本之前,就把相应的英文替换成中文而达到即时翻译;IFS转载 2009-03-04 18:23:00 · 881 阅读 · 0 评论 -
Softice入门
Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的动作),所以它工作于系统的0级(即特权级)。当在WINDOWS下用热键呼出Softice后,它就控制了整个系统,此时任何其它的程序(包括系统时钟)都将处于停止状态。 本文只是转载 2009-03-04 14:45:00 · 14187 阅读 · 2 评论 -
PE格式文件编译链接原理剖析
(*1*): 写程序。a.cpp 和 foo.cpp其中a.cpp的内容为:extern void Foo();void main(){ Foo();}foo.cpp的内容为:#include "stdio.h"void Foo(){ printf("I am Foo!");}编译程序产生a.obj foo.obj a.exe.(*2*):Copy以上3个文件到../Visu转载 2009-03-04 14:37:00 · 1334 阅读 · 0 评论 -
DOS可执行程序结构剖析[转载]
王德刚 朱锋 王德强摘要: 本文通过对.COM程序和.EXE程序加载时不同内存映象的研究进而得出:.COM程序只有一个物理段,段的最大长度为64KB:.COM程序只能从偏移地址为100H处开始执行。DOS对.EXE文件长度没有约束,便于组织大型应用程序;以及.EXE文件中用END启动标号来说明启动点,用PUSH DS来保存程序段前缀的段地址,用SUB AX,AX 和 PUSH转载 2009-03-06 17:34:00 · 1722 阅读 · 0 评论 -
NASM编译出PE文件[转]
代码可以直接编译..编译参数:nasmw -fbin MsgBoxA.asm -o MsgBoxA.exe请下载最新的NASM for Win32编译器当前最新版本:NASM 0.98.39代码:--------------------------------------------------------------------------------;>>>>>>>>>>>>>>>转载 2009-03-06 17:31:00 · 1664 阅读 · 0 评论 -
如何在VC++6.0下实现Unicode编程
1.在Project->Setting->Link->Output->Entry-point symbol加入一个Unicode的入口(Entry)"wWinMainCRTStartup";或者直接在CPP文件中加入"#pragma comment(linker, "/entry:/"wWinMainCRTStartup/" ")"就无需在Setting中做設置了。2.还需要在Projec转载 2009-03-04 14:06:00 · 1056 阅读 · 0 评论 -
进程中dll模块的隐藏
为了避免自己的某个dll模块被别人检测出来,有时候希望在自己加载一个dll之后,或者将dll注入到他人进程之后避免被检查出来。这就需要想办法抹掉这个dll的模块信息,使得Toolhelp、psapi等枚举模块的API无法枚举它。我们可以先简单看看Windows枚举进程内模块的办法吧:首先是BOOL EnumProcessModules( HANDLE hProcess, HMODULE转载 2009-03-02 15:00:00 · 1642 阅读 · 0 评论 -
一种躲避运行时代码校验的方法
我们有时候需要对运行中的程序打内存补丁,或者对它的代码挂一些钩子之类的工作。但是现在相当多软件进行了运行时的代码检测。一旦发现内存中的代码被修改掉,就会进行处理。本文介绍了一种比较特别的办法,用于通过这些检测。首先需要说一下做运行时代码校验的方法。一般来说,校验者需要取得当前模块的基地址,通过分析PE结构,获得代码节的偏移和大小,然后对内存中的代码进行CRC或者其他的一些校验。这其中有转载 2009-03-02 14:49:00 · 1544 阅读 · 0 评论 -
微软公司 Dino Esposito(BHO)
1原文:微软公司 Dino Esposito(BHO) 原文出处:Browser Helper Objects: The Browser the Way You Want It http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/bho.a转载 2009-03-02 10:49:00 · 1177 阅读 · 0 评论 -
如何手工抓取dump文件
在生产环境下进行故障诊断时,为了不终止正在运行的服务或应用程序,有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试。首先一种比较直观简洁的方式就是用WinDbg等调试器直接attach到需要调试的进程,调试完毕之后再detach即可。但是这种方式有个缺点就是执行debugger命令时必须先break这个进程,执行完debug命令之后又得赶紧F5让他继续运行,因为被你break住的转载 2009-03-03 09:59:00 · 5221 阅读 · 1 评论 -
Windows调试工具入门-2 设置
本篇介绍Windows调试工具的基本设置和基本操作方法。这里我们会用一个测试程序一步一步说明如何使用WinDbg开始调试工作。首先用VC建立一个名为TestDebug1的控制台项目,并生成它。 一、符号、源码和可执行映像路径设置 使用WinDbg开始调试工作之前,最重要的就是配置好各种环境了。这使得调试器可以正确识别调试目标中的各种变量、函数等等,使得我们能够进行符号化调试或者源码调试,而转载 2009-03-02 16:20:00 · 1168 阅读 · 0 评论 -
PE病毒技术剖析[转载]
任何语言只要表达能力足够强,都可用于编写PE病毒。但现存的绝大部分PE病毒都是直接用汇编编写的,一方面是因为汇编编译后的代码短小精悍,可以充分进行人工优化,以满足隐蔽性的要求;另外一方面之所以用汇编是因为其灵活和可控,病毒要同系统底层有时甚至是硬件打交道,由于编译器的特点不尽相同,用高级语言实现某些功能甚至会更加麻烦,比如用汇编很方便地就可以直接进行自身重定位、自身代码修改以及读写IO端口等操转载 2009-03-06 10:17:00 · 1480 阅读 · 0 评论 -
Delphi汇编级初探
----- 老鳃 -------- 考虑如下这个简单类ttestunit Unit1;interfaceusesWindows, SysUtils, Variants, Classes;typettest = classpublicj:integer;i:integer;function aa(b,c: integer):integer;stdcall;end;转载 2009-03-06 17:37:00 · 1082 阅读 · 0 评论 -
VC++中构建WDM开发环境
WDM(Win32 Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。 目前,用于WDM驱动程序开发的主要工具是Microsoft公司提供的DDK(Driver Development Kit),其中包含许多内核态函数及数转载 2009-03-04 15:05:00 · 1565 阅读 · 0 评论 -
ActiveXDLL免注册调用的方法
阿国哥的代码(找到链接后再补上),我稍微改良了一下,做绿色软件的朋友肯定用的到。IDE下可以引用那个dll使用。编译后可以在未注册dll的计算机上正常工作了。使用方法:Dim pDll As Long 记录Dll,用来最后完美释放Dim Update As Update.Handle 要实例化的对象Set Update = LoadObjectByName(App.Path转载 2009-04-23 11:15:00 · 1892 阅读 · 0 评论 -
揭开病毒的奥秘 DLL的远程注入技术详解
DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可转载 2009-04-02 09:42:00 · 959 阅读 · 0 评论