본문 바로가기

Wargame Write-Up141

(Pwnable.xyz) note writeup int __cdecl main(int argc, const char **argv, const char **envp) { int int32; // eax setup(argc, argv, envp); puts("Note taking 101."); while ( 1 ) { while ( 1 ) { while ( 1 ) { print_menu(); int32 = read_int32(); if ( int32 != 1 ) break; edit_note(); } if ( int32 != 2 ) break; edit_desc(); } if ( !int32 ) break; puts("Invalid"); } return 0; } It looks like a heap challenge. There are notable fu.. 2022. 1. 12.
(Pwnable.xyz) GrownUp writeup int __cdecl main(int argc, const char **argv, const char **envp) { char *src; // [rsp+8h] [rbp-28h] char buf[24]; // [rsp+10h] [rbp-20h] BYREF unsigned __int64 v6; // [rsp+28h] [rbp-8h] v6 = __readfsqword(0x28u); setup(); *buf = 0LL; *&buf[8] = 0LL; printf("Are you 18 years or older? [y/N]: "); buf[(read(0, buf, 0x10uLL) - 1)] = 0; if ( buf[0] != 'y' && buf[0] != 'Y' ) return 0; src = malloc(0x8.. 2022. 1. 11.
(Pwnable.xyz) misalignment writeup int __cdecl main(int argc, const char **argv, const char **envp) { __int64 s[20]; // [rsp+10h] [rbp-A0h] BYREF s[19] = __readfsqword(0x28u); setup(); memset(s, 0, 0x98uLL); *(&s[1] + 7) = 0xDEADBEEFLL; while ( _isoc99_scanf("%ld %ld %ld", &s[4], &s[5], &s[6]) == 3 && s[6] = -7 ) { s[s[6] + 7] = s[4] + s[5]; printf("Result: %ld\\n", s[s[6] + 7]); } if ( *(&s[1] + 7) == 0xB000000B5LL ) win(); retu.. 2022. 1. 11.
(Pwnable.xyz) add writeup int __cdecl main(int argc, const char **argv, const char **envp) { __int64 v4; // [rsp+8h] [rbp-78h] BYREF __int64 v5; // [rsp+10h] [rbp-70h] BYREF __int64 v6; // [rsp+18h] [rbp-68h] BYREF __int64 v7[12]; // [rsp+20h] [rbp-60h] BYREF v7[11] = __readfsqword(0x28u); setup(argc, argv, envp); while ( 1 ) { v4 = 0LL; v5 = 0LL; v6 = 0LL; memset(v7, 0, 0x50uLL); printf("Input: "); if ( __isoc99_scanf(".. 2022. 1. 11.