1.12 buuctf逆向基础题目

1.12 buuctf逆向基础题目

1.easyre

打开程序就一个黑框,输入东西也没有反应

直接ida打开

在这个汇编逻辑框里就能看到flag了,也可f5查看伪代码得到

 

2.reverse1

打开题目要求输flag,随机输了几个数字直接关闭程序了

老样子打开ida分析

 

一开始没找到啥有用的东西,shift+f12之后看到第四行有一个跟flag相关的东西,点击跟进。

 

跟进后点击下面的数据继续跟进然后f5查看伪代码

伪代码如下

由上面if那行,可以得知是替换,将ascii码为111的字符替换为ascii码为48的字符,即o替换为0

于是我们跟进原始的数据,将这个字符串中的o替换为0即可得到flag

 

3.reverse2

下载得到一个文件,直接用ida打开观察主函数并查看伪代码如下

这里可以观察到一个明显的替换,将字符串中ascii码为105,114的字符替换为ascii码为49的字符。即将i和r替换为1,于是我们找到flag的原始字符串,点击flag跟进

替换后得flag{hack1ng_fo1_fun}

 

4.内涵的软件

打开题目如图,输入y/n提示错误后退出

在主函数中并没有找到什么有价值的东西

于是shift+f12发现一个格式和flag很像的字符串

跟进一下

没有啥替换变化之类的,推测flag就是花括号里面的那一串,于是把前缀改为flag交上去就对了

 

5.新年快乐

下载打开程序

第一步让我们输入flag,随机输入几个数自动弹出

脱进ida观察,这样子一看就是加了壳的

Peid观察一波发现有一个upx的壳

于是开始脱壳

将程序拖进专用破解虚拟机

用工具成功脱壳

拿回win10重新用ida打开,现在程序就正常了

分析主函数,直接可得到flag的明文,为HappyNewYear!

于是flag为flag{HappyNewYear!}

 

6.xor

Xor是异或的意思,猜测程序考察的是逆向异或运算。下载程序解压得到一个文件和一个文件夹,我们直接分析那个单独的文件就行了,用ida打开,主函数代码如下

  1. int __cdecl main(int argc, const char **argv, const char **envp)
  2. {
  3.   int i; // [rsp+2Ch] [rbp-124h]
  4.   char __b[264]; // [rsp+40h] [rbp-110h] BYREF
  5.  
  6.   memset(__b, 00x100uLL);
  7.   printf("Input your flag:\n");
  8.   get_line(__b, 256LL);
  9.   if ( strlen(__b) != 33 )
  10.     goto LABEL_7;
  11.   for ( i = 1; i < 33; ++i )
  12.     __b[i] ^= __b[i - 1];
  13.   if ( !strncmp(__b, global, 0x21uLL) )
  14.     printf("Success");
  15.   else
  16. LABEL_7:
  17.     printf("Failed");
  18.   return 0;
  19. }

可以由strlen函数得知程序中字符串长度为33,global是逆向后的字符串,于是点击global跟进

在点击显示完整如下

最终人工整理得字符串如下

16进制下该字符串表示为

根据主函数中的

  1.     __b[i] ^= __b[i - 1];

由于异或运算具有自反性质,我们可以逆向得到其原来的字符串。

开始写python脚本如下

  1. a=[0x660x0A0x6B0x0C0x770x26,
  2.     0x4F0x2E0x400x110x780x0D,
  3.     0x5A0x3B0x550x11
  4.     0x700x190x460x1F0x760x22,
  5.     0x4D0x230x440x0E0x67,
  6.     0x060x680x0F0x470x32,0x4F]
  7. s=''
  8. s+='f'
  9. for i in range(1,len(a)):
  10.     s+=chr(a[i]^a[i-1])
  11. print(s)

由于flag第一位也是f,所以提前加上去单独列出,执行该程序可得flag

得到flag{QianQiuWanDai_YiTongJiangHu}

posted @ 2022-01-12 14:33  wysng  阅读(323)  评论(0编辑  收藏  举报