欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]WarGame-behemoth2 解题思路

[原创]WarGame-behemoth2 解题思路

Behemoth2伪代码如下

int __cdecl main(int argc, const char **argv, const char **envp)

{

  __uid_t v3; // ebx@2

  __uid_t v4; // eax@2

  __uid_t v5; // ebx@3

  __uid_t v6; // eax@3

  struct stat stat_buf; // [sp+0h] [bp-88h]@1

  char s; // [sp+64h] [bp-24h]@1

  char v10; // [sp+68h] [bp-20h]@3

  __int16 v11; // [sp+6Ah] [bp-1Eh]@1

  char *name; // [sp+78h] [bp-10h]@1

  int v13; // [sp+7Ch] [bp-Ch]@1

  int *v14; // [sp+84h] [bp-4h]@1

  v14 = &argc;

  v13 = getpid();

  name = (char *)&v11;

  sprintf(&s, "touch %d", v13);

  if ( (lstat(name, &stat_buf) & 0xF000) != 0x8000 )

  {

    unlink(name);

    v3 = geteuid();

    v4 = geteuid();

    setreuid(v4, v3);

    system(&s);

  }

  sleep(0x7D0u);

  *(_DWORD *)&s = 544498019;

  v10 = 32;

  v5 = geteuid();

  v6 = geteuid();

  setreuid(v6, v5);

  system(&s);

  return 0;

}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功