当前位置: 首页 > news >正文

每日一练:奇怪的TTL字段(python实现图片操作实战)

打开图片,只有四种数字:127,191,63,255

最大数字为255,想到进制转换

将其均转换为二进制:

发现只有前2位不一样

想着把每个数的前俩位提取出来,组成新的二进制,然后每八位一组,再转字符

import binascii                          #该模块处理二进制和ASCII转换with open('ttl.txt', 'r') as file:       #以只读方式打开文件lines = file.readlines()             #返回列表,读取所有行ttl_data = ''                        for line in lines:prefix = "{0:b}".format(int(line[4:])).zfill(8)     #"{0:b}".format()格式化字符串,将传入参数格式化为二进制。int(line[4:])从line中取出从索引4到末尾的全部字符,并转换为整数。# .zfill(8)得到的字符串右对齐,不足八位补0。ttl_data += prefix[0:2]                         #获取prefix的前俩位字符flag = ''
for i in range(0, len(ttl_data), 8):          #步长为8,每次处理8个二进制数flag += chr(int(ttl_data[i:i + 8], 2))        #将8个二进制数转换为字符,2表示输入的数是二进制print(flag)
# 发现flag为图片的文件头
flag = binascii.unhexlify(flag)           #函数用于将十六进制表示的ASCII字符串(通常以0x开头,但在unhexlify中不需要)转换回其原始的二进制数据。
with open('./res.jpg', 'wb') as file:file.write(flag)

拿到图片,残缺二维码,foremost分离以后拿到二维码碎片,拼图扫二维码拿到加密的flag,之后根据提示cipher解密,拿到flag

http://www.lryc.cn/news/399457.html

相关文章:

  • 【Java开发实训】day03——方法的注意事项
  • HarmonyOS NEXT:一次开发,多端部署
  • Bilibili Android一二面凉经(2024)
  • 数据库内核研发学习之路(一)
  • LSTM:深度学习中的时间序列处理大师
  • T113-i系统启动速度优化方案
  • ArcGis将同一图层的多个面要素合并为一个面要素
  • 微软Win11 24H2七月更新补丁KB5040435发布!附下载
  • iOS 开发中不常见的专业术语
  • 【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构④ | 4.7
  • Time to say GoodBye
  • C语言之指针的奥秘(二)
  • 嵌入式linux系统内核启动过程分享
  • RK3568笔记三十五:LED驱动开发测试
  • pnpm 如何安装指定版本
  • LeetCode 240 搜索二维矩阵||
  • 万界星空科技MES系统:食品加工安全的实时监控与智能管理
  • 【学习笔记】4、组合逻辑电路(下)
  • 使机器人在执行任务倒快递
  • 谈谈软件交互设计
  • npm install报错:淘宝镜像证书过期
  • 各种Attention|即插即用|适用于YoloV5、V7、V8、V9、V10(一)
  • 语言模型演进:从NLP到LLM的跨越之旅
  • 自动驾驶中的人机互相接管问题讨论
  • 语音识别HResults统计工具以及字根据关键词进行合并
  • lvs集群、NAT模式和DR模式、keepalive
  • zookeeper在哪里能用到
  • coco_eval 使用
  • 国产精品ORM框架-SqlSugar详解 进阶功能 集成整合 脚手架应用 专题二
  • el-table 动态添加删除 -- 鼠标移入移出显隐删除图标