HTB_rev Behind the Scenes Writeup
用010 Editor (或者Hex Editor之类的都行)打开源文件,将里面所有的 0F 0B
(即 ud2
)改为 90 90
(90
即NOP
,是Machine Code中表示 无操作 (No Operation)
的命令),然后再用IDA打开文件即可看到完整的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| int __fastcall main(int argc, const char **argv, const char **envp) { struct sigaction s; unsigned __int64 v5;
v5 = __readfsqword(0x28u); memset(&s, 0, sizeof(s)); sigemptyset(&s.sa_mask); s.sa_handler = (__sighandler_t)segill_sigaction; s.sa_flags = 4; sigaction(4, &s, 0LL); if ( argc == 2 ) { if ( strlen(argv[1]) == 12 ) { if ( !strncmp(argv[1], "Itz", 3uLL) ) { if ( !strncmp(argv[1] + 3, "_0n", 3uLL) ) { if ( !strncmp(argv[1] + 6, "Ly_", 3uLL) ) { if ( !strncmp(argv[1] + 9, "UD2", 3uLL) ) printf("> HTB{%s}\n", argv[1]); return 0; } else { return 0; } } else { return 0; } } else { return 0; } } else { return 0; } } else { puts("./challenge <password>"); return 1; } }
|
所以flag为