1、文件操作与隐写

文件类型识别

文件类型(图片、压缩包、流量包、word、Excel、ppt,PDF…)

怎么知道是一张图片:后缀名是.jpg .png…

a、File命令

(这边说到的命令或者是工具,其实都是叫工具,说命令只是说这个工具没有图形化界面,但本身就是一个工具而已,这个工具是命令行的)

Linux系统中使用该命令

命令格式:file 文件名

当文件没有后缀名或者有后缀名但是无法正常打开时,根据识别出的文件类型来修改后缀名即可正常打开文件。

使用场景:不知道后缀名,无法打开文件

格式:file myheart


工具是怎么识别这个文件的类型呢?★★★

去剪切这个文件头,解析它,zip检测到504B0304.是根据文件头的字段来识别这个文件是什么类型的

b、winhex工具

使用winhex程序可以查看文件的头类型,根据文件头类型可以判断出文件类型

使用场景:windows系统下通过文件头信息判断文件类型

hex:十六进制 winhex其实是一个十六进制文件的编辑器

010editor(推荐)也是一个十六进制编辑器

notepad++ 有一个hex插件,notepad++可以高亮代码,好用!

三个工具

一张图片用notepad++打开是一串乱码。有一个插件——》HEX-editor——》View in HEX查看它的十六进制



演示:用010editor打开:

flag值可能写在右边的ASCII码中

文件头破坏了怎么识别??

做一个修复 ↓

c、文件头残缺/错误

