boxmoe_header_banner_img

欢迎来到烨的世界~

加载中

文章导读

题库-高级


avatar
liuye 2025年5月1日 112

题1-both

无壳

先不看wp自己试试

主函数
int __cdecl main(int argc, const char **argv, const char **envp)
{
int i; // eax
HANDLE Handles[2]; // [esp+8h] [ebp-Ch] BYREF

printf("plz input your flag:"); // 输出提示
scanf("%42s", inputflag);
Handles[0] = CreateThread(0, 0, StartAddress, 0, 0, 0);
Handles[1] = CreateThread(0, 0, loc_191200, 0, 0, 0);
CreateThread(0, 0, sub_191240, 0, 0, 0);
WaitForMultipleObjects(2u, Handles, 1, 0xFFFFFFFF);
for ( i = 0; i < 42; ++i )
{
if ( inputflag[i] != byte_192150[i] )
{
printf("error");
exit(0);
}
}
printf("win");
getchar();
return 0;
}

一开始我以为

scanf(“plz input your flag:”); // 输入v5=flag

这句是输入而且v5是输入

但上面截完图发现这句我改名的scanf其实应该是printf

后面%42s对应的byte_19336C才是存用户输入的“如123”

接着分析

Handles[0] = CreateThread(0, 0, StartAddress, 0, 0, 0);
Handles[1] = CreateThread(0, 0, loc_191200, 0, 0, 0);

这两句不太懂

查完后发现这两句是线程启动和保存线程地址的?

似乎和解密不大相关,继续去看

WaitForMultipleObjects(2u, Handles, 1, 0xFFFFFFFF);

还是不懂继续搜

没写完去看iscc了

放一下wp吧

晚会再来



评论(0)

查看评论列表

暂无评论


发表评论