BUUCTF 逆向题目 内涵的软件
题目地址:
https://buuoj.cn/challenges#%E5%86%85%E6%B6%B5%E7%9A%84%E8%BD%AF%E4%BB%B6
https://files.buuoj.cn/files/0450881183f6478e110f9ea27581683b/70125468-0786-4705-bd91-87037f8f3e16.exe
首先,查壳
信息:
文件名: H://BUUCTF/内涵的软件/70125468-0786-4705-bd91-87037f8f3e16.exe
大小: 184408(180.09 KiB)
操作系统: Windows(95)
架构: I386
模式: 32 位
类型: 控制台
字节序: LE
使用IDA32打开
F5
int __cdecl main_0(int argc, const char **argv, const char **envp)
{
char v4[4]; // [esp+4Ch] [ebp-Ch] BYREF
const char *v5; // [esp+50h] [ebp-8h]
int v6; // [esp+54h] [ebp-4h]
v6 = 5;
v5 = "DBAPP{49d3c93df25caad81232130f3d2ebfad}";
while ( v6 >= 0 )
{
printf(&byte_4250EC, v6);
sub_40100A();
--v6;
}
printf(asc_425088);
v4[0] = 1;
scanf("%c", v4);
if ( v4[0] == 'Y' )
{
printf(aOd);
return sub_40100A();
}
else
{
if ( v4[0] == 'N' )
printf(&byte_425034);
else
printf(&byte_42501C);
return sub_40100A();
}
}
Flag
flag{49d3c93df25caad81232130f3d2ebfad}
过程总结题目条件:
1.PE文件 (exe文件是属于PE文件的一种)
做题步骤:
1.双击exe文件看有无信息
2.使用查壳软件查壳,了解程序是多少位的(64位或32位)
3.使用ida进行分析(用Shift+F12查看一下字符串,寻找关键词(如flag等))
ida分析过程:
1.Shift+F12查看一下字符串,寻找关键词(如flag等),如没有关键词,就在main函数里查找信息
2.双击字符串,查看包含该字符串的位置
3.查看引用该字符串的详细地址
4.使用F5反汇编,查看伪代码
5.分析伪代码(选中数字后按键盘"R"键,即可将数字转换为字符;选中变量后,按下键盘"X"键查看该变量的交叉引用)