无忧启动论坛

标题: G4D write 的使用问题。 [打印本页]

作者: chiannet    时间: 2012-8-22 11:16
标题: G4D write 的使用问题。
G4D下,用以下命令向一个零字节的文本文件写入内容会失败:

  1. write --offset=0  ()/aaaaa.txt abc
  2. echo abc > ()/aaaaa.txt
复制代码
估计是因为write命令不会改变文件的大小所致,g4d的echo也失败。

而MS命令行CMD.EXE的ECHO命令是没有这个限制的,甚至可以无中生有,向本不存在的c:\aaaaa.txt写入内容,
那么如何才能在纯G4D环境下向一个零字节的文本文件或本不存在的 ()/aaaaa.txt中写入内容并保存呢?
作者: 不点    时间: 2012-8-22 12:29
做不到。至少现阶段做不到。
作者: sunsea    时间: 2012-8-22 14:50
原帖由 chiannet 于 2012-8-22 11:16 发表
G4D下,用以下命令向一个零字节的文本文件写入内容会失败:
write --offset=0  ()/aaaaa.txt abc
echo abc > ()/aaaaa.txt估计是因为write命令不会改变文件的大小所致,g4d的echo也失败。

而MS命令行CMD ...


配合fat外部命令吧
或者干脆直接写扇区、$MFT、$Bitmap

[ 本帖最后由 2011czmxbb52 于 2012-8-22 14:52 编辑 ]
作者: 不点    时间: 2012-8-22 18:18
标题: 回复 #3 2011czmxbb52 的帖子
不要乱说,$MFT, $Bitmap 是关系到 NTFS 的结构的,写入之后,NTFS 分区还要不要了?
作者: sunsea    时间: 2012-8-23 08:42
原帖由 不点 于 2012-8-22 18:18 发表
不要乱说,$MFT, $Bitmap 是关系到 NTFS 的结构的,写入之后,NTFS 分区还要不要了?

如果我看关于NTFS的结构的文章没看错的话
首先写入数据到空扇区
然后修改$Bitmap,将刚刚写入的扇区代表的位置1
接着修改$MFT,如有必要,创建一个新纪录
最后写$LogFile

$MFT结构
主文件表MFT的文件记录由记录头和属性列表组成,由“FF FF FF FF”结束,一般大小为1K,或一个簇大小(这样一般就更大),记录头包括以下一些域:
偏移 长度(字节) 属性
0X00 4 标志,一定是“FILE”
0X04 2 更新序列US的偏移
0X06 2 更新序列号USN的大小与数组,包括第一个字节
0X08 8 日志文件序列号LSN
0X10 2 序列号(SN)
0X12 2 硬连接数
0X14 2 第一个属性的偏移地址
0X16 2 标志,1表示记录正在使用,2表示该记录为目录
0X18 4 记录头和属性的总长度,即文件记录的实际长度,
0X1C 4 总共分配给记录的长度
0X20 8 基本文件记录中的文件索引号
0X28 2 下一属性ID
0X2A 2 XP中使用,边界
0X2C 4 XP中使用,本文件记录号
每次记录被修改都将导致日志文件序列号$LogFile Sequence Number(LSN)发生变化。
序列号Sequence Number(SN)用于记录主文件表记录被重复使用的次数。
硬连接数Hard Link Count记录硬连接的数目,只出现在基本文件记录中。
文件记录的实际长度是文件记录在磁盘上实际占用的字节空间。
基本文件记录中的文件索引号,对于基本文件记录,其值为0,如果不为0,则是一个主文件表的文件索引号,指向所属的基本文件记录中的文件记录号,在基本文件记录中包含有扩展文件记录的信息,存储在“属性列表ATTRIBUTE_LIST”属性中.
属性列表是可变长度区,以“FF FF FF FF”结束,对于1K长度的MFT记录,属性列表的起始偏移为0x30。

索引记录结构分析
每一个索引记录都是由一个标准的索引头和一些包含索引键和索引数据的块组成的。索引记录的大小在引导记录 $Boot中定义,一般总是4KB。
标准索引头的结构如下:
偏移 大小 说明
0X00 4 总是“INDX”
0X04 2 更新序号偏移
0X06 2 更新序列号USN的大小与排列,包括第一个字节
0X08 8 日志文件序列号LSN
0X10 8 该索引缓冲在索引分配中的索引VCN
0X18 4 索引入口的偏移(相对于0X18)
0X1C 4 索引入口的大小(相对于0X18)
0X20 4 索引入口的分配大小(相对于0X18)
0X24 1 非页级节点为1(有子索引)
0X25 3 总是0
0X28 2 更新序列号
0X2A 2S-2 更新序列排列
作者: 不点    时间: 2012-8-23 09:49
标题: 回复 #5 2011czmxbb52 的帖子
还有这样的办法,耳目一新,谢谢。但比较深奥,我就不学了。
作者: chiannet    时间: 2012-8-23 11:03
标题: 回复 #5 2011czmxbb52 的帖子
也许可行!代价太大。

感谢不点大、2011czmxbb52大的提点。我还是简单点:弄个带N多空格的文本文档供write  ECHO得了。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3