【愚公系列】2021年12月 攻防世界-进阶题-MISC-073(5-1)
【摘要】 一、5-1题目链接:https://adworld.xctf.org.cn/task/task_list?type=misc&number=1&grade=1&page=5 二、答题步骤 1.xortool(异或工具)xortool是一个多字节异或加密破解工具。基本异或、加法、SUB 和 ROR/L 计算器加密/解密文件在文件中搜索编码的字符串分析文件(字节匹配项)在线下载网址:https...
一、5-1
题目链接:https://adworld.xctf.org.cn/task/task_list?type=misc&number=1&grade=1&page=5
二、答题步骤
1.xortool(异或工具)
xortool是一个多字节异或加密破解工具。
- 基本异或、加法、SUB 和 ROR/L 计算器
- 加密/解密文件
- 在文件中搜索编码的字符串
- 分析文件(字节匹配项)
在线下载网址:https://github.com/raddyfiy/xortool-for-Windows
主要是这两个文件

2.加密命令
python xortool-xor.py -f ./text/cmd.exe -s "secret_key" -n -o binary_xored_cmd
-f表示待加密的原文件,-s是密钥,-o是输出文件
注意,必须加上-n保证加密内容就是原本文件,不然会把原本文件加个-n再加密,这样解密出来的文件会多个\n。我不清楚作者为什么这么设计,但还是保留了下来。
输出文件用-o来指定,不要用作者的>重定向来保存,这是win版最大的区别。
上述代码是加密二进制文件的示例,还可以加密字符串,具体的看xortool-xor.py的帮助说明
3.解密命令
python xortool.py binary_xored_cmd -l 10 -c 00
其中-l就是指定密钥长度,-c表示出现频率最高的字符。这个需要根据经验,比如文本内容一般是空格(20),二进制文件一般是00
4.解题
使用命令
xortool -c 20 cipher
尝试出了key:GoodLuckToYou,对原文件进行异或,脚本如下:
key = 'GoodLuckToYou'
flag = ''
with open('cipher') as f:
con = f.read()
for i in range(len(con)):
flag += chr(ord(con[i]) ^ ord(key[i%13]))
f = open('flag.txt', 'w')
f.write(flag)
f.close()
flag:wdflag{You Are Very Smart}
总结
- xortool
- 异或
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)