题目

文件

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

运行

image.png

解题

答案

unctf{b66_6b6_66b}

查看Writeup

IDA阅读

  1. 输入字符串,长度要求为0x12
  2. encode输入字符串后输出字符串
  3. 对输出的字符串进行判断,是否为“izwhroz””w”v.K”.Ni”

image.png

encode函数

  • “if”判断:输入长度为0x12的字符串
  • “for”循环:3步一组进行异或运算(key = 0x12)
    • 第1个元素:+6后,^key
    • 第2个元素:-6后,^key
    • 第3个元素:^6后,^key

image.png
*tmp是用于交换的中间值

解码逻辑

🐍逆Encode函数🐍

“for”循环:3步一组进行异或运算(key = 0x12)

  • 第1个元素:^key后,-6
  • 第2个元素:^key后,+6
  • 第3个元素:^key后,^6 ```python deFlag = ‘’ step = 3 key = 0x12 strEnFlag = r’izwhroz””w”v.K”.Ni’

for i in range(0, len(strEnFlag), step): deFlag += chr((key ^ ord(strEnFlag[i])) - 6) deFlag += chr((key ^ ord(strEnFlag[i + 1])) + 6) deFlag += chr((key ^ ord(strEnFlag[i + 2])) ^ 6)

print(deFlag) ```

🥳You are Right🥳

image.png