编辑“︁
计算机相关编码
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 例子 === 题目描述参见 <code>ctf-challenge</code>中 [https://github.com/ctf-wiki/ctf-challenges/tree/master/misc/encode/computer/base64-stego misc 分类的 base64-stego 目录]中的 data.txt 文件。 使用脚本读取隐写信息。 <syntaxhighlight lang="python">import base64 def deStego(stegoFile): b64table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" with open(stegoFile,'r') as stegoText: message = "" for line in stegoText: try: text = line[line.index("=") - 1:-1] message += "".join([ bin( 0 if i == '=' else b64table.find(i))[2:].zfill(6) for i in text])[2 if text.count('=') ==2 else 4:6] except: pass return "".join([chr(int(message[i:i+8],2)) for i in range(0,len(message),8)]) print(deStego("text.txt"))</syntaxhighlight> 输出: <pre> flag{BASE64_i5_amaz1ng}</pre> <!-- 下面是原编辑者的代码,代码的小毛病在于查找隐写字符用`last = line[-3]`写死了,这种写法默认每行尾有一个'\n',而最后一行并非如此,因此左后一个字符显示错误。 一大串 Base64 密文,试试补 0 位的数据。 ```python # coding=utf-8 import base64 import re result = [] with open('text.txt', 'r') as f: for line in f.readlines(): if len(re.findall(r'=', line)) == 2: last = line[-4] if last.isupper(): num = ord(last) - ord('A') elif last.islower(): num = ord(last) - ord('a') + 26 elif last.isdigit(): num = int(last) + 52 elif last == '+': num = 62 elif last == '/': num = 63 elem = '{0:06b}'.format(num) result.append(elem[2:]) elif len(re.findall(r'=', line)) == 1: last = line[-3] if last.isupper(): num = ord(last) - ord('A') elif last.islower(): num = ord(last) - ord('a') + 26 elif last.isdigit(): num = int(last) + 52 elif last == '+': num = 62 elif last == '/': num = 63 elem = '{0:06b}'.format(num) result.append(elem[4:]) flag_b = ''.join(result) split = re.findall(r'.{8}', flag_b) for i in split: print chr(int(i, 2)), ``` 感觉像是程序有点毛病,不过还是能看出来 flag。 ``` flag{BASE64_i5_amaz1ng~ ``` --> <span id="题目-1"></span>
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息