(可能要用到的工具:010editor 16进制编辑器

文件头部残缺或者头部字段错误无法打开正常文件,针对这种情况,使用winhex程序添加相应的文件头,针对头部字段错误,可以找一个相同类型的文件进行替换

使用场景:文件头部残缺或者头部字段错误无法打开正常文件

格式:file 文件名

如果文件无法打开,使用该命令解析,显示data信息,则表示该文件头部残缺或者错误,此时就可以用16进制编辑器在第一行补充正确的文件头

会显示这是一个data文件

010editor 16进制编辑器去修复

文件分离操作

一张图片可能包含多少信息呢?

图片种子:下载一张图片也就几百kb,其实它蕴藏的信息有一两个G

正常的隐写就是:你看到的是一张图片,它可能是由好几张图片拼成的。甚至不只是图片,一张图片里面还有压缩包,还有txt,还有PDF 还有其他文件

出题人把很多文件融合成一张图片——》文件分离

a. binwalk工具

该工具是Linux下用来分析和分离文件的工具,可以快速分辨文件是否有多个文件合并而成,并将文件分离。如果分离成功会在目标文件的目录中生成一个形如_文件名_extracted的文件目录,目录中会有分离后的文件。

格式:

分析文件 :binwalk filename.后缀

分离文件:binwalk -e filename


binwalk特点是遇到压缩包会帮我们自动解压

key.txt就是我们的flag

pk为文件形式,可知里面包含文件,进入binwalk分析提取文件

b. foremost

如果用binwalk无法分离出文件,可以使用该工具,将目标文件复制到kali中,成功执行后会将分离后的文件保存在源文件的新文件夹中。

命令格式:foremost 文件名.后缀 -o 自定义保存分离文件的文件夹名 (用-o 把它输出到一个目录下o就是out)

会生成一个名称为123的文件夹

foremost是一个比较中规中矩的一个分离软件,不像binwalk(看到压缩包会帮您解压),

foremost不会,foremost会帮您分类,告诉你哪个文件夹是jpg,哪个文件夹是zip,会帮你分类。甚至分离完还会给你写一个日志文件

c. dd(半自动化分离文件工具)

当上面两个工具分离出错或者无法自动分离时,就需要dd来手动实现分离

命令格式:

dd if=源文件 of=目标文件名 bs= count= skip= 开始分离的字节

dd if=源文件 of=输出文件 bs=5(我要取前面五个字符,块就为5 ) count=1(去1块) skip= 开始分离的字节

参数说明;

if = file 输入文件名 缺省为标准输入

of = 分离后的文件名 分离后的文件名

bs=i 将文件分为多个块,一个块的大小为字节为i(bs=bytes)

count=j 从头开始取j块

skip-k

命令表示:截取源文件,开始字段为i X k,截取字段的长度为i X j 当skip省略时,截取从0开始,截取字段的长度为i X j

skip=blocks 从输入文件开头跳过blocks个块后再开始复制

实例:

用16进制编辑器打开图片,怎么定位到地址呢?

怎么找到0x596F?

d. winhex

除了用dd外,还可以使用过winhex实现手动分离,将目标文件拖入winhex中,找到要分离的部分,点击复制即可

使用场景:windows下利用winhex程序对文件进行手动分离

例如:新建一个文件,文件大小1byte,在文件开头位置点击粘贴,弹出提示框选否,确定,将文件保存为想要的后缀即可。

e. 010deitor(推荐)

用法1:选择需要分离的文件在源文件中的内容,按图中所示选择选项即可分离出源文件包含的文件。

将某块区域文件保存的方式如下:

1、010Editor打开文件——》选中右键——》selection——》Save Selection

用法2:将16进制的文件导入,然后另存为对应的文件类型

文件合并操作

(题目给出多个文件,我们需要将这些文件按顺序合并,校验md5等确定是否合并正确,一般在打开合并的文件后就可以得到flag)

a. Linux下的文件合并

使用场景:Linux下通常对文件名类似的文件进行批量合并

命令格式:cat 合并的文件1 合并的文件2 … >合并后输出的文件名

完整性检测(计算文件的md5等等):md5sum 文件名

b. windows下的文件合并

使用场景:Windows下,通常要对文件名类似的文件进行批量合并

格式:copy /B 合并的文件1+合并的文件2+… 输出的文件名

完整性检测(计算文件的md5等等) :certutil -hashfile 文件名 md5

文件内容的隐写

题目给一个或多个文件,我们需要用工具打开,例如notpad++,然后使用查找功能搜索fiag或者key等关键字,以得到题目线索。

文件可能还需要使用16进制编辑器打开,然后再进行查找等操作

从我的另外一个博客copy过来O(∩_∩)O哈哈~:https://www.cnblogs.com/hsp1269/p/13851094.html

杂项题的基本解题思路——1、文件操作与隐写相关推荐

  1. linux隐写文件剥离,杂项的基本解题思路(1)——文件操作隐写、图片隐写

    文件操作隐写 图片隐写 压缩文件处理 流量取证技术 文章本来是分成4部分的,但是前两部分何在一起写了也就没有分开,所以干脆就只分了两部分 文件基本类型的识别 一.kail 下 file 文件名 原理就 ...

  2. 杂项题的基本解题思路——2、图片隐写术

    图片隐写术 图片隐写的常见隐写方法 ①firework工具 使用winhex打开文件时会看到头部中包含fireworks的标识 ,通过firework可以找到隐藏图片 使用场景:查看隐写的图片文件 ② ...

  3. CTF杂项题基础(1.文件识别与分离及图片隐写)

    CTF杂项(misc)解题技巧 杂项类型 1.隐写 2.压缩包处理 3.流量分析 4.攻击取证 5.其他 文件类型识别 在做misc题的时候有很多以文件附件的题目出现,但是有时候给我们的文件并不一定是 ...

  4. 杂项题的基本解题思路——3、压缩文件处理

    压缩文件处理 ①伪加密 下图为zip压缩文件的处理方法 下图为rar文件的处理方法 ②暴力破解 工具ARCHPR.exe 破解zip: 明文攻击:知道加密压缩包中的一部分文件,就可以选择明文攻击类型 ...

  5. 杂项题的基本解题思路——4、流量取证技术

    流量包文件分析 流量包就是说我向你传递的时候,把你传递过程中的数据抓取下来,保存成一个文件 流量取证技术就是说:题目会给你一个流量包,你要在流量包里面找到相应的一些文件(有时候flag值就藏在流量包的 ...

  6. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路

    阿里聚安全攻防挑战赛第三题Android PwnMe解题思路 大家在聚安全挑战赛正式赛第三题中,遇到android app 远程控制的题目.我们今天带你一探究竟,如何攻破这道题目. 一.题目 购物应用 ...

  7. 2020年11月份某kh比赛部分CTF赛题求大佬解题思路

    2020年11月份某kh比赛部分CTF赛题求大佬解题思路 只down下来misc和密码两类题 麻烦大佬们搞一搞这四道题 只down下来misc和密码两类题 百度网盘赛题分享 链接: https://p ...

  8. OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路

    续上一篇文章OpenJudge NOI 1.5编程基础之循环控制(11-20题) C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章.https://blog.csdn.n ...

  9. OpenJudge NOI 1.5编程基础之循环控制(31-40题)C++ 解题思路

    续上一篇文章.OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章OpenJudge NOI 1.5编程 ...

最新文章

  1. Oracle_052_lesson_p9
  2. 一种zabbix server扩容改造方案
  3. JS document.execCommand实现复制功能
  4. c语言简单的24点游戏,C语言解24点游戏程序
  5. utf-8、unicode区别与联系
  6. ubutun 更换网络源_Ubuntu 14.04用户修改更新源和替换软件源的方法
  7. IE和Chrome都将支持asm.js
  8. 庖丁解牛!深入剖析React Native下一代架构重构
  9. BZOJ.4337.[BJOI2015]树的同构(树哈希)
  10. 我的世界服务器无限矿区块指令,我的世界区块刷新指令 | 手游网游页游攻略大全...
  11. IBM Rhapsody 报错找不到 VC11 目录的解决方法
  12. mysql查询学生成绩语句_SQL查询成绩之精典语句
  13. 十大ERP系统排行榜—2022年
  14. ESP-AT 应用: AT+MQTT 对接腾讯 QCloud 云
  15. 狼的处世十大哲理(想养狼的人必应)
  16. 第2章第19节:如何在幻灯片中使用书法艺术文字 [PowerPoint精美幻灯片实战教程]
  17. 这是什么代码帮我看看
  18. Ubuntu把在效劳器领域起更主要的脚色
  19. C语言 计算签到所得积分
  20. 大麦人脸识别系统,如何支撑马拉松赛事?

热门文章

  1. http://blog.csdn.net/u011026037/article/list/2
  2. pointnet与pointnet++
  3. Python中的遇到的错误(持续更新)
  4. kubelet创建容器的步骤
  5. Visual Studio Styles
  6. Test 2018-09-19
  7. StringUtils类中 isEmpty() 与 isBlank()的区别
  8. ARC 100 C - Linear Approximation题解---三分法
  9. C++ GUI Qt4编程(12)-6.1FindFileDialog
  10. python 解析 配置文件