0x07 CTF/[스스로 푼 것](30)
-
HacktheBox CTF coding problem
문제 명 AlienCamp 문제 컨셉은 이모지에 대응되는 값들이 유동적으로 변하는 서버에서 나누기를 제외한 사칙연산을 랜덤하게 추출하여 계산하는 문제이다. 처음에 헤맸는데 그 이유는 곱셈이 연산 우선순위가 되어야하는것을 깜박하고 있었기 때문. #-*-coding:utf-8-*- import emoji import sys from pwn import * # Algorithm # '1' -> Setting the Emogi's value # '2' -> Based on the '1' result value -> Calc ################ Emoji ####################### # \xf0\x9f\x8c\x9e : sun_with_face # \xf0\x9f\x8d\xa8 : ice..
2021.04.24 -
zer0pts 2021 - not beginners rev
새벽에 잠이 안와서 최근 대회 문제 중 zer0pts의 문제를 풀어보기로 했다. 14명 밖에 풀지 못하여 꽤 어려울 거 같지만 도전! 오늘의 컨셉은 실시간으로 푸는 듯한 컨셉으로 진행한다. 며칠이 걸릴 수도 있다... 시작 시간 : 12 March 4:00 AM (SGT) 1. 프로그램 취지를 파악하라. 프로그램의 취지를 파악하기 좋은 방법 중 하나는 직접 실행해보는 것이다. 2번의 실행을 통해 고정 값이 3개임을 파악할 수 있다. 입력 값 한번 입력하는 구간 존재 입력 값을 통해 특정 연산을 취하는 구간 존재 2. 고정 된 3개의 값은 어디에? 상단의 동적분석에서 얻게 된 값이 어디에 있는지 파악해보면 좋을 거 같다는 생각을 할 수 있다. 0x5aaf63e5c1f262bf, 0xa967ff06da3b4..
2021.03.12 -
AeroCTF2021 Dummyper
문제 카테고리: Rev TL;DR: 바이너리 속 유추할 수 있는 규칙을 통해 암호화 된 섹션을 복구해야한다. External에 존재하는 모듈을 연계지어 생각하면 분석이 용이하다. AES CBC 임을 유추해야한다. time() 을 어떻게 사용할 것인지 고민해야한다. 바이너리 분석: 파일 크기: 38400000 파일 크기가 큰 것으로 보아, 덤프파일임을 유추할 수 있다. 메인 함수에 3개의 서브 함수가 존재하나, loc_1691의 경우 올바르게 디스어셈블 되지 못하고 있는 상황임을 확인할 수 있다. 이에 따른 원인은 sub_172A 함수에 진입하면 보다 더 자세히 알 수 있게 된다. sub_172A 함수 .text 섹션 unk_13A9 + 895까지 복호화 시키는 루틴이다. 범위는 0x13A9부터 0x172..
2021.03.02 -
[REV] COMPEST - CreeptiCity
보호되어 있는 글입니다.
2020.09.12 -
HexionCTF XOR - Crypto
대회 끝나고 풀긴 했지만, 나름 재밌게 풀었다. 1. Concept XOR Encrypt -> XOR Decrypt 2. Source Code Analysis from random import choice, randint from string import ascii_letters from itertools import cycle key = ''.join([choice(ascii_letters) for i in range(randint(8, 16))]) with open("flag.txt", "r") as file: flag = file.read() key_gen = cycle(key) data = [] for i in range(len(flag)): data.append(chr(ord(flag[i]) ^..
2020.04.18 -
ISITDTU CTF Reversing inter
CTF가 끝난 지는 조금 되었지만, 틈틈이 시간을 내어 바이너리를 분석해본 결과 플래그를 획득할 수 있었다. 노력은 배신하지 않는다 !! 출제자의 문제 concept스레드에서 breakpoint(0xCC)를 이용하여 프로그램을 종료하는 로직을 사용 md5를 너무 너무 사랑함 (이 CTF rev 제일 처음 문제도 md5 였음 ㅋㅋ)5단계 마다 루틴이 다 다름 한눈에 보는 KEY 값 1round : 2033218911 2round : 1664380511 3round : 1647600432 4round : 1835360107 5round : 829307169 플래그 추출 루틴 분석 뿐만 아니라 출제자가 어떤 식으로 코드를 작성했는지 궁금해서 이것 저것 둘러보았다. 출제자의 습관도 알 수 있을 뿐만 아니라, 역..
2018.08.03