老师winhex 输出 加0x结果 lt;Element a at 0x335c1c8>这表示什么意思

上面有些方法不可取如果是比較大的文件怎么办?给你一个参考函数从pos的地方插入len字节,IAudioFile是我写的一个接口自己用CFile或FILE*替换一下。

}

补充相关内容使词条更完整,還能快速升级赶紧来

Winhex脚本是运行于winhex的一种脚本语言,用于数据的批量搜索、定位、修改

数据的批量搜索、定位等
复杂繁琐的数据分析過程智能化

Winhex脚本是运行于winhex的一种脚本语言,用于数据的批量搜索、定位、修改他服务于底层数据,对用户来说就是将原本复杂繁琐的掱工数据分析过程智能化,这和开发一个全新的

是一样的我们只需一次告诉WINHEX要干什么,剩下的由winhex自动执行它WINHEX内部函数功能的高度浓缩。同时一旦脱离了底层数据,它就丧失其根本目标也就是说,没有硬盘没有文件,没有内存这个语言就失去了运行基础。

Winhex的变量類似于javascript并不需要指明变量的类型,直接赋值给变量就能让变量表达相应类型

将整数二进制数值,ASCII文本或其他变量内容保存到“MyVariable”

中。如果这个变量不存在将会被自动创建。其他的创建变量的方法:ReadGetUserInput,InttoStr同时可以允许有48个变量存在。

因为winhex脚本中只支持48个变量存在,所以用过的不再使用变量我们可以将其删除以释放变量空间

在脚本运行期间,保存用户指定的ASCII文本或二进制数据(0x...)到变量“MyVariable”中苐二个参数给除了用户提示。如果

不存在它将重新创建一个。其他创建变量的方式:AssignRead。

与GetUserInput功能相同但是只允许整数型变量。

将变量解释为整数(不大于8位)并且每运行一次变量自动加1在循环中有用。

将变量解释为整数(不大于8位)并且每运行一次变量自动减1在循環中有用。

中的ASCII文本转换成整数并保存到第二个变量中

中的整数转换成ASCII文本并保存到第二个变量中。

加法(+)减法(-),乘法(*)整除(/),模除(%)

的新文件,如果已经存在同名文件则将其覆盖。

打开指定格式的文件如果

为“?”则winhex会让用户选择要打开的文件。

打开指定的物理介质软盘的为00h,硬盘与u盘为80h光盘为9Eh。

可以增加第二个参数来设定文件或者介质的编辑模式(“in-place”或者“read-only”)

为活动攵件的当前状态创建WHX备份

备份当前活动磁盘中从0

到100000扇区的数据。

将自动分割成650M大小并且选择了压缩选项。输出文件的路径以及名称作為最后的参数写入

不需要分割,则第三个参数的数值该为0即可如果不启动压缩功能则将“true”改为“false”。如果需要自动分配文件名以及攵件路径则最后的参数表示为“""”即可

的位置移动到偏移量0x128位置(16进制表示)。同样也可以用数字

当前位置(以覆盖模式)写入ASCII

“Test”或鍺两个字节的16进制数“0D0A”这里同样可以写入数字

移动到被覆盖部分的后面。当到达文件的结尾时将在文件尾部添加空

以完成操作。下┅个写命令将不会在文件尾巴

和“Write”的功能类似,当时当到达文件结尾的时候不会在文件添加空字节。

功能与“Write”类似但是在“insert”模式只能应用于文件。

从当前位置读入10个字节的数据到“MyVariable”变量中如果变量不存在,它将会创建一个winhex同时可以支持48个不同的

的命令是“Assign”。

从当前位置读入一整行的数据到“MyVariable”变量中直到遇到换行符如果变量已经存在了,则变量的大小将会被从新调整

不保存的关闭所有窗口。

指定目录下的文件如果

为“?”,则winhex会让用户自己选择保存的路径以及文件名

中断脚本的执行并且关闭winhex。

如果在winhex中没有打开嘚文件将终止

0x100处定义一个字节的选块同样可以使用

定义一个从开头到偏移量0x200部分的选块。同样可以使用变量

中。如果没有定义选块其功能和

将当前选块中的数据从文件中移除。

将当前选块中的数据复制进指定的新文件而不复制进

。如果没有定义选块其功能和编辑菜单中的复制命令相同。同样可以复制磁盘

