CTF 5

FoobarCTF 2021 reversing Write-up (Z3)

서 론 한 2주만에? CTF문제를 다시 풀어보는 것 같다. 오랜만에 감도 잡을겸 ctftime에 있는 대회중 대충 집어서 문제를 풀어봤다. Child_rev upx패킹이 되어있어 패킹을 풀고 분석을 진행하였다. 이 함수가 메인 코드이다. for문을 34번 돌면서 비교를하는데 항상 참이어야한다. if문을 보면 v6[34] == v6[0], v6[35] ==v6[1]..... 이런식일 것이다. 잘 생각해보면 10째줄을 xor한번더 해주면된다. v7(고정값)을 가지고 말이다. l = [ 0x012F78, 0x012F30, 0x012F72, 0x012F5F, 0x012F61, 0x012F6E, 0x012F64, 0x012F5F, 0x012F6C, 0x012F30, 0x012F67, 0x012F31, 0x012F..

CTF 2021.04.05

justCTF2020] debug_me_if_you_can ( LD_PRELOAD 후킹, ptrace )

후 기 : 이번 대회로 ptrace개념을 정확히 알게되었다.!!!!!!!! 기 본 개 념 ptrace란?? 부모 프로세스가 다른 프로세스의 실행을 관찰하거나 제어하는 수단을 제공한다. (자식 프로세스) 아래의 표는 ptrace함수의 첫번째 인자로 들어가는 request마다의 행동을 요약해 둔 것입니다. TRACE_TRACEME 자기 자신을 추적 가능하도록 만드며, 부모 프로세스에 의해 추적되는 것을 나타냅니다. PTRACE_PEEKTEXT, PTRACE_PEEKDATA 자식 프로세스의 주어진 주소의 WORD를 읽어 리턴합니다. PTRACE_POKETEXT, PTRACE_POKEDATA 부모 프로세스 메모리 주소에서 자식 프로세스 메모리 주소로 WORD를 복사합니다. PTRACE_PEEKUSER 자식 프로..

CTF 2021.02.01

Google Capture The Flag 2020] Basics (Verilog)

이 문제를 택한 이유는 최근 CTF에서 Verilog언어를 사용한 문제가 종종 출제되고 있어서 문법도 공부해볼겸 적어봅니다. ( 참고로 제기준에서 이해하기 쉽게 적은 것이라 틀린부분이 있을 수 도있습니다.) 파일은 Verilog언어로 하드웨어 동작?을 구현한 문제입니다. 이를 분석해서 input을 넣으면 flag가 나옵니다. 파일은 main.pp와 check.sv가 주어집니다. #include "obj_dir/Vcheck.h" #include #include int main(int argc, char *argv[]) { Verilated::commandArgs(argc, argv); std::cout data = c & 0x7f; check->clk = false; check->eval(); check-..

CTF 2021.01.18

BambooFox CTF

대회를 늦게시작하여 이미 점수가 많이 떨어진상태... 하지만 1인팀 치고 나쁘지 않은 결과다 ^^ Ransomware pyc파일이 주어지는데 uncompyle6로 디컴파일 해주면 코드가 보이고, 복호화 코드를 짜주면 끝. import requests data = __import__('requests').get('https://ctf.bamboofox.tw/rules').text.encode() key = data[99:115] iv = data[153:169] from Crypto.Cipher import AES data = open('flag.enc','rb').read() cipher = AES.new(key, AES.MODE_CBC, iv) dec = cipher.decrypt(data) with ..

CTF 2021.01.18