Exif题目
(一)下载附件的jpg格式的图片
(二)根据这个题目的提示,去网上搜了Exif(可交换图像文件格式),用EXIF信息查看器,查看题目中所给图片的一些信息。
(三)在XMP-photoshop里面发现了一串奇怪的数字,联想到题目中的提示:“flag没有直接给出,而是经过了某种(例如 hex,bin,ASCII,base64/32/16,urlencode 等)编码。”
(四)对这串数字开始尝试这些编码,由于对ASCII这个名词还算眼熟些,便从这个开始了。用了在线转码,得到flag。
下载Typora
编写github博客Markdown文件,学长推荐的一款轻便的编辑器:Typora。
在官网下载了Typora,并搜索了一下有关语法。
[Typora极简教程][https://www.jianshu.com/p/a6a6a22e9393]
CTF中逆向题目的第二次尝试
-执行Fn+F5(刚开始忘记按Fn了,按F5按了好久没反应)得到了这个程序的伪代码,找到了其中的main函数和判断语句。
-继续分析语句中的含义。(昨天被(i + a1)和^(异或)的运算给卡住了)
-今天又仔细看了上面的代码,发现a1其实是输入字符串的取地址。而*(i+a1)便表示的是字符串的第i个字符。
-a = b^c,b = a^c,c = a^b
-通过这些,很容易就能知道字符串的求解规则了:(a1+i)=byte_400818[i]^i
-编写程序,求解。
#include<stdio.h>
int main()
{
int b[]={0x66,0x6D,0x63,0x64,0x7F,0x3C,0x36,0x72,0x57,0x42,0x64,0x38,0x78,0x52,0x7C,0x3C,0x66,0x54,0x60,0x60,0x27,0x4A,0x49,0x7F,0x71,0x58,0x52,0x72,0x7D,0x75,0x2A,0x62};
int i;
for(i=0;i<32;i++)
{
printf("%c",b[i]^i);
}
printf("\n");
return 0;
}