BUUCTF 新年快乐 RE

这题主要考查查壳与去壳
首先用 Die 查看文件信息
img
可以看到文件是32位的且有一个UPX壳,那接下来就是脱壳操作
img
放入ida反编译得到main函数伪代码

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int result; // eax
  char Str2[14]; // [esp+12h] [ebp-3Ah] BYREF
  __int16 Str1; // [esp+20h] [ebp-2Ch] BYREF
  _BYTE v6[30]; // [esp+22h] [ebp-2Ah] BYREF

  __main();
  strcpy(Str2, "HappyNewYear!");
  Str1 = 0;
  memset(v6, 0, sizeof(v6));
  printf("please input the true flag:");
  scanf("%s", &Str1);
  if ( !strncmp((const char *)&Str1, Str2, strlen(Str2)) )
    result = puts("this is true flag!");
  else
    result = puts("wrong!");
  return result;
}

简单阅读可知flag即为
flag{HappyNewYear!}
另外我们也可以手动脱壳
这篇博文写的很详细

posted @   Tree_24  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示