목록분류 전체보기 (285)
tmxklab

1. 문제 nc svc.pwnable.xyz 30032 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // eax setup(argc, argv, envp); while ( 1 ) { while ( 1 ) { printMenu(); v3 = getInt(); if ( v3 != 2 ) break; usePower(); } if ( v3 > 2 ) { if ( v3 == 3 ) { deleteHero(); } else { if ( v3 == 4 ) { puts("goodbye!"); exit(1); } LABEL_..

1. 문제 nc svc.pwnable.xyz 30030 1) mitigation 확인 2) 문제 확인 4개의 메뉴가 보이며 노트를 작성할 수 있고 출력, 삭제 기능이 보인다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); puts("Note taking 102."); while ( 1 ) { print_menu(); switch ( (unsigned __int64)(unsigned int)read_int32() ) { case 0uLL: return 0; case 1uLL: make_note(); break; case 2uLL: edit_note(..

1. 문제 nc svc.pwnable.xyz 30028 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax _QWORD *v4; // rax __int64 v5; // rdx int i; // [rsp+0h] [rbp-20h] int fd; // [rsp+4h] [rbp-1Ch] setup(argc, argv, envp); solve_pow(); puts("Shellcode executioner"); fd = open("/dev/urandom", 0); if ( fd == -1 ) { puts("error"); res..

1. 문제 nc svc.pwnable.xyz 30027 1) mitigation 확인 2) 문제 확인 계속 입력을 받을 수 있고 score가 계속 깎이고 있다. 3) 코드흐름 파악 3-1) main() __int64 __fastcall main(__int64 a1, char **a2, char **a3) { init_func(); puts("Yolo yada yada - Play with me!"); puts("==========================================="); start_main(); return 0LL; } 3-2) start_main() unsigned __int64 start_main() { size_t v0; // rax size_t v2; // rax char ..

1. 문제 nc svc.pwnable.xyz 30026 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // eax int v4; // [rsp+0h] [rbp-20h] size_t n; // [rsp+8h] [rbp-18h] void *s; // [rsp+10h] [rbp-10h] unsigned __int64 v7; // [rsp+18h] [rbp-8h] v7 = __readfsqword(0x28u); setup(argc, argv, envp); puts("Secure login."); printf("User ..

1. 문제 nc svc.pwnable.xyz 30025 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { _QWORD *v4; // rax int i; // [rsp+0h] [rbp-20h] int fd; // [rsp+4h] [rbp-1Ch] setup(argc, argv, envp); solve_pow(); puts("Shellcode executioner"); fd = open("/dev/urandom", 0); if ( fd != -1 ) { read(fd, key, 0x7FuLL); close(fd); printf("Input: "); re..

1. 문제 nc svc.pwnable.xyz 30024 1) mitigation 확인 2) 문제 확인 이름을 입력하고 캐릭터를 선택한다. 이후에 어떤 값을 넣으면 이름을 출력하고 종료된다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { size_t v3; // rax unsigned int v5; // [rsp+0h] [rbp-10h] unsigned int v6; // [rsp+4h] [rbp-Ch] unsigned __int64 v7; // [rsp+8h] [rbp-8h] v7 = __readfsqword(0x28u); setup(argc, argv, envp); motd_select_c..

1. 문제 nc svc.pwnable.xyz 30023 1) mitigation 확인 2) 문제 확인 name을 저장하고 수정하고 출력할 수 있는 프로그램인 것 같다. 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int i; // [rsp+Ch] [rbp-14h] int j; // [rsp+10h] [rbp-10h] int v7; // [rsp+18h] [rbp-8h] int v8; // [rsp+1Ch] [rbp-4h] setup(argc, argv, envp); while ( 1 ) { while ( 1 ) { print_menu(); v3 = read_int..

1. 문제 nc svc.pwnable.xyz 30022 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); puts("PvP - Programmatically vulnerable Program"); while ( 1 ) { print_menu(); switch ( (unsigned __int64)(unsigned int)read_int32() ) { case 0uLL: return 0; case 1uLL: if ( dword_6026A8 ) short_append(); else puts("Message is..

1. 문제 nc svc.pwnable.xyz 30021 1) mitigation 확인 2) 문제 확인 3) 코드흐름 파악 (참고로, 변수 이름을 조금 수정했음) 3-1) main() int __cdecl main(int argc, const char **argv, const char **envp) { setup(argc, argv, envp); init_login(); puts("Web bookmarks."); while ( 1 ) { print_menu(); switch ( (unsigned __int64)(unsigned int)read_long() ) { case 0uLL: return 0; case 1uLL: printf("Password: "); if ( password == (int)read_..