728x90
반응형
먼저 주어진 파일은 koe라는 파일인데, 다음과 같이 바이너리 파일인 것을 확인할 수 있다.
strings로 살펴봤을때는 flag라는 문자열이 있기는 한데 딱히 단서가 되는 것은 없는 것 같다.
HHJ 🤡 ~/Downloads strings koe
/lib/ld-linux.so.2
libc.so.6
_IO_stdin_used
puts
__libc_start_main
__gmon_start__
GLIBC_2.0
PTRh
[^_]
;*2$"(
'- &:u/85)(/&
#r55$3
5) /
5) 5
p53 (/<A
GCC: (Debian 4.9.1-4) 4.9.1
GCC: (Debian 4.8.3-10) 4.8.3
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rel.dyn
.rel.plt
.init
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.jcr
.dynamic
.got
.got.plt
.data
.bss
.comment
crtstuff.c
__JCR_LIST__
deregister_tm_clones
register_tm_clones
__do_global_dtors_aux
completed.6274
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
reallife.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
__x86.get_pc_thunk.bx
data_start
_edata
_fini
__data_start
puts@@GLIBC_2.0
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_start_main@@GLIBC_2.0
__libc_csu_init
_end
_start
_fp_hw
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
flag
_init
elf 파일을 분석하기 위해서 ghidra로 파일을 열어보면 아래와 같이 한 함수에 코드가 있는 것을 확인할 수 있다.
&DAT_08049720에 있는 값을 반복문을 하여 0x41로 XOR 해주는 것을 확인할 수 있다.
그러면 &DAT_08049720를 한 번 살펴보자.
위와 같이 여러 값들이 있는데, 이것을 전부 0x41로 XOR해주면 된다.
위에 있는 것들을 이용해서 파이썬 코드를 아래와 같이 짤 수 있다.
flag_enc = [0x26,0x3A,0x75,0x2F,0x38,0x35,0x29,0x28,0x2F,0x26,0x1E,0x28,0x32,0x1E,0x23,0x72,0x35,0x35,0x24,0x33,0x1E,0x35,0x29,0x20,0x2F,0x1E,0x35,0x29,0x20,0x35,0x1E,0x70,0x35,0x33,0x20,0x28,0x2F,0x3C,0x41,0x00,0x47,0x43]
flag=""
for i in flag_enc:
flag += chr(i^0x41)
print(flag)
이제 완성된 코드를 실행하면 다음과 같은 결과가 나온다.
플래그 형식이 조금 이상한 것 같아서 중괄호 안의 값은 그대로 하고 밖에를 flag{}로 바꿔서 플래그를 완성했다.
flag{4nything_is_b3tter_than_that_1train}
728x90
반응형
'Forensics' 카테고리의 다른 글
Dreamhack - 디지털 포렌식의 개념과 특성 (3) | 2024.10.03 |
---|---|
CTF-D writeup - Find Key(ELF) (0) | 2022.08.20 |
CTF-d writeup - fore1-hit-the-core (0) | 2022.08.20 |
CTF-d writeup - 윈도우 작업 관리자에서 우클릭... (0) | 2022.08.20 |
[기초부터 따라하는 디지털 포렌식(inflearn)] - Volatility 사용 및 문제풀이 (0) | 2022.07.24 |