System Hacking (pwnable) 84

[Hacktheon] Hacktheon CTF pwn ( write - up )

2년만에 포스팅 ... 대학생 신분(대학부)로서는 처음으로 하는대회! 대학원생 형들 두분 / 새내기 친구 한명과 우수상 수상했습니다. 다만 문제의 대부분이 CCE 2021 예선 문제를 재탕한 경우가 많아서 아쉬웠네요. 규모로보나 상금으로보나 큰 대회였는데 .. PWNABLE 3 (SJ-004) 리턴 지향 프로그래밍 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [rsp+Ch] [rbp-14h] BYREF char s[8]; // [rsp+10h] [rbp-10h] BYREF __int64 v6; // [rsp+18h] [rbp-8h] setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stdout,..

[RCTF] vm ( write - up )

RCTF vmConcept64bit짜리(?) 스택 구현구현된 instruction은 ADD,MUL,DIV,SUB,MOV,JR(JUMP REGITSER),JMP 등등등... Analysisstruct vm { uint64_t *registers[8]; uint64_t *rsp; uint64_t *rbp; uint8_t *pc; uint32_t stackSize; uint32_t stackCheck; };일단 사용하는 구조체는 위와 같다. enum{ OP_ADD = 0, // add OP_SUB, // sub OP_MUL, // mul OP_DIV, // div OP_MOV, // mov OP_JSR, // jump register OP_AND, // bitwise and OP_XOR, // bitwise ..

[DefenitCTF] Variable-machine ( write-up )

DefenitCTF Variable-machineConcept원하는 자료형(int, char, string)의 변수를 Allocate, Delete, Edit, Print, Operate, Concat 할 수 있는 프로그램을 VM으로 구현한 바이너리. Analysis동작 방식 : Code입력 -> (getOpcode -> startVM) 반복 -> 종료 initProgram()__int64 initProgram() { pthread_t newthread; // [rsp+18h] [rbp-8h] ​ setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stdout, 0LL, 2, 0LL); if ( pthread_create(&newthread, 0LL, initGclist, 0LL) ptr ..

[codegate] 7amebox1 ( write-up )

CODEGATE2018 7amebox1일단 요즘 분석능력을 기르기 위해서이기도 하고 일반적인 힙문제도 안나오는거같고 해서 vm문제를 좀 보려고 하는데 많은분들이 추천해주셔서 보게되었다.문제를 구성하는 파일은 총 4개이다._7amebox.py : vm을 구현해둔 python 파일해당 파일에서 *.firm파일을 파싱flag : 플래그mic_check.firm : 바이트코드로 이루어짐vm_original.py : 에물레이터 일단 특징을 보면, 21bit로 구현되어있다. (1byte = 7bit) 그리고 31개의 명령어와 6개의 syscall이 구현되어있다.이제 vm_original에서 핵심 부분을 살펴보자. 먼저, EMU calss의 execute이다.def execute(self): try: while 1:..