본문 바로가기

Reverse Engineering18

제2회 IGRUS 해킹 대회 출제자 보고서(9번) 9번 문제 : 송영균 이병의 제대일을 구하세요. 문제풀이------------------------------------------------------------------------------------------------ 9번 문제 : 1. 출제의도 : 이문제를 낸 이유는 리버싱을 할때 분석만이 다가 아니라 적절한 프로그램을 코딩해서 풀수도 있다는(Brute Foces 이용)것을 보여주기 위해 출제했습니다. 이문제는 심플스(Simples) 18번 문제를 표절해서 만들었습니다...... ㅎ 2. 문제풀이 : 프로그램을 실행시키면 와 같이 콘솔창 하나와 메시지 박스 하나가 떠있습니다. 메시지 박스의 확인 버튼을 누르게 되면 날짜가 하나씩 증가합니다. 이문제는 1. 리버싱 수행단계를 거칠필요 없이 바로.. 2010. 11. 15.
제2회 IGRUS 해킹 대회 출제자 보고서(6번) 6번 문제 : dakuo@.exe 를 실행시켜서 답을 구하세요. 문제풀이------------------------------------------------------------------------------------------------ 6번 문제 : 1. 출제의도 : 이문제를 낸 이유는 리버싱을 할때 선행 단계들을 무시한 채 ( 리버싱 수행단계 : http://dakuo.tistory.com/21 ) 무작정 올리디버거에 넣고 보는 사람들에게 경고를 하기 위해서 출제했습니다. (동적분석 없이 바로 정적분석으로 넘어가는) 2. 문제풀이 : 리버싱 수행단계에 의해서 1. 바이너리 분석을 해본다. HexWorkshop과 PEID 로 분석결과 별 특이점을 찾지 못했습니다. 2. 문자열과 API, DLL .. 2010. 11. 15.
올리디버거(OllyDBG)의 Executable Modules 을 통한 문제풀이 올리디버거 창들 중에 Executable Modules 창이 있다. 현재 불러온 프로세스에서 실행중인 모듈들을 보여준다. 한 프로그램에서 여러개의 모듈(ex. DLL 등)을 사용할 경우 올리디버거는 하나의 모듈만을 트레싱할 수 있기 때문에 제대로 분석할수가 없다. 따라서 Executable Modules 창을 이용해 실행 가능한 모듈을 골라서 중요한 코드에 BreakPoint 를 걸어놓음으로써 해당 코드가 실행될 때에 제어권을 올리디버거로 받아 문제를 해결할 수 있다. 일단 해당문제를 실행시켜보자. Ezbeat 문제 패스워드 찾기 올바른 패스워를 찾으시오! 난이도 : ★☆☆☆☆ 위의 메시지 박스가 뜨며 확인을 누르면 콘솔창 하나가 뜨며 Input Password : 를 입력하라고 뜬다. 올리디버거로 프로.. 2010. 7. 18.
안티 디버깅(Anti-Debugging) 안티 디버깅(Anti-Debugging) : 디버깅을 방지하고 분석을 하지 못하도록 하는 기술. 디버깅을 당한다면 해당 디버거 프로그램을 종료시키거나 에러를 발생시키는 방법등 다양한 방법을 사용하여 분석을 방해한다. (참고 : 디버깅(Debugging) : 프로그램의 특정 부분에 Break Point를 설정한 후 실행을 하면 그 위치에 프로그램이 멈추게 되며 메모리에 값이 제대로 들어가 있는지, 코딩한 흐름대로 프로그램이 진행되는지 단계적으로 실행할 수 있다) 안티 디버깅 기술에는 수많은 방법들이 존재하며 계속 발전하고 있으며 이에 따라 이를 우회하는 기술도 계속적으로 발전하고 있다. CheckRemoteDebuggerPresent() Windows API Detecting Breakpoints by C.. 2009. 11. 26.
리빌더를 이용한 CrackMe 16 문제 풀이 리빌더(Rebuilder) : 덤프 툴을 이용하여 메모리상에 존재하는 실행 파일 코드들을 추출하더라도 원래의 실행파일에 정의되어 있는 Import 함수의 정보(IAT : Import Address Table)는 복원되지 않는데 이를 복원해준다. 주로 메뉴얼 언패킹할 때에 사용되며, OEP 주소 부분에서 메모리상에 로드되어있는 프로그램을 파일로 덤프시키고, IAT를 복원하기 위해서 사용한다. 이제 이 리빌더를 이용하여 crackme 16 을 풀어보겠다. 실행시켜보니 단순히 PDA 모양의 창만 뜰뿐 특이한 점은 보이지 않는다. PEID 로 열어봐서 분석을 해보면 UPX 패킹이 되어있다. upx 언패커로 언패킹을 해보니 일반 upx가 아닌 다른 변종의 upx 패킹인것 같다. 그래도 upx 패킹이므로 수동언패킹.. 2009. 11. 10.
아이다(IDA)의 크로스레퍼런스 기능 - 지뢰찾기 맵핵 크로스레퍼런스 : 함수가 사용된 곳을 교차하여 참고할 수 있게 표시를 해주는 것 (참고 : 어떤 함수가 어디에서 또 쓰였는지를 찾기 쉽도록 표시를 해주며 Win32 API에 대해서는 심볼 함수 이름까지도 표현해준다. IDA의 가장 강력한 기능이라고도 할 수 있다) 지뢰찾기(winmine.exe)를 크로스레퍼런스 기능을 이용해 해킹해보도록 하겠다. 'C:\WINDOWS\system32\winmine.exe'를 IDA로 open한다. (참고 : 윈도우 기본 프로그램을 open할 경우 사용할 수 있는 디버거 정보가 담겨있는 심볼 파일을 IDA가 자동으로 연결하여 자세한 정보를 표현해준다. 설정법 : http://dakuo.tistory.com/entry/아이다IDA에-심볼-파일-연결하기) 함수 목록을 살펴본다.. 2009. 11. 6.