buuctf reverse 刷题

1.新年快乐

pe查壳发现是32位有壳

buuctf reverse 刷题_第1张图片

工具脱壳

buuctf reverse 刷题_第2张图片

脱壳后拖进32位IDA查看关键字符串

buuctf reverse 刷题_第3张图片

 查看伪代码

 buuctf reverse 刷题_第4张图片

其中的函数大概意思如下图 buuctf reverse 刷题_第5张图片

 由此可以得到flag{HappyNewYear}

2.xor

老规矩pe查壳,无壳,64位

buuctf reverse 刷题_第6张图片

 拖进64位IDA,查看关键字符串

 buuctf reverse 刷题_第7张图片

关键代码解释如下图buuctf reverse 刷题_第8张图片

跟进global这个字符串buuctf reverse 刷题_第9张图片

 shife+E提取buuctf reverse 刷题_第10张图片

 用脚本进行异或(关键点:两次异或还是它本身)buuctf reverse 刷题_第11张图片

运行得到flag

3.reverse3

无壳,32位

buuctf reverse 刷题_第12张图片

 

 拖进IDA查看

buuctf reverse 刷题_第13张图片

 查看伪代码

 buuctf reverse 刷题_第14张图片

 这个题的大致思路是输入了一个Str(即flag,我们需要逆着将Str还原出来)进行一系列转换,最终变成ldest,然后与str2进行比较是否相同,相同则是flag,所以我们要知道进行了哪些操作(如上图),即Str2(如下图)

buuctf reverse 刷题_第15张图片

python脚本逆推Str1buuctf reverse 刷题_第16张图片

sub_4110BE这个函数对Str1进行了base64编码所以将得到的字符串进行解码buuctf reverse 刷题_第17张图片

得到的字符串用flag{}包上就是最中的结果了.

 

你可能感兴趣的:(python,c语言,学习方法,笔记)