刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

攻防世界 XCTF Reverse 666 Writeup (字符串异或加密解密)

image.png

先看一下程序的基本信息

image.png

执行一下

image.png

提示长度错误

放到ida中看一下,代码很少,就是输入一个字符串加密后和指定字符串进行对比

image.png

flag加密后的字符串和长度

image.png

根据给出的encode函数进行逆推

image.png

解密代码

#include<stdio.h>

int main(){

char i;
char encode_str[] = "izwhroz\"\"w\"v.K\".Ni";
char flag[18];
for ( i = 0; i < 18; i += 3 )
{
flag[i] = (18 ^ encode_str[i]) - 6;
flag[i + 1] = (encode_str[i+1] ^ 18) + 6 ;
flag[i + 2] = (encode_str[i+2] ^ 18) ^ 6;
}
puts(flag);


return 0;

}


编译运行

image.png


unctf{b66_6b6_66b}

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.