Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 히공
- 리버스 엔지니어링
- reversing.kr
- 변수
- 시탭
- 라이트 업
- PYTHON
- 2021
- reversing
- 드림핵
- Basic
- 파이썬
- 뭉뭉
- hackingcamp
- 리버싱
- c언어
- 코드엔진
- 강의
- probgame
- web
- write up
- ctf
- 풀이
- 해킹캠프
- 워 게임
- ShaktiCTF
- 라이트업
- vsCode
- write-up
- 라업
Archives
히공
hackingcamp22CTF - Demon Notepad 본문
728x90
문제
문제 파일들
UPX 패킹이다.
언패킹을 진행한다.
실행화면
ida에서 본 화면이다.
2를 입력했을 때 나오는 것들
여기서 1을 입력했을 때 sub_401080을 호출하는데 저게 굉장히 중요하다.
여기서 딱 수상한 루틴이 있다.
변수들
x32dbg로 풀었다.
메인함수
mov eax, dword ptr fs:[0x30]
movzx eax, byte ptr [eax+0x68]
NtGlobalFlag이다.
디버깅 중인지 아닌지 판단할 때 사용된다.
디버깅 중이면 0x70을 반환하고 아니면 0을 반환한다.
현재 eax값이 0x70인 것을 볼 수 있다.
패치를 통해 넘어가자
안티디버깅을 우회 했다.
이 부분에 bp를 걸어준다.
실행한다.
2를 입력한다.
그 후 여기에 bp를 걸고 1을 입력해준다.
이 함수가 굉장히 중요하다.
함수 내부다.
bp를 건다.
실행 후
0~10 중 아무거나 입력한다.
이제 0x40114F로 jmp를 해줄꺼다.
수정을 해준다.
F9를 눌러 실행하면
SENBTVB7RDNtMG5fTjB0M3A0ZH0=
이러한 문자가 뜬다.
base64처럼 보였다.
플래그 : HCAMP{D3m0n_N0t3p4d}
CTF 끝나고 문자를 만들어내는 루틴을 분석했다.
from base64 import b64decode
def int_to_str_list(num):
str_num = hex(num)[2:]
result = []
for i in range(0,len(str_num)-1,2):
result.append(int(str_num[i:i+2],16))
return result
def unsigned_int_8(num):
if num<0:
num+=0x100
return num
v13 = int_to_str_list(0x6C354D537A544A583748425A48544B59)[::-1]
v14 = int_to_str_list(0x304733533048705A)[::-1]
v15 = int_to_str_list(0x3D304E46)[::-1]
v13 = v13+v14+v15
for v6 in range(len(v13)):
v7 = v13[v6]
v8 = unsigned_int_8(v7-0x41)
if unsigned_int_8(v7-0x41) <= 0x19:
if v8<6:
v8+=26
v7 = (v8-6)%26 + 65
v13[v6]= v7
v9 = unsigned_int_8(v7-97)
if v9 <= 0x19:
if v9 < 6:
v9+=26
v13[v6] = (v9-6)%26 + 97
v13 = [chr(i) for i in v13]
st = b64decode(''.join(v13)).decode()
print(st)
플래그 : HCAMP{D3m0n_N0t3p4d}
'write up > hackingcamp22CTF' 카테고리의 다른 글
hackingcamp22CTF - dvm-rev (0) | 2021.03.20 |
---|---|
hackingcamp22CTF - Opps Enc! (0) | 2021.03.20 |
hackingcamp22CTF - revtine (0) | 2021.03.20 |
hackingcamp22CTF - Do u know it? (0) | 2021.03.20 |
Comments