三道简单RE(某省省赛)

链接:https://pan.baidu.com/s/1n7Mx2D1FKJPnn8_E8ecIeg 密码:96yn

【RE1】

查壳

卧槽 竟然有壳!

脱壳..

可以使用aspackdie

之后对脱壳后的程序ida分析

 

那么就是对 aHboiufkKgocs 数组的每个字符 ^0XE就是flag

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
	string flag="hboiuFk|kGocs";
	for(int i=0;i<flag.size();i++)
	{
		flag[i]=flag[i]^ 0xE;
	}
	cout<<flag<<endl;
	return 0;
}

 【RE2】

re2是个linux下的逆向

管什么的逆向 直接拖入ida

 flag数组的内容 如果是i或者r那么就改为1其余不变

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    string flag="{hacking_for_fun}";
    for(int i=0;i<flag.size();i++)
    {
        if(flag[i]=='i'||flag[i]=='r')cout<<"1";
        else cout<<flag[i];
    }
    cout<<endl;
    return 0;
}

【RE3】

可知  一定结合了base64

这个。。。flag[i]如果在a到z之间 那么找到flag[i]在byte_402108的位置c并且flag[i]插入chr(97+c)

最后base64解密

原文地址:https://www.cnblogs.com/alyx/p/9455756.html