WINHEX高级专题第一讲

上传人:桔**** 文档编号:457702754 上传时间:2022-12-22 格式:DOC 页数:12 大小:320.50KB
返回 下载 相关 举报
WINHEX高级专题第一讲_第1页
第1页 / 共12页
WINHEX高级专题第一讲_第2页
第2页 / 共12页
WINHEX高级专题第一讲_第3页
第3页 / 共12页
WINHEX高级专题第一讲_第4页
第4页 / 共12页
WINHEX高级专题第一讲_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《WINHEX高级专题第一讲》由会员分享,可在线阅读,更多相关《WINHEX高级专题第一讲(12页珍藏版)》请在金锄头文库上搜索。

1、困惑的浪漫(高志鹏 #)一年来,由于工作繁忙,对数据恢复技术的研究已经是有心无力,更无暇顾及 教程的更新和业内诸位兄弟的请教。在此还望大家多多原谅。高某人会计专业出身,凭着对计算机科学的满腔热忱和一点点天赋,义无反顾 地投入其中。刚入行的日子里,干过数据恢复、硬件维修、编程、软件架构、 网络攻防、电子取证,如今又回到数据恢复,工作经 历可谓五花八门。当时有 人曾指责我三心二意,没有抓住数据恢复这个新兴产业一路拼杀下去,没有向 大师的巅峰迈进。今天,回首走过的路,我并不后悔,我更深刻的体会到计算机各分支学科间相 辅相成的微妙关系,我原先的公司有人号称数据分析专家,却连一块硬盘都拆 不下来;有人号

2、称软件开发高手,承担着国家多重大的研发任务,却因为对NTFS 一窍不通,而导致竞标答辩失败,毁了整个年度项目;有人号称信息安全系统 分析师,却看不出一张拓扑图中显眼的错误。看来,“术业有专攻”并不适用于计算机行业,计算机 各个分支在走向融合,如 果你忽视任何一部分,就有可能在追求梦想的脚步上停滞不前。我要表达的是:不希望大家都成为“专业的数据恢复工程 师”,而是展开计算机 技术的多面手,让多种技能共同促进。学了驱动编程,你就发现数据恢复软件 无非是一堆API函数和ATA指令的集合;学了操作系统内核,你就会明白,那 些苦苦求来的珍贵文件系统资料,竟然是一组组已经开源的网上随处可见的操 作系统数据

3、结构的文字表达。当然,一切源于决心和努力。最近,我在网上看到有人为数据恢复行业的 前景担忧,其实这大可不必,只要 你不断学习,境界超过大众,自然就跳出了那残酷的市场竞争,笑看凡尘。数 据恢复还有很多未开辟的净土等着各位去探索,不要悲观。放弃的人其实就是 被淘汰的人。我相信,业内的大部分人都和我一样二十岁出头,要说没有学习 的时间和精力,还为时过早。青春就是用来学习的。言归正传,今天开始的教程还是离不开WINHEX ,但是教学难度有所增加,如 果你有编程基础,那学习过程将会非常轻松有趣。因为有研发任务,我不能保 证会定期续写这个教程,但有时间就会写。困惑的浪漫(高志鹏)第一讲语言和变量(1)学过

4、C的读者都知道,一段完整的,功能化的C代码,起码由一组函数和数据 结构组成。如果升华到C+、C#、JAVA等就会引入更高级的类型概念。对类型 的强制规范和区别,是C系列语言的根本特征,所以它们也被称为“强类型语 主”言 。先从最低级的C说起,我们最先学习的往往是编译器自带的基础类型,如int, long,char等,更多的人称它们为变量,因为在学习C的阶段,很少有人会有 明晰的“类型概念”。到了 C+时期,MFC编程不可避免地用到类,后来C#作 为纯粹的面向对象语言,更是把类的作用发挥到了极致。有人说,面向对象比 面向过程简单,这是个误区。只能说,面向对象比面向过程的重复利用率高, 出错率低,

5、无形中加快了开发速读,给人们留下了“简单”的印象。其实,面 向对象使人们把精力更多放在功能设计上,是一种更高级的思维方式。我可以 负责任地说:一个在指针和内存的海洋里游走的人永远摆脱不了程序员的帽子, 而一个与类打交道的人则很可能朝架构师的行列迈进。因为,面向过程的目的 是让代码编译通过,大量的繁琐工作(调试、垃圾回收)只是为了保证代码的 正确率,而面向对象则对功能优劣,开发效率等实用方向关注更多。随着WEB编程的兴起,更多人开始关注脚本语言,脚本的本质我不想分析太多, 但有一点是共同的,它们都是依附于特定平台,为完成特定功能应运而生的。Perl就是典型,它原本是处理大批量字符所用,但经过几代

6、黑客不屑努力,也 具备了和C并驾齐驱的强大功能。而我们的WINHEX 脚本,就是为了数据的 批量搜索、定位、修改所用。这里的特定平台就是WINHEX,特定功能就是服 务于底层数据,对我们来说,就是将原本复杂繁琐的手工数据分析过程智能化, 这和开发一个全新的数据恢复软件是一 样的。我们只需一次告诉WINHEX要干什么,剩下的重复工作就由它全权代劳。现在,我们承认WINHEX脚本也是编程语言家族的一种,那么它和我们现在熟 知的开发语言又有何异同呢?首先,WINHEX 是由高级语言开发的,所以WINHEX脚本是对 WINHEX内部 函数功能的高度浓缩。其次,WINHEX脚本一旦脱离了底层数据,就丧失

7、其根本目标。也就是说,没 有硬盘,没有文件,没有内存,这个语言就失去了运行基础。再次,WINHEX脚本是WINHEX操作步骤的指令化和批处理化。这个大家应 该深有体会,脚本使我们的工作效率大大提高。有人拿ENCASE脚本和 WINHEX 脚本作比较,鼓吹ENCASE是“取证之王” 这点我实在不能苟同,ENCASE那些花花肠子都是建立在部分函数公开的基础 上,功能薄弱,而且,没有C+编程基础的人是不可能掌握的,已经丧失了脚 本语言的方便性。这就是ENCASE在中国粉丝较少的根本原因。本教程中,我会拿C# (本想用C,但C的表达力较差,很多人不能忍受而丧失 学习兴趣)和WINHEX进行交叉讲学,彻

8、底激发您对编程的兴趣和向往。文禅叩 mq)也舟密 廉冃叩 生取密 “n迎 段霜啪 略朮砧工具吩酌即 普口质 44彗Z H 1Q 旦习虽屜卄1 m 視计)JKlW VftHEia-hr爵.U hrn 習 AnaakLjrlnf? E3 t-Fh-E ETH_ r-fcEiCSEtlUhp mULM!pisr n翌弘iA“.hai, N引用 J * 羽 F-khL. mW Fnl hiaQKr ci. Fdnl TMA 哩 Et+pw*. o困惑的浪漫(高志鹏 #)困惑的浪漫(高志鹏 #)(C#集成编译开发环境)月宙範的El56ns打幵理目打开買倖具川川川山山卫ji(C#可以开发出类WINHEX

9、平台)启动中心打开文件(B打开磁盘打 ffRAM打开文件夹堀近打开的数据旧:案件彷案(-一* (C:Documents and .2100000 C:DocumenUand Setliri.Xwin:卢(CADijcuments 启沬命名 4444 C:Documerits and 亠沫命喀 4444C: D ocuments,.昧命容 3332222、;* DVDocument and S诔谕名 C:Documentsand Set,.侏命名“ (C:Documa. 2100000hicHZ 1 1VCDocume. AlMG0729A.jpg lf471CDocume.JMG0765A.i

10、pg C:Documerits and Se.2100000 勺 17-C: D ocum. AM OV0034A. 3gp 14 0MC: D ocuments. CT 2G_000:* (CADocurme .A个JPG,分区 1 C:Documants and Se . VJPGv最后部分 Admdni str a tor到 Sample script圍 Text file conversion UNIX - Windows 呀 T ext file conversion Windows - UNIXwei2hizhongyao 点阵埴充取消囤困惑的浪漫(高志鹏 #)(WINHEX 脚本

11、编辑环境)上面几幅图,反映了两种语言的开发环境和平台等级:C#基于.NET和操作系统, 脚本只基于WINHEX,而WINHEX基于操作系统。下面是一段类似于冒泡排 序法的科学计算数据 处理脚本,我们不关心该代码本身的算法和功能,只分析 它的构成。从语句中,我们看到很多语法功能,有变量声明的,有设置跳转标 签的,有循环递增的,有字串搜索的,有地址位移的,更有一个标准的循环体 结构和循环常量。脚本中还是脱不开C系列的影子,用大括号进行了简单的, 也是唯一的层次分类。该脚本既有与C#相同的基本控制流语句如inc lovel、 assign lovel 0x00000000等,也有 WINHEX 特有

12、的,经过多 重高级封装的 find-iffound 语句。编程语言一般有两个基本功能,处理对象的和处理对象地 址的(如数组下标,结构指针)。两种功能都在WINHEX中有体现。assign love1 0x00000000 read love2 8 等都是偏重处理对象的,goto 0x0000、move -12 都是偏重处理地址的,当然,对象和地址可以应需要而互相转换。对象可以成 为另一个对象的地址,地址也可以成为另一个地址所指向的对象。assign love1 0x00000000/Label Continu eHereinc love1find love1 dow niffou ndassi

13、g n acc Curre ntPosmove -8read love2 8else/inc love1goto 0x0000/JumpTo Continu eHereen dififequal love2 0x88FFFFFFFFFFFFFF move -12困惑的浪漫(高志鹏 #)read Iove3 528n extobjwrite Iove3n extobj/goto 0x0000/JumpTo Continu eHere else/inc love1goto (acc+2)JumpTo Con ti nu eHere /en difu nli mited所以,我们不难看出,WINHE

14、X脚本编程就是对“对象和地址”的活用,而且 是不加修饰的,最基础的活用。对象和地址都是数学量,我们还可以进一步分 为变量和常量。我们知道assign love1 0x00000000 read love2 8都是变量声明的 语法,其中assign是关键字,love1是变量标识符,0x00000000是标识符所代表 的实际数据。WINHEX里很少用到常量的概念,更多的是硬编 码如goto 0x0000。 令人兴趣盎然的是,脚本中竟然还有ENDIF这种条件判断语句。循环十分有用, 可惜的是 WINHEX 脚本不支持嵌套你不可能创造出:for (int i = 1;i=10;i+) for (int

15、j = 1;j=10;j+ )Console.WriteLine(i*j)这样的语句来。u号Syistem. Collections. Gaiteri c:usiihf System. Liiiq.u百in奪TsKt;Fi inamespace ConsoleAppl i c ati onS cla.5 5 Programsthtic voi d Hain (strict args)for (int i = 1; i 10; for (int j = 1 ; j U 10; j+) Console. WriteLiM (i * j) ; 困惑的浪漫(高志鹏 #)33364248 站 丽714212B as424?皿63H

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号