BiliBili 1024程序员节 技术对抗赛 逆向 ID-6
本帖最后由 ahov 于 2021-10-24 10:39 编辑下载地址:https://security.bilibili.com/sec1024/q/test.apk
有没有伙伴能够逆向出解题答案flag的{:1_885:}{:301_995:}
(最好分享一下解题思路?{:301_971:}) 在so里,其他题目有头绪吗
if ( *(_DWORD *)res1 == 3553400 && *(unsigned __int16 *)res2 == 57 )
{
v1 = fopen("/data/2233", "r");
if ( v1 )
{
fclose(v1);
strcpy((char *)encrypt, "bili_2233_3322");
strcpy((char *)encrypt2, "bili_3322_2233");
*(_OWORD *)context.count = xmmword_1F60;
*(_QWORD *)&context.state = 0x1032547698BADCFELL;
v2 = __strlen_chk((const char *)encrypt, 0xFuLL);
EU(&context, encrypt, v2);
*(_DWORD *)res3 = context.count;
v24 = context.count;
v3 = (context.count >> 3) & 0x3F;
if ( v3 >= 0x38 )
v4 = 120;
else
v4 = 56;
EU(&context, PADDING, v4 - v3);
EU(&context, res3, 8u);
*(_DWORD *)decrypt = context.state;
*(_OWORD *)v15.count = xmmword_1F60;
*(_QWORD *)&decrypt = *(_QWORD *)&context.state;
*(_DWORD *)&decrypt = context.state;
*(_QWORD *)&v15.state = 0x1032547698BADCFELL;
v5 = __strlen_chk((const char *)encrypt2, 0xFuLL);
EU(&v15, encrypt2, v5);
v6 = (v15.count >> 3) & 0x3F;
*(_DWORD *)res3 = v15.count;
v24 = v15.count;
if ( v6 >= 0x38 )
v7 = 120;
else
v7 = 56;
EU(&v15, PADDING, v7 - v6);
EU(&v15, res3, 8u);
*(_DWORD *)decrypt2 = v15.state;
*(_QWORD *)&decrypt2 = *(_QWORD *)&v15.state;
*(_DWORD *)&decrypt2 = v15.state;
v10 = fopen("/data/2233", "a+");
if ( v10 )
{
for ( i = 0LL; i != 8; ++i )
{
ZL7sprintfPcU17pass_object_size1PKcz(res3, v8, v9, decrypt);
ZL7sprintfPcU17pass_object_size1PKcz(dest, v12, v13, decrypt2);
fputs((const char *)res3, v10);
fputs((const char *)dest, v10);
}
fwrite("-----------\n", 0xCuLL, 1uLL, v10); 这个apk有两道逆向题,一个题目ID-5的flag就是516834cc-50e448af-bcf9ed53-9ae4328e
现在这个题目ID-6的,目前都还没人知道了…… {:1_925:}直接报答案有什么意思 账户密码,先与3异或,然后base64编码,与下面比较…
是这样吗? 要跑码?
73,49,79,122,65,51,89,71,65,117,78,106,78,109,78,122,99,55,89,109,85,61
89, 87, 66, 108, 79, 109, 90, 110, 78, 106, 65, 117, 79, 109, 74, 109, 78, 122, 65, 120, 79, 50, 89, 61 无闻无问 发表于 2021-10-24 11:38
账户密码,先与3异或,然后base64编码,与下面比较…
是这样吗? 要跑码?
我也发现了,不过这个好像是第五题的关键代码 我用ida 看到里面有些奇怪的函数,感觉和第6题有关 Conanbin 发表于 2021-10-24 12:24
我用ida 看到里面有些奇怪的函数,感觉和第6题有关
好像在lib-so里面? Conanbin 发表于 2021-10-24 12:39
在so里,其他题目有头绪吗
if ( *(_DWORD *)res1 == 3553400 && *(unsigned __in ...
不太有
输出2233
Flag能出来什么东西吗 6,ida逆向so,会验证abi和系统版本, 改build.prop,ro.product.cpu.abi为x86,ro.build.version.release为9,然后再创建/data/2233,4byte一组变成xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx这样好烦啊,没看懂什么意思