图片写入ShellCode
将Shellcode写到PNG图片
1. 读取PNG图像数据
读取PNG图像数据。使用Python内置的open()
函数打开图像文件,使用rb
模式以二进制格式读取文件内容,并将读取到的数据存储在变量img_data
中。
1 | with open('demo.png', 'rb') as f: |
2. 创建shellcode
要插入的shellcode。这里暂时使用\x90。在实际应用中,需要根据实际情况插入具体的shellcode。
1 | shellcode = b'\x90\x90\x90\x90\x90\x90\x90\x90\x90' |
3. 创建PNG数据块
需要创建一个PNG数据块,并将shellcode插入到其中。PNG数据块结构为:长度(4个字节)+类型(4个字节)+数据(长度字节)+CRC校验(4个字节)。其中,CRC校验用于保证数据的完整性。使用Python内置的struct
模块和zlib
模块,分别用于将数据打包成二进制格式和计算CRC校验。
1 | chunk_type = b'shel' |
4. 保存修改后的图像
最后,使用Python内置的open()
函数打开文件,使用wb
模式以二进制格式写入文件内容,并将修改后的PNG图像数据存储在文件中。
1 | with open('modified_image.png', 'wb') as f: |
5. 完整代码
1 | import struct |
请注意写入Shellcode的图片不可使用压缩编辑软件 以及会压缩图片的图床 会导致内容丢失
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 宁宁's Blog!
评论