Board logo

标题: [代码合集] [已解决]批处理能不能根据16进制的地址来截取一个文件 [打印本页]

作者: shchaoge    时间: 2012-11-2 02:53     标题: [已解决]批处理能不能根据16进制的地址来截取一个文件

比如有个文件   我想截取16进制地址0010到1000之间的数值   这个有什么办法能做到  用第三方工具也可以
作者: CrLf    时间: 2012-11-2 04:27

本帖最后由 CrLf 于 2012-11-2 14:10 编辑

debug 就可以了
  1. @echo off
  2. more +3 %0|debug test.txt
  3. pause&exit
  4. m 110 1100 100
  5. rcx
  6. ff0
  7. 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的改了一下,试一下吧
  1. @echo off
  2. more +3 %0|debug test.txt
  3. pause&exit
  4. n new.txt
  5. rcx
  6. ff0
  7. w110
  8. 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://www.bathome.net/) Powered by Discuz! 7.2