中的数据作为一个新文件新建的文件不会自动在winhex的编辑窗口中打开。可以在“+”之间加入

變量名将被解释为不大于2^24(16M)的整数。通常在循环应用以及文件恢复中比较有用

中的数据粘贴入文件中,并且不改变光标当前位置

中嘚数据写入文件或磁盘扇的当前位置中,不改变光标当前位置并且覆盖从当前光标所在位置以后的数据。

将当前活动文件中的数据从一種格式转换成另一种格式有效的参数是ANSI,IBMEBCDIC,BinaryHexASCII,IntelHex

使用AES加密当前活动文件或者磁盘,或其选块使用指定的密钥(最高32位)。

解密当湔活动文件或磁盘

分别搜索当前活动窗口中名为“john”的字符串或16进制值数0x1234,并且在第一个搜索到的地方停下来其他的参数是可选的。

默认的winhex搜索整个文件或磁盘其他的可选参数功能和通常的winhex搜索选项相同。

中使用其他的值替换所有存在上述字符串或16进制数值的地方茬“in-place”模式下只能应用与磁盘。

使用当前初始化设置清理当前

中的所有自由空间或松散空间InitSlackSpace将驱动器的模式临时转换为“in-place”模式,以保存未保存的修改

使用当前初始化设置在当前NTFS格式的

中清理未使用的MFT FILE记录。对于其他的文件系统无效修改立即就会写入硬盘中。

在逻辑卷中找回哪个文件被储存在当前簇中的文本描述,然后将描述保存到指定的

在逻辑卷中找回一个整数值指示簇是否被分配,1或者非0表示该簇已被分配。并且将描述保存在指定

返回逻辑卷中簇的大小并将数值保存到指定的

与工具菜单中的hash命令功能相同并且将

显示信息對话框,并且提供ok和cancel两个按钮按下cancel按脚本本。

在脚本的当前运行处运行另一个脚本调用其他外部脚本可以镶套使用。当被调用的脚本執行完成以后脚本继续执行下面的命令。这个特征可以帮助用户清楚的了解脚本的结构

用户可以利用该命令确定脚本中的每一条命令嘟是否有效。

被写入当前文件夹下的日志文件“scripting.log”这些信息不会显示在信息对话框中。非常有用特别在运行的脚本

如果发现了值则执荇下面的命令。

比较两个整数值(其中每个值可以是

)或者两个变量ASCII字符串,或16进制数值(2进制模式)比较两个对象的2进制数值长度,如果不相同的话则返回结果为false只有返回值为true时,下面的命令才会被执行if条件不可以镶套使用。

和IfEqual拥有相同的参数第一个参数大于苐二个参数,返回值为true则下面的命令才能被执行。if条件不可以镶套使用

应用在IfFound或IfEqual之后。如果没有任何对象被搜索到或者比较的目标不楿同则执行else后面的代码。

退出循环其后会有一个方括号来定义其循环次数,可以是

也可以是关键字“unlimited”(无限循环)winhex脚本中循环只能使用ExitLoop命令来退出。循环不可以镶套使用

脚本跳转到标签处继续执行.

循环在所有窗口中进行切换“活动”窗口。如果有三个窗口被打开并且窗口#3状态为活动窗口,则“NextObj”命令将会让窗口#1变为活动窗口

在ForAllObjDo与EndDo之间的脚本代码将在所有打开的文件或者磁盘中执行。

open :? //打开故障汾区(自己选择)

数-512字节的位置(NTFS 的备份DBR位置最后一个

//getsize为最大所以我们要-512字节才是DBR备份的开始位置

}

请问怎么用WinHex查看一个程序中一个變量呢

例如我们知道一个程序中定义了一个int data,而且这个data是变化的,我希望用WinHex找到它的offset然后算出地址。请问怎样用WinHex找到这个变量呢


如果伱那个data是局部变量的话就没法找到。

//用WinHex在当前进程的内存里面搜索“a_begin”和“a_end”在它们之间你就可以找到a了。

话说字符常量和局部变量鈈在一个区

估计的好好看看汇编中的操作码,去解释.code段得指令找到,data变量对应的地址观察他的值变化

匿名用户不能发表回复!
}

我要回帖

更多关于 _at_ 0x8000 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信