본문 바로가기

반응형

Reversing

(13)
Reversing/Tool/Radare2 OverView RADARE2 FRAMEWORK#설치$ git clone https://github.com/radare/radare2.git$ cd radare2/sys/$ sudo ./install.sh # radare2-UNIX 기반 시스템 환경에서 리버스 엔지니어링에 사용되는 프레임워크, 리버싱과 시스템 해킹을 할때 구분없이 자주 쓰인다.커맨드라인 인터페이스 형식공식 가이드 : https://radare.gitbooks.io/radare2book/content/Radare2 기능 테스트 : RPISEC의 바이너리 취약점 분석 강좌(CCI 4968 - Modern Binary Exploitation)http://security.cs.rpi.edu/courses/binexp-spring2015/github : http..
Reversing/Tool/gdbgui 설치 # 설치- git clone https://github.com/cs01/gdbgui.git- cd gdbgui- python setup.py install- sudo pip install gdbgui # 실행- $ gdbgui
Reversing/Tool/miasm 설치/오픈소스 리버싱 프레임워크 # miasm- 오픈소스의 리버싱 프레임워크, 바이너리 프로그램의 분석 수정 생성이 목적elfesteem을 이용한 PE / ELF 32 / 64 LE / BE 분석 수정 생성어셈블링, 디스어셈블링IR을 이용해 어셈블리 의미분석JIT 라이브러리 사용자동 난독화, 난독화 해제를 위한 표현식 단순화 # 설치- elfesteem 설치git clone https://github.com/serpilliere/elfesteem.gitcd elfesteempython setup.py buildsudo python setup.py install - TCC 와 LLVM 설치libtcc충돌 제거를 위해 libtc-dev제거sudo apt remove libtc-devgit clone http://repo.or.cz/tiny..
RCE/CodeEngn/BasicRCE07 # 문제 설명- 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 "어떤것"으로 변경되는가? # 문제 풀이- 실제로 C 드라이브를 바꾸라는지 모르고 한참 리버싱하다가.. 나중에 알고보니 실제로 CodeEngn으로 C드라이브 이름으 바꾸고 이름을 가져오는 모듈이 종료되고 이름이 add되는 것과 계산되어 변경되는 값이 답인 문제였습니다. # 문제 해결- 바뀌는 값은 EqfgEngn 입니다.
RCE/CodeEngn/BasicRCE06 # 문제 설명- Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial # 문제 풀이- 문제 해결을 맞게 한것 같은데 OEP가 틀리다고 하니 .. 이 부분은 다시 한번 해보려고 합니다.- 먼저 UPX로 패킹이 되어 있으므로 언패킹을 upx를 이용해 진행 한 후 - upx.exe -d -o 06-unpack.exe 06.exe - 실행 후 실제 값을 저는 "aaaaaaaaaaaaaa"라고 입력했고 보통 함수를 콜하기전 인자를 PUSH하고나서 부르는 것을 보아 CALL 06-unpac.00401290의 함수 콜이 제가 넣은 값과 그 아래 "AD46DFS547" 비교하는 것을 알 수 있습니다. # 문제 해결- "AD46DFS547" 값이 시리얼키 인 것 같고 검증을 해보면 맞습니다.
RCE/CodeEngn/BasicRCE05 # 문제 설명- 이 프로그램의 등록키는 무엇인가? # 문제 풀이- Stud_PE나 Hxd로 열어보거나 하면 UPX로 패킹이 되어 있음을 확인 할 수 있고 디버거로 열어보아도 일반적인 EP와는 다른걸 알 수 있습니다. 그래서 언팩을 하는 upx를 다운로드 받은 후에 upx.exe -d -o 05-unpack.exe 05.exe 명령을 통해서 언팩을 한 후 분석을 진행합니다. - 아래는 HxD으로 열어본 이미지 입니다. - 언팩을 하고 난 후 정상적인 EP구조가 보입니다. 제가 접근한 풀이 방법은 실행하면 시리얼 키가 틀렸다고 할때 MessageBox가 띄어지는 것을 보고 MessageBox 모듈에 브레이크를 걸고 그 주변에서 시리얼키를 찾아 봤습니다. - 브레이크 포인트 "MessageBox" .. - M..
RCE/CodeEngn/BasicRCE04 # 문제 설명- 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가? # 문제 풀이- 실행 하면 몇줄 안내려 가다 보면 "IsDebuggerPresent"라는 함수가 있습니다.
RCE/CodeEngn/BasicRCE03 # 문제 설명- 비주얼베이직에서 스트링 비교함수 이름은? # 문제 풀이- 관련된 문자열에 str이 있을것 같아 str을 검색했고, 영어 비교하다라는 동사의 Compare의 약자인 cmp가 들어가는 "__vbaStrCmp"에 브레이크 포인트를 걸고 프로그램을 실행한 후 직접 값을 입력하고 브레이크가 걸리는지 확인했습니다. - 실행시 브레이크가 걸렸고, EIP가 위치하는 것을 확인 했습니다.

반응형