Ⅰ 用OD破解软件需先安装要破解的软件吗
OD使用教程 看完了你就什么都懂了
http://yunpan.cn/QG3VMswmT86Y8 请加分
Ⅱ 如何给程序脱壳
你这个问题太过于笼统,其实破解中的脱壳是一个非常复杂的过程,有些壳很容易脱掉,在网上也可以找到相应的脱壳机,有些复杂的壳就需要手动脱壳,我觉得脱壳也可以成为一门复杂的学科,毕竟要破解就要学会脱壳,以前我也曾经看过很多关于脱壳的文章和视频但是由于编程技术不是很好所以总是似是而非,有一日看到一个视频,终于有了一个脱壳的思路,留下你的邮箱我可以给发过去,或者你加我的号码240410420 ,这个视频的文字教程如下:
脱壳多种方法总结篇
一.脱壳基础知识要点
1.PUSHAD :(压栈) 代表程序的入口点
2.POPAD :(出栈) 代表程序的出口点,与PUSHAD想对应.看到这个,就说明快到OEP了.
3.OEP:程序的入口点,软件加壳就是隐藏OEP.而我们脱壳就是为了找OEP.
二.脱壳调试过程中辨认快到OEP的简单方法
下面二个条件是快到OEP的共同现象:
若出现下面情况时,说明OEP就要到了:
1. OD跟踪过程中如果发现:
popad
popfd
或
popad
2.同时,紧接着,有retn ,jmp等其它跳转指令,发生跨段跳跃时.
说明OEP马上到了.
三.脱壳必需牢记的要领
1.单步往前走,不要让程序向上走,遇到向上跳时,在下一句按F4,运行到所选.
2.刚载入程序,在附近就call时,我们按F7跟进去.
3.若跟踪时,运行某个call程序就运行时,这个call也用F7进入.
4.在跟踪时,出现比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN同时发生大跨段跳转时,说明很快就到OEP了.
四.常用脱壳方法总结
------------------
方法一:单步跟踪法
------------------
介绍:这是最通用的方法,对于未知壳,基本都用这种方法,这种方法过程比较麻烦,要一步一步的跟踪分析,要有一定的耐心.
1.用OD载入,选"不分析代码"
2.单步向下跟踪按F8,实现向下的跳.不让程序往回跳.
3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)
4.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易运行.
5.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入.
6.一般遇到很大的跳转(跨段跳),比如 jmp XXXXXX 或 JE XXXXXX 或有RETN的一般很快就会到程序的OEP。
-----------------
方法二:ESP定律法(ESP与EIP都为红色)
-----------------
介绍: 这种方法可以脱大部的压缩壳和少数加密壳,操作起来比较简单,脱壳速度也相对比较快.
1.开始就点F8向下走,注意观察OD右上角的寄存器中ESP有没突现(变成红色)
2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者hr
XXXXXXXX),按回车!
3.选中下断的地址,断点--->硬件访--->WORD断点。
4.按一下F9运行程序,直接来到了跳转处,按下F8向下走,就到达程序OEP。
-----------------
方法三:内存镜像法
-----------------
介绍:也是一种比较好用的脱壳方法,大部分的压缩壳和加密壳用内存镜像法能快速脱掉.非常实用.
1.用OD打开,设置选项——调试选项——异常,忽略所有异常(也就是把里面的忽略全部√上),然后CTRL+F2重载下程序!
2.按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点.
3.接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE,按F2下断点!然后按SHIFT+F9,直接到达程序OEP!
另外:加入内存模块中看到多个PE代码就从第一个PE下面的代码下断点,shift+F9,单步进行,看到INC 的地址,查找到这个地址一般就为程序入口,可能会因为有多个PE所以没有解密,单步进行知道程序返回到这个入口,然后脱壳
----------------
方法四:一步到OEP
----------------
介绍:这是一种巧方法,脱壳速度最快,前提是要知道这个壳的特征,利用这种壳的共性快速找到程序的OEP.这种方法只用于少数壳.
1.开始按Ctrl+F,输入:popad,然后按下F2下断,按F9运行到此处.
2.很快来到大跳转,按F8向下走,来到OEP.
----------------
方法五:利用内存异常(选项--异常,中下面勾都去掉)
----------------
shift+F9 几次 运行后记住运行了几次后打开的软件
重新导入,shift+F9 运行比刚才少一次,观察od右下角SE异常,记下前面地址,ctrl+G,输入这个地址
F2下断点,shift+F9运行到此处,取消断点然后单步F7跟踪到oep入口处,LE修改大小然后转存,然后用ImportRE修改OEP,然后将刚才转存的文件输入即可。
Ⅲ 什么是OD的浮点陷井
yj
Ⅳ od 下bp send 无效
send是什么东西?
你想做什么?你又不说清楚…
bp后面必须接一个api而且要写明是ascii还是unicode的
例如bp GetDlgItemTextA
bp MessageBoxW
具体要断哪个API看你要干什么
对了要注意大小写一定要准确
加分…
Ⅳ 0x771a6706指令引用的0xod20b6d7内存。该内存不能为“read"
使用Windows操作系统的人有时会遇到这样的错误信息:
““0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written””,然后应用程序被关闭。
如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的一般原因。
一、应用程序没有检查内存分配失败
程序需要一块内存用以储存数据时,就需要使用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的游标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用游标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。
二、应用程序由于自身BUG引用了不正常的内存光标
在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。如果系统经常有所提到的错误提示,下面的建议可能会有说明 :
1.检视系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,
从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。
有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。
3.试用新版本的应用程序。
Mode:
将虚拟内存撤换
答案:
目前为止是肯定的,也就是如在下次冷天到来时亦没再发生,就代表这是主因
追加:
如果你用 Ghost 恢复 OS 后建议 删除WINDOWS\PREFETCH目录下所有*.PF文件因为需让windows重新收集程序的物理地址
有些应用程序错误 "0x7cd64998" 指令参考的 "0x14c96730" 内存。该内存不能为 "read"推论是此原因
源由:
Win XP的“预读取”技术
这种最佳化技术也被用到了应用软件上,系统对每一个应用软件的前几次启动情况进行分析,然后新增一个描述套用需求的虚拟“内存映像”,并把这些信息储存到WINDOWSPREFETCH数据夹。一旦建立了映像,应用软件的装入速度大大提高。XP的预读取数据储存了最近8次系统启动或应用软件启动的信息。
后叙:
目前此方法亦是独步网络的(其码自己针对此问题查了许久),也是常见问题,原本几乎每天睡前关闭软件时一些程序都会发生...read...
现在就没发生了。
【文章二】
运行某些程序的时候,有时会出现内存错误的提示(0x后面内容有可能不一样),然后该程序就关闭。
“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
不知你出现过类似这样的故障吗?
一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
下面先说说硬件:
一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。
如果都没有,那就从软件方面排除故障了。
先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能将一斤的水,当你放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。
下面我从几个例子给大家分析:
例一:打开IE浏览器或者没过几分钟就会出现"0x70dcf39f"指令引用的"0x00000000"内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。 解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了6.0,自升级后,会被IE5.0代替。
例二:在windows xp下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。 解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\winnt\apppatch\slayerui.dll。右键,属性,也会出现兼容性的选项。
例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。 解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。
例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“0x060692f6”(每次变化)指令引用的“0xff000011”内存不能为“read”,终止程序请按确定。 解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。
例五:双击一个游戏的快捷方式,“0x77f5cd0”指令引用“0xffffffff”内 存,该内存不能为“read” ,并且提示Client.dat程序错误。 解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。
例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0x772b548f”指令引用的“0x00303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。 解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。
【原因 解决方法】
1 内存条坏了 更换内存条
2 双内存不兼容 使用同品牌的内存或只要一条内存
3 内存质量问题 更换内存条
4 散热问题 加强机箱内部的散热
5 内存和主板没插好或其他硬件不兼容 重插内存或换个插槽
6 硬件有问题 更换硬盘
7 驱动问题 重装驱动,如果是新系统,应先安装主板驱动
8 软件损坏 重装软件
9 软件有BUG 打补丁或更新到最新版本
10 软件和系统不兼容 给软件打上补丁或是试试系统的兼容模式
11 软件和软件之间有冲突 如果最近安装了什么新软件,卸载了试试
12 软件要使用其他相关的软件有问题 重装相关软件,比如播放某一格式的文件时出错,可能是这个文件的解码器有问题
13 病毒问题 杀毒
14 杀毒软件与系统或软件相冲突 由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试
15 系统本身有问题 有时候操作系统本身也会有BUG,要注意安装官方发行的更新程序,象SP的补丁,最好打上.如果还不行,重装系统,或更换其他版本的系统。
〔又一说〕
在控制面板的添加/删除程序中看看你是否安装了微软NET.Framework,如果已经安装了,可以考虑卸载它,当然如果你以后在其它程序需要NET.Framework时候,可以再重新安装。
另外,如果你用的是ATI显卡并且你用的是SP2的补丁(一些ATI的显卡驱动需要在NET.Framework正常工作的环境下)。这种情况你可以找一款不需要NET.Framework支持的ATI显卡驱动。
如果以上两种方法并不能完全解决问题,你试着用一下“IE修复”软件,并可以查查是否有病毒之类的。
〔微软NET.Framework升级到1.1版应该没问题了〕
〔还有一说〕
方法一:
微软新闻组的朋友指点:开始--运行:regsvr32 jscript.dll
开始--运行:regsvr32 vbscript.dll
不过没解决---但提供了路子-----一次运行注册所有dll
搜索查找到方法如下:
运行 输入cmd 回车在命令提示符下输入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
这个命令老兄你慢慢输 输入正确的话会看到飞快地滚屏 否则……否则失败就是没这效果。回车后慢慢等(需要点时间1-2分钟) 都运行完再打开看
方法二:
这是个典型问题~~~~~引起这个问题的原因很多。一般来讲就是给系统打上补丁和更换内存、给内存换个插槽这3种方法来解决。[系统补丁只要到Microsoft Update网站在线更新就可以了]
(偶见)
造成这种问题的原因很多,不能单纯的下结论,尽量做到以下几点可能对你有帮助:
1。确保使用的是未修改过的软件(非汉化、破解版)
2。使用改软件时尽量不要运行其他软件。(这是个临时文件,可能某些软件也在使用临时文件夹,所以产生干扰)
3。把那些什么桌面工具,内存整理工具通通关掉(你至少有2个类似的工具在运行)”
处理方法:
运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。
〔我个人的最后解决和看法〕
我今天尝试了多种办法,最后我发现问题出在微软的NET.Framework上面。我升级了这个软件,并打齐了补丁,短暂平安后,有出现“内存不能为read”的情况。后来我受上面文章的启发,卸载了微软的NET.Framework1.0和1.1,世界太平了。
另外:如果是打开“我的电脑”、“我的文档”等的时候出现上述情况,还有一种可能,就是你的右键菜单太臃肿了,此时只要清理右键菜单问题就解决了。
Ⅵ 谁能仔细介绍点DOS的常用命令
1.功能:创建新的子目录
2.类型:内部命令
3.格式:MD[盘符:][路径名]〈子目录名〉
4.使用说明:
(1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;
(2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。
例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。
C:、>MD FOX (在当前驱动器C盘下创建子目录FOX)
C:、>MD FOX 、USER (在FOX 子目录下再创建USER子目录)
(二)CD——改变当前目录
1.功能:显示当前目录
2.类型:内部命令
3.格式:CD[盘符:][路径名][子目录名]
4.使用说明:
(1)如果省略路径和子目录名则显示当前目录;
(2)如采用“CD、”格式,则退回到根目录;
(3)如采用“CD.。”格式则退回到上一级目录。
例:(1)进入到USER子目录;(2)从USER子目录退回到子目录;(3)返回到根目录。
C:、>CD FOX 、USER(进入FOX子目录下的USER子目录)
C:、FOX、USER>CD.。 (退回上一级根目录)
C:、FOX>CD、 (返回到根目录)
C:、>
(三)RD——删除子目录命令
1.功能:从指定的磁盘删除了目录。
2.类型:内部命令
3.格式:RD[盘符:][路径名][子目录名]
4.使用说明:
(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;
(2)不能删除根目录和当前目录。
例:要求把C盘FOX子目录下的USER子目录删除,操作如下:
第一步:先将USER子目录下的文件删空;
C、>DEL C:、FOX、USER、*。*
第二步,删除USER子目录。
C、>RD C:、FOX、USER
(四)DIR——显示磁盘目录命令
1.功能:显示磁盘目录的内容。
2.类型:内部命令
3.格式:DIR [盘符][路径]
[/W]
4.
使用说明:/P的使用;当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示;Press
any key to continue
/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。
PATH——路径设置命令
1.功能:设备可执行文件的搜索路径,只对文件有效。
2.类型:内部命令
3.格式:PATH[盘符1]目录[路径名1]{[;盘符2:],〈目录路径名2〉…}
4.使用说明:
(1)当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;
(2)PATH命令中的路径,若有两条以上,各路径之间以一个分号“;”隔开;
(3)PATH命令有三种使用方法:
PATH[盘符1:][路径1][盘符2:][路径2]…(设定可执行文件的搜索路径) PATH:(取消所有路径)
PATH:(显示目前所设的路径)
(六)TREE——显示磁盘目录结构命令
1.功能:显示指定驱动器上所有目录路径和这些目录下的所有文件名。
2.类型:外部命令
3.格式:TREE[盘符:][/F][》PRN]
4.使用说明:
(1)使用/F参数时显示所有目录及目录下的所有文件,省略时,只显示目录,不显示目录下的文件;
(2)选用>PRN参数时,则把所列目录及目录中的文件名打印输出。
(七)DELTREE——删除整个目录命令
1.功能:将整个目录及其下属子目录和文件删除。
2.类型:外部命令
3.格式:DELTREE[盘符:]〈路径名〉
4.使用说明:该命令可以一步就将目录及其下的所有文件、子目录、更下层的子目录一并删除,而且不管文件的属性为隐藏、系统或只读,只要该文件位于删除的目录之下,DELTREE都一视同仁,照删不误。使用时务必小心!!!
五、磁盘操作类命令
(一)formAT——磁盘格式化命令
1.功能:对磁盘进行格式化,划分磁道和扇区;同时检查出整个磁盘上有无带缺陷的磁道,对坏道加注标记;建立目录区和文件分配表,使磁盘作好接收DOS的准备。
2.类型:外部命令
3.格式:formAT〈盘符:〉[/S][/4][/Q]
4.使用说明:
(1)命令后的盘符不可缺省,若对硬盘进行格式化,则会如下列提示:WARNING:ALL DATA ON NON
——REMOVABLE DISK
DRIVE C:WILL BE LOST !
Proceed with format (Y/N)?
(警告:所有数据在C盘上,将会丢失,确实要继续格式化吗?)
(2)若是对软盘进行格式化,则会如下提示:Insert mew diskette for drive A;
and press ENTER when ready…
(在A驱中插入新盘,准备好后按回车键)。
(3)选用[/S]参数,将把DOS系统文件IO.SYS
、MSDOS.SYS及COMMAND.COM复制到磁盘上,使该磁盘可以做为DOS启动盘。若不选用/S参数,则格式化后的磙盘只能读写信息,而不能做为启动盘;
(4)选用[/4]参数,在1.2MB的高密度软驱中格式化360KB的低密度盘;
(5)选用[/Q]参数,快速格式化,这个参数并不会重新划分磁盘的磁道貌岸然和扇区,只能将磁盘根目录、文件分配表以及引导扇区清成空白,因此,格式化的速度较快。
(6)选用参数,表示无条件格式化,即破坏原来磁盘上所有数据。不加/U,则为安全格式化,这时先建立一个镜象文件保存原来的FAT表和根目录,必要时可用UNFORRMAT恢复原来的数据。
(二)UNformAT恢复格式化命令
1.功能:对进行过格式化误操作丢失数据的磁盘进行恢复。
2.类型:外部命令
3.格式:UNformAT〈盘符〉[/L]
[/TEST]
4.使用说明:用于将被“非破坏性”格式化的磁盘恢复。根目录下被删除的文件或子目录及磁盘的系统扇区(包括FAT、根目录、BOOT扇区及硬盘分区表)受损时,也可以用UNformAT来抢救。
(1)选用/L参数列出找到的子目录名称、文件名称、大孝日期等信息,但不会真的做formAT工作。
(2)选用/P参数将显示于屏幕的报告(包含/L参数所产生的信息)同时也送到打印机。运行时屏幕会显示:“Print out will
be sent to LPT1”
(3)选用/TEST参数只做模拟试验(TEST)不做真正的写入动作。使用此参数屏幕会显示:“Simulation only”
(4)选用/U参数不使用MIRROR映像文件的数据,直接根据磁盘现状进行UNformAT。
(5)选用/PSRTN;修复硬盘分区表。
若在盘符之后加上/P、/L、/TEST之一,都相当于使用了/U参数,UNformAT会“假设”此时磁盘没有MIRROR映像文件。
注意:UNformAT对于刚formAT的磁盘,可以完全恢复,但formAT后若做了其它数据的写入,则UNformAT就不能完整的救回数据了。UNformAT并非是万能的,由于使用UNformAT会重建FAT与根目录,所以它也具有较高的危险性,操作不当可能会扩大损失,如果仅误删了几个文件或子目录,只需要利用UNDELETE就够了。
三) CHKDSK——检查磁盘当前状态命令
1.功能:显示磁盘状态、内存状态和指定路径下指定文件的不连续数目。
2.类型:外部命令
3.格式:CHKDSK [盘符:][路径][文件名][/F][/V]
4.使用说明:
(1)选用[文件名]参数,则显示该文件占用磁盘的情况;
(2)选[/F]参数,纠正在指定磁盘上发现的逻辑错误;
(3)选用[/V]参数,显示盘上的所有文件和路径。
(四)DISKCOPY——整盘复制命令
1.功能:复制格式和内容完全相同的软盘。
2.类型:外部命令
3.格式:DISKCOPY[盘符1:][盘符2:]
4.使用说明:
(1)如果目标软盘没有格式化,则复制时系统自动选进行格式化。
(2)如果目标软盘上原有文件,则复制后将全部丢失。
(3)如果是单驱动器复制,系统会提示适时更换源盘和目标盘,请操作时注意分清源盘和目标盘。
(五)LABEL——建立磁盘卷标命令
1.功能:建立、更改、删除磁盘卷标。
2.类型:外部命令
3.格式:LABEL[盘符:][卷标名]
4.使用说明:
(1)卷标名为要建立的卷标名,若缺省此参数,则系统提示键入卷标名或询问是否删除原有的卷标名;
(2)卷标名由1至11个字符组成。
(六)VOL——显示磁盘卷标命令
1.功能:查看磁盘卷标号。
2.类型:内部命令
3.格式:VOL[盘符:]
4.使用说明:省略盘符,显示当前驱动器卷标。
(七)SCANDISK——检测、修复磁盘命令
1.功能:检测磁盘的FAT表、目录结构、文件系统等是否有问题,并可将检测出的问题加以修复。
2.类型:外部命令
3.格式:SCANDISK[盘符1:]{[盘符2:]…}[/ALL]
4.使用说明:
(1)CCANDISK适用于硬盘和软盘,可以一次指定多个磁盘或选用[/ALL]参数指定所有的磁盘;
(2)可自动检测出磁盘中所发生的交*连接、丢失簇和目录结构等逻辑上的错误,并加以修复。
(八)DEFRAG——重整磁盘命令
1.。功能:整理磁盘,消除磁盘碎块。
2.类型:外部命令
3.格式:DEFRAG[盘符:][/F]
4.使用说明:选用/F参数,将文件中存在盘上的碎片消除,并调整磁盘文件的安排,确保文件之间毫无空隙。从而加快读盘速度和节省磁盘空间。
(九)SYS——系统复制命令
1.功能:将当前驱动器上的DOS系统文件IO.SYS,MSDOS.SYS和COMMAND.COM 传送到指定的驱动器上。
2.类型:外部命令
3.格式:SYS[盘符:]
*使用说明:如果磁盘剩余空间不足以存放系统文件,则提示:No roomfor on destination disk
文件操作类命令
(一) COPY文件复制命令
1.功能:拷贝一个或多个文件到指定盘上。
2.类型:内部命令
3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]
4.使用说明:
(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;
(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;
(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;
(4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;
(5)COPY命令中源文件名必须指出,不可以省略。
(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;
(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;
(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;
(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY CON [盘符:][路径]〈文件名〉;
(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!
(二)XCOPY——目录复制命令
1.功能:复制指定的目录和目录下的所有文件连同目录结构。
2.类型:外部命令
3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E]
4.使用说明:
(1)XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;
(2)使用时源盘符、源目标路径名、源文件名至少指定一个;
(3)选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;
(4)选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。
(三)TYPE——显示文件内容命令
1.功能:显示ASCII码文件的内容。
2.类型:内部命令。
3.格式:TYPE[盘符:][路径]〈文件名〉
4.使用说明:
(1)显示由ASCII码组成的文本文件,对。EXE.COM等为扩展名的文件,其显示的内容是无法阅读的,没有实际意义2;
(2)该命令一次只可以显示一个文件的内容,不能使用通配符;
(3)如果文件有扩展名,则必须将扩展名写上;
(4)当文件较长,一屏显示不下时,可以按以下格式显示;TYPE[盘符:][路径]〈文件名〉|MORE,MORE为分屏显示命令,使用些参数后当满屏时会暂停,按任意键会继续显示。
(5)若需将文件内容打印出来,可用如下格式:
TYPE[盘符:][路径]〈文件名〉,>PRN
此时,打印机应处于联机状态。
(四) REN——文件改名命令
1.功能:更改文件名称
2.类型:内部命令
3.格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉
4.使用说明:
(1)新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名;
(2)允许使用通配符更改一组文件名或扩展名。
(五)FC——文件比较命令
1.功能:比较文件的异同,并列出差异处。
2.类型:外部命令
3.格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/C][/N]
4.使用说明:
(1)选用/A参数,为ASCII码比较模式;
(2)选用/B参数,为二进制比较模式;
(3)选用/C参数,将大小写字符看成是相同的字符。
(4)选用/N参数,在ASCII码比较方式下,显示相异处的行号。
(六)ATTRIB——修改文件属性命令
1.功能:修改指定文件的属性。(文件属性参见2.5.4(二)文件属性一节)
2.类型:外部命令。
3.格式:ATTRIB[文件名][R][——R][A][——A][H][——H][——S]
4.使用说明:
(1)选用R参数,将指定文件设为只读属性,使得该文件只能读取,无法写入数据或删除;选用——R参数,去除只读属性;
(2)选用A参数,将文件设置为档案属性;选用——A参数,去除档案属性; (3)选用H参数,将文件调协为隐含属性;选用——H参数,去隐含属性;
(4)选用S参数,将文件设置为系统属性;选用——S参数,去除系统属性; (5)选用/S参数,对当前目录下的所有子目录及作设置。
七) DEL——删除文件命令
1.功能:删除指定的文件。
2.类型:内部命令
3.格式:DEL[盘符:][路径]〈文件名〉
4.使用说明:
(1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;
(2)该命令不能删除属性为隐含或只读的文件;
(3)在文件名称中可以使用通配符;
(4)若要删除磁盘上的所有文件(DEL*·*或DEL·),则会提示:(Arey ou sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业。
(八) UNDELETE——恢复删除命令
1.功能:恢复被误删除命令
2.类型:外部命令。
3.格式:UNDELETE[盘符:][路径名]〈文件名〉[/DOS]/LIST][/ALL]
4.使用说明:使用UNDELETE可以使用“*”和“?”通配符。
(1)选用/DOS参数根据目录里残留的记录来恢复文件。由于文件被删除时,目录所记载斩文件名第一个字符会被改为E5,DOS即依据文件开头的E5和其后续的字符来找到欲恢复的文件,所以,UNDELETE会要求用户输入一个字符,以便将文件名字补齐。但此字符不必和原来的一样,只需符合DOS的文件名规则即可。
(2)选用/LIST只“列出”符合指定条件的文件而不做恢复,所以对磁盘内容完全不会有影响。
(3)选用/ALL自动将可完全恢复的文件完全恢复,而不一一地询问用户,使用此参数时,若UNDELTE利用目录里残留的记录来将文件恢复,则会自动选一个字符将文件名补齐,并且使其不与现存文件名相同,选用字符的优选顺序为:#%——0000123456789A~Z。
UNDELETE还具有建立文件的防护措施的功能,已超出本课程授课范围,请读者在使用些功能时查阅有关DOS手册。
七、其它命令
(一)CLS——清屏幕命令
1功能:清除屏幕上的所有显示,光标置于屏幕左上角。
2类型:内部命令
3格式:CLS
(二) VER查看系统版本号命令
1功能:显示当前系统版本号
2类型:内部命令
3格式:VER
(三) DATA日期设置命令
1功能:设置或显示系统日期。
2类型:内部命令
3格式:DATE[mm——dd——yy]
4使用说明:
(1)省略[mm——dd——yy]显示系统日期并提示输入新的日期,不修改则可直接按回车键,[mm——dd——yy]为“月月——日日——年年”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
(四) TIME系统时钟设置命令
1功能:设置或显示系统时期。
2类型:内部命令
3格式:TIME[hh:mm:ss:xx]
4使用说明:
(1)省略[hh:mm:ss:xx],显示系统时间并提示输入新的时间,不修改则可直接按回车键,[hh:mm:ss:xx]为“小时:分钟:秒:百分之几秒”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
(五)MEM查看当前内存状况命令
1功能:显示当前内存使用的情况
2类型:外部命令
3格式:MEM[/C][/F][/M]
4使用说明:
(1)选用/C参数列出装入常规内存和CMB的各文件的长度,同时也显示内存空间的使用状况和最大的可用空间;
(2)选用/F参数分别列出当前常规内存剩余的字节大小和UMB可用的区域及大小;
(3)选用/M参数显示该模块使用内存地地址、大小及模块性质;
(4)选用/P参数指定当输出超过一屏时,暂停供用户查看。
(六) MSD显示系统信息命令
1功能:显示系统的硬件和操作系统的状况。
2类型:外部命令
3格式:MSD[/S]
4使用说明:
(1)选用/I参数时,不检测硬件;
(2)选用/B参数时,以黑白方式启动MSD;
(3)选用/S参数时,显示出简明的系统报告。
ping命令详解
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-wz timeout] destination-list
Options:
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
-a Resolve addresses to hostnames.
解析计算机NetBios名。
示例:C:\>ping -a 192.168.1.21
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。
-n count Number of echo requests to send.
发送count指定的Echo数据包数。
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of data:
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Request timed out.
………………
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
Minimum = 40ms, Maximum = 51ms, Average = 46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
-l size Send buffer size.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
-f Set Don't Fragment flag in packet.
在数据包中发送“不要分段”标志。
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-i TTL Time To Live.
指定TTL值在对方的系统里停留的时间。
此参数同样是帮助你检查网络运转情况的。
-v TOS Type Of Service.
将“服务类型”字段设置为 tos 指定的值。
-r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)
Pinging 202.96.105.101 with 32 bytes of data:
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90
Ping statistics for 202.96.105.101:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。
-s count Timestamp for count hops.
指定 count 指定的跃点数的时间戳。
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。
-j host-list Loose source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k host-list Strict source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout Timeout in milliseconds to wait for each reply.
指定超时间隔,单位为毫秒。
此参数没有什么其他技巧。
ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
Ⅶ 为什么DEBUG版本正确,Release版本错误
一、Debug 和 Release 编译方式的本质区别
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)
Debug 版本:
/MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对
assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过
程中如果修改了源代码不需重新编译
/GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关,减少链接时间
Release 版本:
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数)
/GF 合并重复的字符串,并将字符串常量放到只读内存,防止
被修改
实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。
二、哪些情况下 Release 版会出错
有了上面的介绍,我们再来逐个对照这些选项看看 Release 版错误是怎样产生的
1. Runtime Library:链接哪种运行时刻函数库通常只对程序的性能产生影响。调试版本的 Runtime Library 包含了调试信息,并采用了一些保护机制以帮助发现错误,因此性能不如发布版本。编译器提供的 Runtime Library 通常很稳定,不会造成 Release 版错误;倒是由于 Debug 的 Runtime Library 加强了对错误的检测,如堆内存分配,有时会出现 Debug 有错但 Release 正常的现象。应当指出的是,如果 Debug 有错,即使 Release 正常,程序肯定是有 Bug 的,只不过可能是 Release 版的某次运行没有表现出来而已。
2. 优化:这是造成错误的主要原因,因为关闭优化时源程序基本上是直接翻译的,而打开优化后编译器会作出一系列假设。这类错误主要有以下几种:
(1) 帧指针(Frame Pointer)省略(简称 FPO ):在函数调用过程中,所有调用信息(返回地址、参数)以及自动变量都是放在栈中的。若函数的声明与实现不同(参数、返回值、调用方式),就会产生错误————但 Debug 方式下,栈的访问通过 EBP 寄存器保存的地址实现,如果没有发生数组越界之类的错误(或是越界“不多”),函数通常能正常执行;Release 方式下,优化会省略 EBP 栈基址指针,这样通过一个全局指针访问栈就会造成返回地址错误是程序崩溃。C++ 的强类型特性能检查出大多数这样的错误,但如果用了强制类型转换,就不行了。你可以在 Release 版本中强制加入 /Oy- 编译选项来关掉帧指针省略,以确定是否此类错误。此类错误通常有:
● MFC 消息响应函数书写错误。正确的应为
afx_msg LRESULT OnMessageOwn(WPARAM wparam, LPARAM lparam);
ON_MESSAGE 宏包含强制类型转换。防止这种错误的方法之一是重定义 ON_MESSAGE 宏,把下列代码加到 stdafx.h 中(在#include "afxwin.h"之后),函数原形错误时编译会报错
#undef ON_MESSAGE
#define ON_MESSAGE(message, memberFxn) { message, 0, 0, 0, AfxSig_lwl, (AFX_PMSG)(AFX_PMSGW)(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM) > (&memberFxn) },
(2) volatile 型变量:volatile 告诉编译器该变量可能被程序之外的未知方式修改(如系统、其他进程和线程)。优化程序为了使程序性能提高,常把一些变量放在寄存器中(类似于 register 关键字),而其他进程只能对该变量所在的内存进行修改,而寄存器中的值没变。如果你的程序是多线程的,或者你发现某个变量的值与预期的不符而你确信已正确的设置了,则很可能遇到这样的问题。这种错误有时会表现为程序在最快优化出错而最小优化正常。把你认为可疑的变量加上 volatile 试试。
(3) 变量优化:优化程序会根据变量的使用情况优化变量。例如,函数中有一个未被使用的变量,在 Debug 版中它有可能掩盖一个数组越界,而在 Release 版中,这个变量很可能被优化调,此时数组越界会破坏栈中有用的数据。当然,实际的情况会比这复杂得多。与此有关的错误有:
● 非法访问,包括数组越界、指针错误等。例如
void fn(void)
{
int i;
i = 1;
int a[4];
{
int j;
j = 1;
}
a[-1] = 1;//当然错误不会这么明显,例如下标是变量
a[4] = 1;
}
j 虽然在数组越界时已出了作用域,但其空间并未收回,因而 i 和 j 就会掩盖越界。而 Release 版由于 i、j 并未其很大作用可能会被优化掉,从而使栈被破坏。
3. _DEBUG 与 NDEBUG :当定义了 _DEBUG 时,assert() 函数会被编译,而 NDEBUG 时不被编译。除此之外,VC++中还有一系列断言宏。这包括:
ANSI C 断言 void assert(int expression );
C Runtime Lib 断言 _ASSERT( booleanExpression );
_ASSERTE( booleanExpression );
MFC 断言 ASSERT( booleanExpression );
VERIFY( booleanExpression );
ASSERT_VALID( pObject );
ASSERT_KINDOF( classname, pobject );
ATL 断言 ATLASSERT( booleanExpression );
此外,TRACE() 宏的编译也受 _DEBUG 控制。
所有这些断言都只在 Debug版中才被编译,而在 Release 版中被忽略。唯一的例外是 VERIFY() 。事实上,这些宏都是调用了 assert() 函数,只不过附加了一些与库有关的调试代码。如果你在这些宏中加入了任何程序代码,而不只是布尔表达式(例如赋值、能改变变量值的函数调用 等),那么 Release 版都不会执行这些操作,从而造成错误。初学者很容易犯这类错误,查找的方法也很简单,因为这些宏都已在上面列出,只要利用 VC++ 的 Find in Files 功能在工程所有文件中找到用这些宏的地方再一一检查即可。另外,有些高手可能还会加入 #ifdef _DEBUG 之类的条件编译,也要注意一下。
顺便值得一提的是 VERIFY() 宏,这个宏允许你将程序代码放在布尔表达式里。这个宏通常用来检查 Windows API 的返回值。有些人可能为这个原因而滥用 VERIFY() ,事实上这是危险的,因为 VERIFY() 违反了断言的思想,不能使程序代码和调试代码完全分离,最终可能会带来很多麻烦。因此,专家们建议尽量少用这个宏。
4. /GZ 选项:这个选项会做以下这些事
(1) 初始化内存和变量。包括用 0xCC 初始化所有自动变量,0xCD ( Cleared Data ) 初始化堆中分配的内存(即动态分配的内存,例如 new ),0xDD ( Dead Data ) 填充已被释放的堆内存(例如 delete ),0xFD( deFencde Data ) 初始化受保护的内存(debug 版在动态分配内存的前后加入保护内存以防止越界访问),其中括号中的词是微软建议的助记词。这样做的好处是这些值都很大,作为指针是不可能的(而且 32 位系统中指针很少是奇数值,在有些系统中奇数的指针会产生运行时错误),作为数值也很少遇到,而且这些值也很容易辨认,因此这很有利于在 Debug 版中发现 Release 版才会遇到的错误。要特别注意的是,很多人认为编译器会用 0 来初始化变量,这是错误的(而且这样很不利于查找错误)。
(2) 通过函数指针调用函数时,会通过检查栈指针验证函数调用的匹配性。(防止原形不匹配)
(3) 函数返回前检查栈指针,确认未被修改。(防止越界访问和原形不匹配,与第二项合在一起可大致模拟帧指针省略 FPO )
通常 /GZ 选项会造成 Debug 版出错而 Release 版正常的现象,因为 Release 版中未初始化的变量是随机的,这有可能使指针指向一个有效地址而掩盖了非法访问。
除此之外,/Gm /GF 等选项造成错误的情况比较少,而且他们的效果显而易见,比较容易发现。
三、怎样“调试” Release 版的程序
遇到 Debug 成功但 Release 失败,显然是一件很沮丧的事,而且往往无从下手。如果你看了以上的分析,结合错误的具体表现,很快找出了错误,固然很好。但如果一时找不出,以下给出了一些在这种情况下的策略。
1. 前面已经提过,Debug 和 Release 只是一组编译选项的差别,实际上并没有什么定义能区分二者。我们可以修改 Release 版的编译选项来缩小错误范围。如上所述,可以把 Release 的选项逐个改为与之相对的 Debug 选项,如 /MD 改为 /MDd、/O1 改为 /Od,或运行时间优化改为程序大小优化。注意,一次只改一个选项,看改哪个选项时错误消失,再对应该选项相关的错误,针对性地查找。这些选项在 Project\Settings... 中都可以直接通过列表选取,通常不要手动修改。由于以上的分析已相当全面,这个方法是最有效的。
2. 在编程过程中就要时常注意测试 Release 版本,以免最后代码太多,时间又很紧。
3. 在 Debug 版中使用 /W4 警告级别,这样可以从编译器获得最大限度的错误信息,比如 if( i =0 )就会引起 /W4 警告。不要忽略这些警告,通常这是你程序中的 Bug 引起的。但有时 /W4 会带来很多冗余信息,如 未使用的函数参数 警告,而很多消息处理函数都会忽略某些参数。我们可以用
#progma warning(disable: 4702) //禁止
//...
#progma warning(default: 4702) //重新允许
来暂时禁止某个警告,或使用
#progma warning(push, 3) //设置警告级别为 /W3
//...
#progma warning(pop) //重设为 /W4
来暂时改变警告级别,有时你可以只在认为可疑的那一部分代码使用 /W4。
4.你也可以像 Debug 一样调试你的 Release 版,只要加入调试符号。在 Project/Settings... 中,选中 Settings for "Win32 Release",选中 C/C++ 标签,Category 选 General,Debug Info 选 Program Database。再在 Link 标签 Project options 最后加上 "/OPT:REF" (引号不要输)。这样调试器就能使用 pdb 文件中的调试符号。但调试时你会发现断点很难设置,变量也很难找到——这些都被优化过了。不过令人庆幸的是,Call Stack 窗口仍然工作正常,即使帧指针被优化,栈信息(特别是返回地址)仍然能找到。这对定位错误很有帮助。
Ⅷ OD中的mov指令
MOV DWORD PTR DS:[D02B24],2
这个提示未知标识符,是因为D02B24,如果是字符A-F开头的请添加一个0,即
MOV DWORD PTR DS:[0D02B24],2
还有,你要修改这里,需要注意这条语句的长度。修改的指令长度比未修改的要长 ,会覆盖下一条指令。
Ⅸ 诚求爵迹1爵迹2完整版的 [email protected] 感谢!
临界·爵迹》郭敬明【全本完结完整版_umd】
内容介绍 R~(_m#6`:
故事发生在神迹的大陆,按照水、火、风、地四元素,分割成四个国家。各个国家的人民,在强烈的元素力量下,成为了具有各种魂力的人。灵魂是这个大陆上统治一切的力量,而统御着魂兽的王爵,是人们力量的终极蜃楼。而魂兽中的饕餮,是大陆永世不醒的梦魇。 ca8.8uHY\
有水源之称的亚斯蓝帝国,几乎从来杳无音迹的、像黑暗传说般存在的王爵们,在同一天,全部出现在了亚斯蓝...... R8R,!3 N
请跟随,这个叫麒零的少年,开始这场关于元素与灵魂力量的盛大冒险。2009年1月,《临界纪年》三部曲第一部《爵迹》强势登陆《最映刻》,挑战《小时代》人气巅峰。 (Y]G6> Oa
作品简介 KR/SMwy
特启动有着《幻城2》之称的新长篇小说——《爵迹》,在《最小说》连载《小时代2.0》的同时,《最映刻》将一直连载新故事《爵迹》,把读者带到欧洲中世纪的传奇故事中。 $9O%,U@
8年前,由郭敬明创作的奇幻长篇小说《幻城》红透大江南北,郭敬明也因此一举成名。8年后,在创作自己准备历时五年的“划时代作品”《小时代》的同时,开始撰写奇幻类故事《爵迹》。郭敬明日前提道:“自从出道的处女作《幻城》之后,就一直没碰过奇幻的题材,是因为觉得特别难写。此次《最小说》全面改版,想到在原创作计划之外,再写一部不同于《小时代》的新书作为贺礼,第一个跳出来的就是《爵迹》。8年过去了,觉得自己无论是在情节还是文笔上,都比以前有了很多进步,所以现在有信心再次挑战这种题材。” JD$;6Jv3P
作者简介 2:& [r*
姓名:郭敬明 p=8?hI/bim
出生:1983年6月6日 [\e2 ID;
来自:四川自贡 '; Z!(r
居住地:上海市 N b@zn0A(;
身高:155cm "#a,R ^J
血型:AB型 xu7Q^F#u
星座:双子座 4I^8f||b_
作品:《幻城》,《爱与痛的边缘》,《左手倒影,右手年华》,《1995--2005夏至未至》,《梦里花落知多少》,《悲伤逆流成河》,《小时代1.0折纸时代》,《小时代1.5青木时代》(与陌一飞合作漫画),《小时代2.0虚铜时代》,《爵迹》(连载中) Vtr5<:eEx
角色介绍 :IlJQ{=W
银尘 fbK`A?5K
【第七王爵】上代【天之使徒】 1 ojy_
魂兽:【雪刺】 @Iy&Qo
魂兽形态:蝎子 OwM.N+ z#T
魂器:【细长刺剑】【发光的镜子】 nJ-U*yz
天赋:无限魂兽魂器同调 h^$ c
虽然只是七度王爵,但根据【白银祭司】的说法,银尘身体里拥有两套灵魂回路,一套属于七度王爵,另一套则是作为第一使徒的时候所拥有的。因为不知名的原因,银尘现在只用七度王爵的回路,作为上任的【天之使徒】路西法,他坚信自己过去的王爵吉尔伽美什并没有死。 6:vdo~
特别介绍:上代【天之使徒】,与他同辈的【海之使徒】东赫、【地之使徒】格兰仕,银尘有着两套灵魂回路及天赋,在三年前的浩劫中,身受重伤,被三度王爵漆拉所救,由三位白银祭司封印了银尘第一王爵的灵魂回路,同时赐予银尘一种全新的以前从来没有过的灵魂回路,让银尘成为了七度王爵。在银尘需要时随时都可以重新恢复第一使徒的力量。 fer~NlX
麒零 L4L[@tMPmY
麒零 【第七使徒】 9c_h+XN?y
年龄:17 1 Xi.OGl
魂兽:【苍雪之牙】 >1n[Y- r
魂兽形态:银白色有翼狮子 ~'9>jpnw
魂器:【半刃巨剑】【女神的裙摆】 &_N$S2
天赋:无限魂兽魂器同调 u`2[V4=L
小村里长大的平凡少年,单纯善良,有时候有点脱线。遇到银尘后命运发生了翻天覆地的变化。已经获得了自己的魂兽和魂器,并且他在【魂冢】取得的魂器,像是藏有不为人知的秘密。出乎意料地属于受女性欢迎的那一型。 fmhqm"
吉尔伽美什 ^ |^Q(
上代【第一王爵】 a!US:^}lu
魂器:未知 /{9"O y7E
魂兽:未知 f2"1^M
魂兽形态:未知 voHFU#Z$
天赋:【四象极限】 0cwb^ffN
格兰仕 J~jR`2+r
上代【地之使徒】 O*ql!9}E{
魂兽:马 G-)Q*p{i|
魂器:未知 _8U 5mW
魂兽形态:未知 }sm PP*
天赋:【四象极限】 )lo;y~ o
上代的【地之使徒】,意为【地狱的使徒】。历代的地之使徒,都担负着收集亡灵的使命。他们就像是活在死亡地域上的黑色黄泉引路人,将每个死亡后拥有高级魂术师的亡灵,带回尤图尔遗迹,守护这里。格兰仕就是这样的亡灵收集者。 kT+I
东赫 #0WGSIht<
上代【海之使徒】【已死】 i@C1}o-/
魂器:未知 /@<&{_sybp
魂兽:【雪雁】 ue5C ]
魂兽形态:未知 avb'J^}f
天赋:【四象极限】 E8Jy!8/X9T
被特蕾娅瞬杀 f+/AD
修川地藏 MrW#~S|ED
【第一王爵】 \D9J!K82
魂器:未知 }W:Rg}v
魂兽:未知 ;PO{ ips
魂兽形态:未知 P9Yw\
天赋:未知 #^+C k HX
因为某种原因和自己的三位使徒一直没有离开【心脏】,具有压倒性的力量,据说是唯一可以对抗上代一度王爵吉尔伽美什的人 6`tc]a"#Zb
二度王爵 幽冥 g69^D
幽冥 【第二王爵】【杀戮王爵】【侵蚀者】 |4J ;s7us
魂兽:【诸神黄昏】 B#>7;xy>
魂兽形态:蜈蚣 4O TuX!
魂器:死灵镜面 D#=$? {w
天赋:摧毁魂兽和魂术师的爵印,吸收对方的灵魂回路 7Rba@ cs9
【杀戮王爵】,常喜欢出言挑衅其他王爵。因为与特蕾娅是同一代的【侵蚀者】,所以似乎关系不错。两个人的能力配合,可以十分有效地击杀敌人,两人曾在十二年前合力杀过魂兽【铜雀】。刚刚接到对银尘等六人的杀戮【红讯】 FN$sST
第二使徒 神音 kB2]Z}
神音 【第二使徒】【杀戮使徒】【侵蚀者】 f,jN"
魂兽:【织梦者】 p;y\%i_
魂兽形态:蜘蛛 U<YP@?w
魂器:束龙 ,ln=kj
天赋:依靠承受魂兽和魂术师的攻击,完善自身的灵魂回路 qZV.~F+
神音和第四使徒霓虹,同为幽冥和特蕾娅后一代的【侵蚀者】,自身具有一套新的灵魂回路,并未接受自己王爵的【赐印】,所以天赋与自己的王爵不同。 W~!uSrY
漆拉 n$*e(
【第三王爵】上上代【一度王爵】 U_&v|2o#3
魂器:未知 )K.'sX{B
魂兽:未知 Z\\'0yuY(
魂兽形态:未知 QY^v*+lr\
天赋:对于时间、空间超越极限的控制,表现为制造【棋子】,可随意释放阵,任意穿越空间和在极度消耗魂力的情况下短暂地穿越时间。 R v/=bY
拥有比女性还要精致的美貌的王爵,擅长精准地控制自己每一分魂力,操纵魂力仿佛是一个完美的艺术家,而且还隐藏着连【白银祭司】也不清楚的强大能力。十二年前,曾经是一度王爵。 Vx~N`|yY
说明:在七年前被降级成【三度王爵】,因此【海之使徒】束海、【地之使徒】藏河,被【杀戮王爵】幽冥杀害。 +o4W8f=Ga
鹿觉 )y .1}R2[
【第三使徒】上上代【天之使徒】 < %t$0'
魂器:未知 J;|i6q q
魂兽:未知 gK6_vS4K)
魂兽形态:未知 ?r%kif)
天赋:对时间空间的一种超越极限的控制 <CIy|&J6
英俊谦虚的青年,曾被誉为的亚斯兰最英俊的使徒,十分尊敬他的王爵漆拉。在七年前被幽冥和特蕾娅打成重伤,目前行踪不明。 u&Lp
特蕾娅 q=J8SvSRl
【第四王爵】【侵蚀者】 ^h5h kIx0
魂兽:未知 OngUZMgdb
魂器:【女神的裙摆】 V-N`R-FSr
魂兽形态:未知 3yXSv1
天赋:大范围且精准的魂力感知,甚至能从魂力的流动力感知到对手力量的弱点 xfFsW^w
说明:【天格】的操纵者。 C U 8s*
和幽冥同一代的【侵蚀者】,同时作为四度王爵也是负责传达讯息的【天格】的领导者。大部分时候是以为有点坏心眼的性感女性,出手的时候却十分残酷,也是王爵中少见的女爵。 iYR`|PJi
霓虹 D3 .$Vl,.
【第四使徒】【侵蚀者】 'X(Sn 3
魂器:未知 `}o{o
魂兽:未知 +j!$88%Z{
魂兽形态:未知 |k [ hk
天赋:对痛觉以及求生本能的丧失,不知道痛,也不惧怕任何对手,维持百分之百的魂力。 <%ZlJ_cM
但是因为不知名的原因,他不懂得人间的复杂道理,是一个只知道自己的名字,拥有动物本能和赤子之心的原始人。貌似对神音很有好感。 U+7!Vpq
鬼山缝魂 FS^ie|8{D-
上代【第五王爵】【已死】 hG!|ts
魂兽:【海银】 *m.4)2u=
魂兽形态:长着麒麟的身体和龙尾 'ngx\Lr
魂器:巨剑 eGE[4Z
天赋:大面积的驾驭魂兽,可催眠蛊惑一整个领域内的魂兽 *If ]f0?%
有颇强的责任感,尽忠职守,一直被幽冥追杀也从未放弃使命。在目睹了【白银祭司】的死亡后,开始对幕后的一切产生了怀疑,因此决定出发前往雷恩海域。 {+ @M!
说明:鬼山缝魂和鬼山莲泉是兄妹,他们的魂兽魂器可以互调。鬼山缝魂在第十二章【女神的裙摆】中已死。(不知道会不会像崇光一样复活) E As1 =
鬼山莲泉 VU ,tCTXz
【第五王爵】兼【第六王爵】 /}&@1
魂兽:【暗翅】【海银】 6e q`/~#
魂兽形态:银翼巨鹰 长着麒麟的身体和龙尾 O od?ifA
魂器:回生锁链 e,I{+ ^P
天赋:大面积的驾驭魂兽,可催眠蛊惑一整个领域内的魂兽 迅速重生和恢复能力,接近永生 yr, Oq~e
个性坚强的少女,善良坚韧。因为血缘的影响,可以使用兄长的魂器和魂兽。和天束幽花关系恶劣。 |:G`f8q9
说明:在哥哥鬼山缝魂和第六王爵西流尔死后,接受了第六王爵传承的灵魂回路,成为新的第五王爵和第六王爵,继承了【六度王爵】西流尔灵魂回路 "Qfw)!#
西流尔 +x:- W0C:
上代【第六王爵】【永生王爵】【已死】 ^ e4y:#Nu
魂器:未知 ^_o9%)RL(
魂兽:未知 BzyzOtBp3L
魂兽形态:未知 mvrg!/0w
天赋:迅速重生和恢复能力,接近永生。在海中结【阵】的时候几乎是不可消灭的 ,.PW qfb
说明:西流尔在第十二章【女神的裙摆】中将灵魂回路传给莲泉,从而结束了永生。 XJ9bY\>)q1
天束幽花 Ey**j
上代【第六使徒】与【第六王爵】之女 WTZr{)e
魂器:银色冰弓 '@ C\,E
魂兽:尚未捕获 Bvy(vc=UDW
天赋:恢复能力 -f!oq7U
出身高贵的郡主,任性、娇蛮、自私、自傲,也有些小女儿家的脾气,对麒零有些好感,但因为性格原因大部分时候口不对心。父亲是六度王爵西流尔。她的灵魂回路是由上代永生使徒给予。 G: p!PB>=
艾欧斯 冰帝 }iF"&b0n"
魂器:未知 u%`4;|tI
魂兽:未知 +""8aA
天赋:未知 )/1,Ogb%_
现在统治亚斯兰的皇帝,传说中他的能力和一度王爵修川地藏是并驾齐驱的,并且他身上的灵魂回路和王爵们身上的灵魂回路不一样。是皇室中唯一和王爵实力差不多的人 9azk(OL6
名词术语 (HZzA7eph
【奥汀大陆】 =5yI>A0
被分为东南西北四个国家。分别是:西方的水源【亚斯蓝帝国】、东方的火源【弗里艾尔帝国】、北方的风源【因德帝国】和南方面积最大也最神秘的地源【埃尔斯帝国】。 bWAVBF
【王爵】 Y)=89s&t
站在整个魂术世界最巅峰的七个人被称作是【王爵】,奥汀大陆被分为四个国家,每个国家都有七个【王爵】,并且只有七个。只有老的【王爵】死亡或者自动放弃【王爵】的身份了,才会有新的人成为【王爵】替补上去。【王爵】不会变多,也不会变少,永远都只有七个。【王爵】按照魂力有所区别,从第七度【王爵】到第一度【王爵】,魂力越来越强。而其中前三度【王爵】,在他们成为【王爵】之后,甚至是他们成为【王爵】之前,几乎所有人都不知道他们是谁、长什么样子。没有人知道他们的魂力究竟有多大,几乎也没有人看过他们的【魂兽】是什么样子。 jLEwFPz
【使徒】 '[h|f
【王爵】的继承者,拥有和【王爵】同样形状和位置的【爵印】,和【王爵】一样按照魂力有所区别,分为第一到第七【使徒】。每一个【王爵】只拥有一个【使徒】。一度【王爵】拥有三个使徒,分别以天使名字命名的。 ZJxUv {J
【魂兽】 J}-,!3qxW
拥有极高魂力的生物,有不同形态的存在,可以作为魂术者的武器。收服魂兽的过程需要魂术者将魂兽攻击至垂死状态,然后乘它魂力最弱的时候释放自己的魂力,将其吞噬。每一个魂术师最多只能同时拥有两个魂兽。其中【第一魂兽】寄居在魂术师身体内部,和魂术师关系最为密切。【第二魂兽】寄居在魂术师使用的【魂器】内部,与武器的强弱有关。 ~Z'3(n*9
【爵印】 JR C+>'}Xj
所有的魂术师身上,都会有一个印记,这个印记根据每个人使用的魂术不同,会出现在身体不同的位置上,也会有不同的形状。而其中【王爵】和他的【使徒】身上的这个印记,被称为【爵印】。【王爵】与自己的【使徒】两人,共同拥有同样的印记。【爵印】是魂术师魂力的最中心,也是他们最致命的地方,更是他们运用魂力时的出发点。而且,最重要的是,它是【魂兽】平时栖居的地方。 aiKZ$KLC
【赐印】 G^]7!:0
王爵把使徒寻找到之后,带回格兰尔特帝都,赐予使徒这个印记的仪式,叫做【赐印】。 f3+@u2Pv
【心脏】 z~/z>_y$nv
西之亚斯蓝帝国帝都中央的一座巨大圣堂,是皇室帝居住的中心。拥有无限的魂力磁场,高耸入云。 OgiE lA.
【预言之源】 @eRR#S
在【心脏】地底,以地面为对称中心线的地下,一座和【心脏】一摸一样的道理建筑,建筑的最深处,是【白银祭祀】的居住地,藏有从旷古一直延续至今的关于魂力的秘密,这个地方,被称为【预言之源】。 -$E_L :M
【白银祭司】 zUM;Qwl
在被水晶所包容的在【预言之源】里的,有两个男祭司和一个女祭司,他们的生命是一个永恒的谜,没有人知道他们活了多久,也没有人知道他们什么时候就存在在了这里。他们是三个唯一知道魂力秘密的人。对【王爵】有直接命令的权利。 /3! KfG
【瞬杀】 M%dXy^e
在魂术师的世界里,如果两个人的魂力级别相差太远,几乎于压倒性的优势的话,那么,强势的一边,是可以完全压抑对方的魂力使之无法释放,而在一瞬间就能杀死对方的。 gL(ny/Ob9
【魂器】 -bo5/`x
和魂术师有着紧密关系的武器。平时寄居在魂术师的身体里,战斗时从身体里取出。【魂器】同时也是【第二魂兽】寄居的场所。 %pNK ?M+
【魂冢】 1f]04TI
位于港口城市雷恩海域上的一个海底洞穴。是所有强力【魂器】产生的地方。成千上万件【魂器】如同果实般结在洞穴的岩壁上,并且随机消失、出现,没有任何规律。只有被【王爵】赐印之后的【使徒】才拥有进入【魂冢】的资格。并且每一个【使徒】一生只拥有一次进入【魂冢】的资格。【使徒】可以从【魂冢】里拿走一件【魂器】,然后此生永远无法再进入【魂冢】。 zo-hH8J:
【棋子】 [2UjY^\;T
遍布在奥汀大陆上的各种物体。有些是神像,有些是建筑的大门,有些是祭坛,有些甚至是平常的一个摆设。每一个【棋子】都能够使接触到它的人,被瞬间转移到【棋子】所连接到的那个场所,是奥汀大陆上的时空之门。 ErK5iTSD
【黄金魂雾】 kzqW&`xn?
黄金魂雾是魂力的实体化。魂力弥漫在这个世界上的每一个地方,区别在于浓度。当使用魂术时,身体上的金色刻纹,是【黄金魂雾】在体内流动时产生的效果。因为极其高的密度和在我们身体里流动时所产生的能量,所以能够被肉眼看见。而平时【黄金魂雾】是用肉眼看不见的,只有用“希斯雅”果实的汁液洗过瞳孔才能看见。 wR\Y+Z
没有人知道黄金魂雾的真正来源,我们只能知道哪里的【黄金魂雾】比较浓厚粘稠,哪里又比较稀薄。 05mjV6j7m
【天格?讯息】 vT V'D&x2
亚斯蓝领土上出现的各种各样关于魂术世界的讯息,都是由白银祭祀发布的,比如在什么地方什么时候会有高级魂兽出现,或者什么地方出现了大面积的魂兽暴乱等等,各种讯息都会由四度王爵来向全国传递,而四度王爵在全国建立起来的,由无数信使们组成的机构叫做【天格】。这些对全国传递的讯息里,最基本的叫作【绿讯】,是全国所有的魂术师都可以知晓的;而带有残杀色彩的讯息,比如对某个叛乱魂术世家的讨伐,或者对亚斯蓝领土上带有恶意的国外魂术师们的猎杀,都成为【红讯】;而所有讯息里级别最高的一种,只限在王爵和使徒中传达的,叫做【白讯】。 C9[Jr)QX
【天赋】 e`%U}_[d
王爵和使徒因为灵魂回路的独特刻纹而带有的不同的能力。一般来说,王爵和自己使徒所拥有的天赋一致,但是这条原则不适用于侵蚀者 Y<0;;tVf4U
【第一王爵】 eXY*l>B
第一王爵虽指的是人,但是和其他王爵有不同之处,在这里介绍一下。 V&U1WV/
第一王爵除了拥有称霸天下的灵魂回路之外,他还有一个和其他王爵的不同之处--拥有三个使徒,每个使徒都继承了他那种具有压倒性的,凌驾于一切生灵之上的灵魂回路和他至今未被别人知道的【天赋】。并且,没有人知道哪个使徒会是他的继承者,不到第一王爵死的那一刻,或者他主动退位的那一刻,谁都不知道下一个第一王爵会是谁。而三个使徒都以天使的名字命名,分别是【海之使徒】雾涅尔,【地之使徒】米迦勒,还有就是【天之使徒】路西法。 ld8E!t[
【阵】 -&JUg o=
王爵和使徒身体里灵魂回路的一种外在表现形式。在战斗或需要大量魂力消耗的时候,会在身体外部,复制出另外一套灵魂回路。处在【阵】范围之内,魂力流动会和【阵】的回路相呼应,从而让魂力和天赋都会得到几何倍数的增长。但是,【阵】的使用非常困难,它需要拥有非常多的匹配你魂力属性的介质才能制作成功。 ,U+y)w]ar
【黑暗状态】 {3F;:%$`c
指主人和魂兽合体,极度危险,往往无法控制自己的思想(第一册中附有银尘黑暗状态的插图 为蝎身人面 格兰仕为马身人面) fvn`$
【侵蚀者】 P` Hxj> {
所谓的【侵蚀者】,其实和被赐印的使徒在基本性质上是一样的,使徒是被王爵赐予与王爵相同的灵魂回路,而【侵蚀者】是从出生就在身体里被种植了各种灵魂回路的试验品。每一代【侵蚀者】有几百个,这几百个婴儿不断长大,有些因为体内种植下的灵魂回路并不完善而死亡,有些因为灵魂回路太过变态和黑暗,也活不下来。并且,这些【侵蚀者】彼此都会互相残杀,最后能留下来的,一般都不超过两三个,也是最强的两三个。【侵蚀者】身体里的灵魂回路,是亚斯蓝领域上,从来没有出现过的,崭新的回路,所以,他们的力量、他们的天赋,都和以前的王爵不一样。他们的使命,就是对王爵的杀戮,他们要做的,就是维持七个王爵,永远都是亚斯蓝魂力的巅峰。如果【侵蚀者】能够杀死某一个王爵,那么,就证明他的灵魂回路和魂力,在【侵蚀者】之下,他就不足以继续成为亚斯蓝的王爵,而相反,【侵蚀者】死在王爵的手下的话,就证明【侵蚀者】身上种植出的新的灵魂回路并不是那么的强大,是失败的试验品(神音、幽冥、特蕾娅、霓虹都是【侵蚀者】)
Ⅹ 电脑蓝屏的代码OXOOOOOOOD1(OXOO39BA7O,OXOOOOOOO2,OXOOOOOOO,OXABC6B8CF)
一.y0x0000000A:IRQL_NOT_LESS_OR_EQUAL ◆错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模式中存在以太高的进程内部请求级别(IRQL)访问其没有权限访问的内存地址. 三.0x0000001A:MEMORY_MANAGEMENT ◆错误分析:这个内存管理错误往往是由硬件引起的, 比如: 新安装的硬件、内存本身有问题等. ◇解决方案:如果是在安装Windows时出现, 有可能是由于你的电脑达不到安装Windows的最小内存和磁盘要求. 四.0x0000001E:KMODE_EXCEPTION_NOT_HANDLED ◆错误分析:Windows内核检查到一个非法或者未知的进程指令, 这个停机码一般是由问题的内存或是与前面0x0000000A相似的原因造成的. ◇解决方案: (1)硬件兼容有问题:请对照前面提到的最新硬件兼容性列表, 查看所有硬件是否包含在该列表中. (2)有问题的设备驱动、系统服务或内存冲突和中断冲突: 如果在蓝屏信息中出现了驱动程序的名字, 请试着在安装模式或者故障恢复控制台中禁用或删除驱动程序, 并禁用所有刚安装的驱动和软件. 如果错误出现在系统启动过程中, 请进入安全模式, 将蓝屏信息中所标明的文件重命名或者删除. (3)如果错误信息中明确指出Win32K.sys: 很有可能是第三方远程控制软件造成的, 需要从故障恢复控制台中将对该软件的服务关闭. (4)在安装Windows后第一次重启时出现:最大嫌疑可能时系统分区的磁盘空间不足或BIOS兼容有问题. (5)如果是在关闭某个软件时出现的:很有可能时软件本省存在设计缺陷, 请升级或卸载它 五.0x00000023:FAT_FILE_SYSTEM 0x00000024:NTFS_FILE_SYSTEM ◆错误分析:0x00000023通常发生在读写FAT16或者FAT32文件系统的系统分区时, 而0x00000024则是由于NTFS.sys文件出现错误(这个驱动文件的作用是容许系统读写使用NTFS文件系统的磁盘). 这两个蓝屏错误很有可能是磁盘本身存在物理损坏, 或是中断要求封包(IRP)损坏而导致的. 其他原因还包括:硬盘磁盘碎片过多; 文件读写操作过于频繁, 并且数据量非常达或者是由于一些磁盘镜像软件或杀毒软件引起的. ◇解决方案: 第一步:首先打开命令行提示符, 运行\\"Chkdsk /r\\"(注:不是CHKDISK, 感觉象这个, 但是……)命令检查并修复硬盘错误, 如果报告存在坏道(Bad Track), 请使用硬盘厂商提供的检查工具进行检查和修复. 第二步:接着禁用所有即使扫描文件的软件, 比如:杀毒软件、防火墙或备份工具. 第三步:右击C:\\winnt\\system32\\drivers\\fastfat.sys文件并选择\\"属性\\", 查看其版本是否与当前系统所使用的Windows版本相符.(注:如果是XP, 应该是C:\\windows\\system32\\drivers\\fastfat.sys) 第四步:安装最新的主板驱动程序, 特别IDE驱动. 如果你的光驱、可移动存储器也提供有驱动程序, 最好将它们升级至最新版. 六.0x00000027:RDR_FILE_SYSTEM ◆错误分析:这个错误产生的原因很难判断, 不过Windows内存管理出了问题很可能会导致这个停机码的出现. ◇解决方案:如果是内存管理的缘故, 通常增加内存会解决问题. 七.0x0000002E:DATA_BUS_ERROR ◆错误分析:系统内存存储器奇偶校验产生错误, 通常是因为有缺陷的内存(包括物理内存、二级缓存或者显卡显存)时设备驱动程序访问不存在的内存地址等原因引起的. 另外, 硬盘被病毒或者其他问题所损伤, 以出现这个停机码. ◇解决方案: (1)检查病毒 (2)使用\\"chkdsk /r\\"命令检查所有磁盘分区. (3)用Memtest86等内存测试软件检查内存. (4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍. 八.0x00000035:NO_MORE_IRP_STACK_LOCATIONS ◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题. 其实这个故障的真正原因应该时驱动程序本省存在问题, 或是内存有质量问题. ◇解决方案:请使用前面介绍的常规解决方案中与驱动程序和内存相关的方案进行排除. 九.0x0000003F:NO_MORE_SYSTEM_PTES ◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出操作, 造成内存管理出现问题: 有缺陷的驱动程序不正确地使用内存资源; 某个应用程序(比如:备份软件)被分配了大量的内核内存等. ◇解决方案:卸载所有最新安装的软件(特别是哪些增强磁盘性能的应用程序和杀毒软件)和驱动程序. 十.0x00000044:MULTIPLE_IRP_COMPLIETE_REQUESTS ◆错误分析:通常是由硬件驱动程序引起的. ◇解决方案:卸载最近安装的驱动程序. 十一.0x00000050:PAGE_FAULT_IN_NONPAGED+AREA ◆错误分析:有问题的内存(包括物理内存、二级缓存、显存)、不兼容的软件(主要是远程控制和杀毒软件)、损坏的NTFS卷以及有问题的硬件(比如:PCI插卡本身已损坏)等都会引发这个错误. 字串2 ◇解决方案:请使用前面介绍的常规解决方案中与内存、软件、硬件、硬盘等相关的方案进行排除. 十二.0x00000051:REGISTRY_ERROR ◆错误分析:这个停机码说明注册表或系统配置管理器出现错误, 由于硬盘本身有物理损坏或文件系统存在问题, 从而造成在读取注册文件时出现输入/输出错误. ◇解决方案:使用\\"chkdsk /r\\"检查并修复磁盘错误. 十三.0x00000058:FTDISK_INTERNAL_ERROR ◆错误分析:说明在容错集的主驱动发生错误. ◇解决方案:首先尝试重启电脑看是否能解决问题, 如果不行, 则尝试\\"最后一次正确配置\\"进行解决. 十四.0x0000005E:CRITICAL_SERVICE_FAILED ◆错误分析:某个非常重要的系统服务启动识别造成的. ◇解决方案:如果是在安装了某个新硬件后出新的, 可以先移除该硬件, 并通过网上列表检查它是否与Windows 2K/XP兼容, 接着启动电脑, 如果蓝屏还是出现, 请使用\\"最后一次正确配置\\"来启动Windows, 如果这样还是失败, 建议进行修复安装或是重装. 十五.0x0000006F:SESSION3_INITIALIZATION-FAILED ◆错误分析:这个错误通常出现在Windows启动时, 一般是由有问题的驱动程序或损坏的系统文件引起的. 字串7 ◇解决方案:建议使用Windows安装光盘对系统进行修复安装. 十六.0x00000076:PROCESS_HAS_LOCKED_PAGES ◆错误分析:通常是因为某个驱动程序在完成了一次输入/输出操作后, 没有正确释放所占有的内存 ◇解决方案: 第一步:点击开始-->运行:regedt32, 找到[HKLM\\SYSTEM\\Currentcontrol set\\control\\session manager\\memory management], 在右侧新建双字节值\\"TrackLockedPages\\", 值为1. 这样Windows便会在错误再次出现时跟踪到是哪个驱动程序的问题. 第二步:如果再次出现蓝屏, 那么错误信息会变成: STOP:0x0000000CB(0xY,0xY,0xY,0xY)DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS 其中第四个\\"0xY\\"会显示为问题驱动程序的名字, 接着对其进行更新或删除. 第三步:进入注册表, 删除添加的\\"TrackLockedPages\\". 十七.0x00000077:KERNEL_STACK_INPAGE_ERROR ◆错误分析:说明需要使用的内核数据没有在虚拟内存或物理内存中找到. 这个错误常常于是着磁盘有问题, 相应数据损坏或受到病毒侵蚀. ◇解决方案:使用杀毒软件扫描系统; 使用\\"chkdsk /r\\"命令检查并修复磁盘错误, 如不行则使用磁盘厂商提供的工具检查修复. 字串6 十八.0x0000007A:KERNEL_DATA_INPAGE_ERROR ◆错误分析:这个错误往往是虚拟内存中的内核数据无法读入内存造成的. 原因可能是虚拟内存页面文件中存在坏簇、病毒、磁盘控制器出错、内存有问题. ◇解决方案:首先用升级为最新病毒库杀毒软件查杀病毒, 如果促无信息中还有0xC000009C或0xC000016A代码, 那么表示是坏簇造成的, 并且系统的磁盘检测工具无法自动修复, 这时要进入\\"故障恢复控制台\\", 用\\"chkdsk /r\\"命令进行手动修复. 十九.0x0000007B:INACESSIBLE_BOOT_DEVICE ◆错误分析:Windows在启动过程中无法访问系统分区或启动卷. 一般发生在更换主板后第一次启动时, 主要是因为新主板和旧主板的IDE控制器使用了不同芯片组造成的. 有时也可能是病毒或硬盘损伤所引起的. ◇解决方案:一般只要用安装光盘启动电脑, 然后执行修复安装即可解决问题. 对于病毒则可使用DOS版的杀毒软件进行查杀(主战有kv2005DOS版下载). 如果是硬盘本身存在问题, 请将其安装到其他电脑中, 然后使用\\"chkdsk /r\\"来检查并修复磁盘错误. 二十.0x0000007E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED ◆错误分析:系统进程产生错误, 但Windows错误处理器无法捕获. 其产生原因很多, 包括:硬件兼容性、有问题的驱动程序或系统服务、或者是某些软件. 字串9 ◇解决方案:请使用\\"事件查看器\\"来获取更多的信息, 从中发现错误根源. 二一.0x0000007F:UNEXPECTED_KERNEL_MOED_TRAP ◆错误分析:一般是由于有问题的硬件(比如:内存)或某些软件引起的. 有时超频也会产生这个错误. ◇解决方案:用检测软件(比如:Memtest86)检查内存, 如果进行了超频, 请取消超频. 将PCI硬件插卡从主板插槽拔下来, 或更换插槽. 另外, 有些主板(比如:nForce2主板)在进行超频后, 南桥芯片过热也会导致蓝屏, 此时为该芯片单独增加散热片往往可以有效解决问题