[보안] 리버싱 입문기
오늘부터 리버싱이다!!!!
리버싱은 하는 방법에 따라서 2가지로 나뉘게 된다. 정적분석과 동적분석이다.
정적분석
정적분석은 파일의 겉모습을 분석하여 관찰하는 방법이다. 동적적인분석과는 다르게 파일을 실행시키지 않고 분석한다.
파일의 종류, 크기, 헤더정보, API 등 여러가지 정보를 얻어서 동적분석할 때 유용하게 사용될 수 있다.
정적분석 툴로는 IDA, Ghidra가 있고, 올해 3월에 기드라가 무료로 풀렸는데 ida랑 ghidra딱 두가지만 사용해 볼 예정이다.
[사진. Ghidra 짱짱]
동적분석
동적분석은 말그대로 동적으로 PE를 분석한다. 프로그램을 실행시켜보면서 분석하는 행위.
레지스트리, 메모리 상태 등을 확인하며 프로그램의 동작원리를 파악할 수 있다.
대표적인 동적분석 도구로는 x64dbg, ollydbg가 있으며 대세가 지난 올리디버거 보다는 x64dbg를 사용해볼 예정입니다
[그림2. 무려 한글버전의 xdbg] - 영어로 바꿔서 쓰는게 호환좋다고함;;
입문으로 블랙펄 콘치님의 리버싱 튜토리얼부터 시작하였다. (https://bpsecblog.wordpress.com/2016/06/10/re_tutorial_3/)
먼저 PE파일을 준비했다. 소스는 다음과 같이 준비했다. (환경 : 코드블록)
이 PE파일을 리버싱할 것이다.
먼저 무작정 x32dbg에 해당 파일을 넣고 돌려보았다. 그 후에 F7,F8,F9를 눌러가며 무슨 동작을 하는 키인지 구글링하면서 눌렀다.
F7 : 안으로 단계진행 (함수만나면 진입)
F8 : 건너서 단계진행 (함수만나도 그냥넘어감)
F9 : 실행 (첨부터 끝까지 실행됨)
짜잔! call을 지나서 hellow!!가 출력됨. 끝! (visual studio로 안해서 그런건진 모르겠는데 내용이 약간 달랐다)