buuctf reverse1~6

目录

 easyre

 reverse1

reverse2

内涵的软件

新年快乐 

xor


 easyre

找到主函数

 易得到flag{this_Is_a_EaSyRe}


 reverse1

  找到主函数和Str2变量

 易知,将数据中的o改成0,得到flag{hell0_w0rld}


reverse2

容易找到主函数,找到关键代码

点击数字,按r键将ascii码转化成字符

 双击flag,选中要提取的数据

 按shift+e提取数据,选择字符串形式

这是未操作的flag, 将flag中的i或r改为1即可

根据题意包上flag{}得到flag{hack1ng_fo1_fun}


内涵的软件

 找到主函数

 只有DBAPP{}包裹的字符串很可疑,将其用flag{}包裹flag{49d3c93df25caad81232130f3d2ebfad}


新年快乐 

用Exeinfo查壳,有壳 

脱壳,下载upx脱壳工具,在upx.exe的文件夹目录输入cmd,输入

upx -d [要解壳的文件完整路径]

回车,显示已脱壳

 再次查壳,无壳

易得flag{HappyNewYear!}


xor

 查壳,为64bit可执行文件,用ida64打开

找到关键函数,易知将flag的后一位与前一位的异或赋给后一位

 

找到global变量提取数据 

写出解密脚本,得到flag

#include<iostream>
using namespace std;
int main(){
    unsigned int a[] = {
        0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11, 
        0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F, 
        0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F, 
        0x47, 0x32, 0x4F, 0x00
    };
    for(int i=32;i>0;i--){
        a[i]^=a[i-1];
    }
    for(int i=0;i<33;i++)
        printf("%c",a[i]);
}
//flag{QianQiuWanDai_YiTongJiangHu}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值