[FlareOn5]Minesweeper Championship Registration
下载附件打开后是jar文件,直接用jdgui打开就能发现flag
[MRCTF2020]PixelShooter
下载附件发现是apk文件,然后搜索有搜索发现是安卓逆向,要用到jeb但是没下就根据别人博客下载了一个,然后又扒拉扒拉别人博客发现安卓unity游戏的核心逻辑一般位于assets\bin\Data\Managed\Assembly-CSharp.dll,所以这里我们可以直接进去搜索{,然后会发现
我们也就得出了flag为:flag{Unity_1S_Fun_233}
[ACTF新生赛2020]SoulLike
下载附件打开查壳发现无壳是64位
然后ida打开直接反编译查看主函数
__int64 __fastcall main(int a1, char **a2, char **a3)
{
char v5; // [rsp+7h] [rbp-B9h]
int i; // [rsp+8h] [rbp-B8h]
int j; // [rsp+Ch] [rbp-B4h]
int v8[14]; // [rsp+10h] [rbp-B0h] BYREF
char v9[110]; // [rsp+4Ah] [rbp-76h] BYREF
unsigned __int64 v10; // [rsp+B8h] [rbp-8h]
v10 = __readfsqword(0x28u);
printf("input flag:");
scanf("%s", &v9[6]);
strcpy(v9, "actf{");
v5 = 1;
for ( i = 0; i <= 4; ++i )
{
if ( v9[i] != v9[i + 6] )
{
v5 = 0;
goto LABEL_6;
}
}
if ( !v5 )
goto LABEL_16;
LABEL_6:
for ( j = 0; j <= 11; ++j )
v8[j] = v9[j + 11];
if ( (unsigned __int8)sub_83A(v8) && v9[23] == 125 )
{
printf("That's true! flag is %s", &v9[6]);
return 0LL;
}
else
{
LABEL_16:
printf("Try another time...");
return 0LL;
}
}
主函数是这玩意然后分析了一波发现加密函数肯定是sub_83A,但是这里打不开并给出提示
然后去网络上又找了找,又看了看佬的博客,最后弄明白了原因是函数太大导致反编译失败,然后将其成功显示出来需要修改配置文件,就是把配置文件IDA\cfg\hexrays.cfg给修改了,并将
MAX_FUNCSIZE = 64 // Functions over 64K are not decompiled
修改为:
MAX_FUNCSIZE = 1024 // Functions over 64K are not decompiled
修改成功并保存后即可成功打开发现这个函数三千多行,贼拉多,但是就是对数组的处理以及异或操作,所以这里写脚本也没有搞出来因为代码段太长了,就借鉴了一下网上大佬的脚本,可是好像因为这个代码有点多很多脚本都不完整,但是还有一种pwn的解法,根据栈溢出来进行exp的编写,因为实力有限就没有细看所以就只看了他们c的脚本
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int v4[]={126,50,37,88,89,107,53,110,0,19,30,56};
int sub_83A(char *v1,int i)
{
*v1 ^= 43u;
v1[1] ^= 108u;
v1[2] ^= 126u;
v1[3] ^= 86u;
//复制源代码
v1[8] ^= 0x6Bu;
v1[9] ^= 0x70u;
v1[10] ^= 0x29u;
v1[11] ^= 0x3Bu;
if(v1[i] == v4[i])
return 1;
else
return 0;
}
int main()
{
int i,j;
char flag[13] = "";
char tmp[13] = "";
for(i = 0; i < 12 ; i++)
{
for(j = 33; j <= 126 ; j++)
{
strcpy(flag,tmp);
flag[i] = j;
if(sub_83A(flag,i))
{
tmp[i] = j;
break;
}
}
}
printf("actf{%s}\n",tmp);
return 0;
}
最后运行的结果就是flag为:flag{b0Nf|Re_LiT!}
当然也写了一些杂项和密码题,但是因为有点lazy就就就不想写博客了