Write-ups/CTFs
-
feedme - DEFCON 2016Write-ups/CTFs 2020. 3. 1. 20:43
Prob Info 32bit 프로그램이며 NX만 활성화되어있다. Code static linked에 모두 스트립되어있어 함수를 잘 찾아줘야한다. 간단하게 start에서 시작해서 메인부터 찾아줬다. int __cdecl main(int argc, const char **argv, const char **envp) { signal(14, (int)sub_8048E24); alarm(150); setvbuf((unsigned int *)off_80EA4C0, 0, 2, 0); sub_804F820((int *)off_80EA4BC); sub_80490B0(); return 0; } 함수 인자보고 대충 예상해서 이름을 맞춰줬다. void sub_80490B0() { unsigned __int8 v0; // al..
-
houseoforange - HITCON 2016Write-ups/CTFs 2020. 2. 27. 18:49
Prob Info 모든 보호기법이 걸려있다. 또한 이름에서 알 수 있듯이 House of Orange 문제이다. Code void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { signed int v3; // eax setup(); while ( 1 ) { while ( 1 ) { menu(); v3 = read_long(); if ( v3 != 2 ) break; see_house(); } if ( v3 > 2 ) { if ( v3 == 3 ) { upgrade_house(); } else { if ( v3 == 4 ) { puts("give up"); exit(0); } LABEL_14: puts("Invalid choice"); } ..
-
speedrun-009 - DEFCON 27Write-ups/CTFs 2020. 2. 22. 14:52
Prob Info 모든 보호기법이 켜져있다. Code void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { setvbuf(stdout, 0LL, 2, 0LL); if ( !getenv("DEBUG") ) alarm(5u); banner(); vuln(); finish(); exit(0); } "DEBUG"라는 환경변수가 있으면 5초 알람을 설정하지 않는다. 시작, 종료 배너를 출력해주고 그 사이에 실제 취약한 함수가 존재한다. unsigned __int64 vuln() { char buf; // [rsp+7h] [rbp-4E9h] ssize_t v2; // [rsp+8h] [rbp-4E8h] char s; // [rsp+10h] [rbp..