[原创]也学NTFS格式磁盘解析及atapi磁盘读写
信息来源:邪恶八进制信息安全团队( www.eviloctal.com)
文章作者:Styxal
这个么……其实是某门课的大作业……自选题,于是就选了解析 NTFS格式 磁盘及Atapi读写,主要目的还是……破隐藏、穿还原、 强删文件
因为时间关系,很多地方还有各种Bug,先不调了……反正重点在 解析和Hack NTFS格式磁盘,至于那个Atapi读写……直接挪的 机器狗代码……
NTFS上删除一个文件应该是像下面这样的步骤:
i. 若该文件非驻留,找到该文件的数据占有的簇在$Bitmap位图中相应位置,对应的占有位由1改为0
ii. 将$MFT中该文件记录+0x16位设为0(表示该文件记录已废)
iii. 将$MFT的$BitMap属性(位图)中对应的占有位由1改为0 即:$MFT.$BitMap[FileId / 8] ^= 1 << (FileId % 8);
iv. 读入该文件所在的目录文件,遍历并找到待删文件记录,将待删文件记录后面所有记录覆盖到待删文件记录起始处
v. 重新计算目录文件的校验序列(否则刷新Cache后Windows会禁止打开该目录,Chkdsk也会报错)
vi. 刷新Cache
当然其实这只是Windows删文件的步骤,如果要让Windows找不到一个文件,进行第4、5步即可, 事实上,很多防删即便做到HAL级也是有Bug的,都是对自己防护而没有对自己所在的目录进行防护————这就是说,如果我们执行了以上的4/5步,不进行真正的删除操作,照样会让Windows找不到该文件(只不过是Windows以后不会覆盖而已),这就是说,假若我们要对某杀软下手,他在C:\Program Files\Rav文件夹,那么我们只要改C:\Program Files就OK咯(一般的都是防护文件所在和自己的文件夹比如Rav\*.*和Rav)~刷Cache后无论怎么通过Windows文件系统访问都会找不到Rav和Rav里任何文件~ 因为只要第v步生成的校验正确,Windows从来不看MFT的~等于将该杀软一锅端~(本例本杀软SP3已试通过,就差隐蔽起来进r0了……)
具体见附件
//菜鸟学习之作,大牛飘过即可
[ 本帖最后由 Styxal 于 2010-1-8 16:47 编辑 ]
文章作者:Styxal
这个么……其实是某门课的大作业……自选题,于是就选了解析 NTFS格式 磁盘及Atapi读写,主要目的还是……破隐藏、穿还原、 强删文件
因为时间关系,很多地方还有各种Bug,先不调了……反正重点在 解析和Hack NTFS格式磁盘,至于那个Atapi读写……直接挪的 机器狗代码……
NTFS上删除一个文件应该是像下面这样的步骤:
i. 若该文件非驻留,找到该文件的数据占有的簇在$Bitmap位图中相应位置,对应的占有位由1改为0
ii. 将$MFT中该文件记录+0x16位设为0(表示该文件记录已废)
iii. 将$MFT的$BitMap属性(位图)中对应的占有位由1改为0 即:$MFT.$BitMap[FileId / 8] ^= 1 << (FileId % 8);
iv. 读入该文件所在的目录文件,遍历并找到待删文件记录,将待删文件记录后面所有记录覆盖到待删文件记录起始处
v. 重新计算目录文件的校验序列(否则刷新Cache后Windows会禁止打开该目录,Chkdsk也会报错)
vi. 刷新Cache
当然其实这只是Windows删文件的步骤,如果要让Windows找不到一个文件,进行第4、5步即可, 事实上,很多防删即便做到HAL级也是有Bug的,都是对自己防护而没有对自己所在的目录进行防护————这就是说,如果我们执行了以上的4/5步,不进行真正的删除操作,照样会让Windows找不到该文件(只不过是Windows以后不会覆盖而已),这就是说,假若我们要对某杀软下手,他在C:\Program Files\Rav文件夹,那么我们只要改C:\Program Files就OK咯(一般的都是防护文件所在和自己的文件夹比如Rav\*.*和Rav)~刷Cache后无论怎么通过Windows文件系统访问都会找不到Rav和Rav里任何文件~ 因为只要第v步生成的校验正确,Windows从来不看MFT的~等于将该杀软一锅端~(本例本杀软SP3已试通过,就差隐蔽起来进r0了……)
具体见附件
//菜鸟学习之作,大牛飘过即可
[ 本帖最后由 Styxal 于 2010-1-8 16:47 编辑 ]
附件
- NTFS.rar (1.28 MB)
-
2010-1-7 17:14, 下载次数: 1445
文章pdf+有Bug的Source/Bin
- BinWithStaticMFC.rar (159.17 KB)
-
2010-1-8 16:37, 下载次数: 799
带了VS08的MFC库的bin...