题目

描述

sha1 得到了一个神秘的二进制文件。寻找文件中的flag,解锁宇宙的秘密。
注意:将得到的flag变为flag{XXX}形式提交。

文件

先查壳,有壳脱壳,没壳拖入IDA
无壳64位ELF

运行

image.png

IDA

image.png
image.png

解题

答案

flag{80ee2a3fe31da904c596d993f7f1de4827c1450a}

查看Writeup

IDA阅读

image.png

  1. Bill的密码
  2. 提交不带任何标签
  3. #kdudpeh
  • Cipher from Bill:Bill的密码。Bill即是账单等名词,也是人名“比尔”,不深究
  • Submit without any tags:去掉标签符号“#”的意思
  • kdudpeh:需要提交的密码

    代码逻辑

    没有“if”判断仅为了输出字符串提示,没有太大的意义。

    运行(没必要)

    成功

    输入“42”使“if”判断条件成立:
    ┌──(root🐷kali)
    └─# ./answer_to_everything.elf
    Gimme: 42
    Cipher from Bill 
    Submit without any tags
    #kdudpeh
    
    image.png

    失败

    image.png

    结合提示

    “sha1 得到了……”
    “Submit ‘kdudpeh’”

    SHA-1

    SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。

推测“kdudpeh”应该是明文进行“SHA-1”加密后的密文。
那么对“kdudpeh”进行“SHA-1”解密。

SHA-1计算&input=a2R1ZHBlaA)

好叭,不能解密,除了循环次数(默认“80”)可以设置外,没有可以设置的,尝试输入“kdudpeh”,加密后得到“80ee2a3fe31da904c596d993f7f1de4827c1450a”:
image.png
加上提示的格式组合成“flag{80ee2a3fe31da904c596d993f7f1de4827c1450a}”,成功。