标题: [代码合集] [已解决]批处理能不能根据16进制的地址来截取一个文件 [打印本页]
作者: shchaoge 时间: 2012-11-2 02:53 标题: [已解决]批处理能不能根据16进制的地址来截取一个文件
比如有个文件 我想截取16进制地址0010到1000之间的数值 这个有什么办法能做到 用第三方工具也可以
作者: CrLf 时间: 2012-11-2 04:27
本帖最后由 CrLf 于 2012-11-2 14:10 编辑
debug 就可以了- @echo off
- more +3 %0|debug test.txt
- pause&exit
-
- m 110 1100 100
- rcx
- ff0
- w
复制代码
不过要注意几点:
1、debug 不支持长文件名,也就是可能需要把文件名转为短名
2、debug 中的 ds段地址为实际地址+10h,所以 m 命令中使用的偏移地址需要加上 100h
3、cx寄存器存储控制写入时的数据量,在例子中就是 1000h-10h=ff0h,不懂的话可以用 h 1000 10 来查看二者差值,这个需要自行换算
作者: shchaoge 时间: 2012-11-2 06:12
谢谢 运行出现下图
作者: wc726842270 时间: 2012-11-2 07:23
本帖最后由 wc726842270 于 2012-11-2 07:26 编辑
把ZM的改了一下,试一下吧- @echo off
- more +3 %0|debug test.txt
- pause&exit
-
- n new.txt
- rcx
- ff0
- w110
- q
复制代码
作者: wc726842270 时间: 2012-11-2 07:35
回复 2# CrLf
关于第二点能否指教一下,我仅是了解了少部份汇编语句,但是其它的就少了
作者: CrLf 时间: 2012-11-2 14:11
回复 3# shchaoge
漏写目标地址,已修改
作者: CrLf 时间: 2012-11-2 14:42 标题: 标题
回复 5# wc726842270
不妨看下这篇文章:http://blog.chinaunix.net/uid-20778955-id-539949.html
作者: shchaoge 时间: 2012-11-2 22:39
谢谢2位 用wc726842270搞定啦
作者: shchaoge 时间: 2012-11-3 00:01
这个办法 文件大了 怎么就不行啦
作者: wc726842270 时间: 2012-11-3 02:41
多谢ZM,一会研究一下
另外这个是指定字节的,对于内存的数据错误操作的话,可么和病毒相比了,
前一阵子用了/E就对一个软件修改了,幸好有备份,反正360是出了提示的(检查时出的提示)
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |