0x01 设备漏洞---Binwalk神器使用

1.固件扫描:
	binwalk xxx.bin
2.提取文件:
	选项"-e"按照预定义的配置文件中的提取方法从固件中提取探测到的文件及系统
		binwalk -e xxx.bin
	选项"-M"根据magic签名扫描结果进行递归提取,仅对"-e"和"-dd"选项有效
		binwalk -Me xxx.bin
	选项"-d"用于限制递归提取的深度,默认深度为8,仅当"-M"选项存在时有效
		binwalk -Me -d 5 xxx.bin
3.文件比较:
	选项"-W"和"--hexdump"对给定的文件进行字节比较,可以指定多个文件,这些我呢见的比较结果会按hexdump方式显示,绿色表示在所有文件中这些字节都说相同的,红色表示不同,蓝色表示某些文件中是不同的。该选项可以与"--block"、"--length"、"--offset"、"--terse"选项一起使用
		binwalk -W xxx.bin yyy.bin zzz.bin
		binwalk -W --block=8 --length=64 xxx.bin yyy.bin
4.日志记录:
	选项"-f"和"--log=<file>"用于将扫描结果保存到一个指定的文件中。如果不与"-q"选项核用,会同时在stdout和文件中输出。保存CSV格式的log文件使用"--csv"选项。
	binwalk -f xxx.log -q xxx.bin
	binwalk -f xxx.log --csv xxx.bin
可以使用Java的Socket和InputStream类来读取Socket中返回的ASCII数据,然后根据题目要求进行转义和生成图片。 下面是一个简单的示例代码,可以实现读取Socket中的数据并进行转义和生成图片: ```java import java.io.*; import java.net.Socket; import java.util.ArrayList; import java.util.List; public class SocketReader { public static void main(String[] args) throws IOException { String host = "localhost"; int port = 8080; Socket socket = new Socket(host, port); InputStream inputStream = socket.getInputStream(); List<Byte> bytes = new ArrayList<>(); int b; while ((b = inputStream.read()) != -1) { if (b == 0x7D) { bytes.add((byte) 0x7D); bytes.add((byte) 0x01); } else if (b == 0x5B) { bytes.add((byte) 0x7D); bytes.add((byte) 0x02); } else if (b == 0x5D) { bytes.add((byte) 0x7D); bytes.add((byte) 0x03); } else if (b == 0x2C) { bytes.add((byte) 0x7D); bytes.add((byte) 0x04); } else if (b == 0x2A) { bytes.add((byte) 0x7D); bytes.add((byte) 0x05); } else { bytes.add((byte) b); } } byte[] imageData = new byte[bytes.size()]; for (int i = 0; i < bytes.size(); i++) { imageData[i] = bytes.get(i); } FileOutputStream outputStream = new FileOutputStream("image.jpg"); outputStream.write(imageData); outputStream.close(); socket.close(); } } ``` 在上述代码中,我们首先建立了一个到指定主机和端口的Socket连接,并获取了该Socket连接的输入流。然后我们通过循环读取输入流中的数据,并根据题目要求对数据进行转义,最后将转义后的数据写入到一个字节数组中。 接着,我们将字节数组写入到一个文件中,生成图片。在这里,我们假设输入的ASCII数据就是一张JPEG图片,并将它写入到名为“image.jpg”的文件中。 需要注意的是,上述代码是一个简单的示例,实际的应用场景可能会更加复杂,需要根据具体的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值