pwnable(115)
-
dreamhack.io - string
보호되어 있는 글입니다.
2022.02.03 -
HackCTF - 훈폰정음
main함수 int __cdecl main(int argc, const char **argv, const char **envp) { alarm(0x3Cu); setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stderr, 0LL, 2, 0LL); puts(asc_11C0); while ( 1 ) { menu(); switch ( (unsigned int)off_1214 ) { case 1u: add(); break; case 2u: edit(); break; case 3u: delete(); break; case 4u: check(); break; case 5u: exit(0); return; default: puts(&byte_11F..
2021.12.05 -
pwnable.kr - echo1
보호되어 있는 글입니다.
2021.10.21 -
HackCTF - Unexploitable #4
__int64 __fastcall main(__int64 a1, char **a2, char **a3) { char s[16]; // [rsp+0h] [rbp-10h] BYREF ((void (__fastcall *)(__int64, char **, char **))init_)(a1, a2, a3); fgets(s, 0x2C, stdin); return 0LL; } 다 풀려있었기에 shellcode를 의도한 문제라고 합리적의심을 할 수 있었다. 처음에 구상은 아래와 같이 했다 SFP를 BSS로 조작해서 shellcode 2번에 나누어서 삽입 shellcode가 있는 주소를 ret 해서 익스 진행 그런데 위와 같이 하다보니 레지스터가 꼬이는 상황이 발생했고, 적절하게 sub rsp, 0x20 을 해줘서 익..
2021.10.15 -
pwnable.xyz - SUS
int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax setup(argc, argv, envp); puts("SUS - Single User Storage."); while ( 1 ) { while ( 1 ) { print_menu(); printf("> "); v3 = read_int32(); if ( v3 != 1 ) break; create_user(); } if ( v3
2021.09.30 -
pwnable.xyz - TLSv00
int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // eax int v4; // [rsp+Ch] [rbp-4h] setup(argc, argv, envp); puts("Muahaha you thought I would never make a crypto chal?"); generate_key(63); while ( 1 ) { while ( 1 ) { while ( 1 ) { print_menu(); printf("> "); v3 = read_int32(); if ( v3 != 2 ) break; load_flag(); } if ( v3 > 2 ) break; if ( v3 != 1 ) goto LAB..
2021.09.29