본문 바로가기

역공학5

[RC3 2016] 메모리 포렌식 - 500pt 얼마 전 'RC3 2016' CTF에서 재밌는 메모리 포렌식 문제가 나왔다. 500pt로 포렌식 분야에서 배점이 가장 높았고 유일하게 못 푼 문제였다. 'TrueCrypt'에 관한 문제였는데, 목표를 잘 못 잡아 결국 풀지 못했다. ddddh@siftworkstation:~/Desktop/CTF/rc3/forensics$ vol.py -f memdump.raw imageinfoVolatility Foundation Volatility Framework 2.4Determining profile based on KDBG search... Suggested Profile(s) : Win7SP0x64, Win7SP1x64, Win2008R2SP0x64, Win2008R2SP1x64 AS Layer1 : AMD6.. 2016. 11. 27.
[RC3 2016] - Reversing 200pt http://blog.naver.com/yheekeun/220867134574 같은 팀 yokkkkk님의 풀이 Reversing -f1ay.yokkkkk [그림 1] main main은 이렇게나 간단하다.. memcpy(flag, enc(입력값), 0x23) 해서 일치하면 정답이다. [그림 2] enc 내부 내가 입력한 값을 d,a,d,?로 차례대로 암호화 시키는 것이다. 복호화 소스를 짜보자 [그림 3] 복호화 소스 [그림 4] sol내가 찾고자하는 플레그가 아니라고 한다... 엄청난 삽질 끝에, [그림 5] 바이너리 끝 FLAG가 뒤집혀 들어가있는 것을 알 수 있다. 그리고 문제이름도 elf의 반대인 fle이다.바이너리를 뒤집어보자 [그림 6] 뒤집기 [그림 7] 수정 fix_fle 파일 내부인데 E.. 2016. 11. 21.
[RC3 2016] - Reversing 350pt 대회기간 : 토요일, 19 11월 2016, 02:00 UTC — 월요일, 21 11월 2016, 07:00 UTC 대회명 : RC3문제 : RC3Ciper - Reversing [350pt] 제일 고득점이지만 제일 쉬운 문제. 아마 출제자의 의도는 이렇게 푸는게 아니였지 싶다...CTF는 푸는 속도가 생명이기 때문에 풀이의 질이 다소 떨어질 수 있습니다. 2016. 11. 21.
[RC3 2016] - Reversing 100pt 대회기간 : 토요일, 19 11월 2016, 02:00 UTC — 월요일, 21 11월 2016, 07:00 UTC 대회명 : RC3문제 : logmein - Reversing [100pt] 1. 흐름 파악 바이너리를 다운 받고 HxD로 열어보면 ELF파일임을 알 수 있다. 64 bit ELF파일이었고 IDA를 통해서 정적 분석을 먼저 시도하였다. (RC3의 모든 Reversing는 64 bit / ELF 바이너리였다.) String 값들을 확인해 보면 "Enter your guess"에서 Data를 넘겨주면 어떠한 연산을 거쳐 성공 분기점이 나눠지는 걸 알 수 있다. 2. 정적 분석 scanf로 입력 값을 받은 뒤 strlen으로 입력 길이를 체크 후 분기점으로 나뉘게 된다. 또 한, 중간중간 연산 결.. 2016. 11. 21.