CodeEngn Basic 05

Kail-KM
|2015. 5. 31. 23:08

문제확인




프로그램을 실행하면 다음과 같다. 이와 같이 아이디와 시리얼 값을 찾는 것이 문제이다.


디버깅에 앞서 PEID를 통하여 분석을 해보면 UPX로 패킹이 되어 있는 것을 확인 할 수가 있다.



풀이


방법은 두가지이다. POPAD 다음의 점프 부분이 본래의 코드 부분으로 점프를 한 후에 분석을 진행 할 수가 있다. 하지만 이는 지속적으로 분석하기에 번거로움이 있다.


따라서 우리는 upx를 통하여 unpacking을 진행 한 후에 프로그램을 분석 할 것이다.


분석을 하다보면 문자열을 검색하여 성공 구문을 찾은 후에 분석을 하면 되는데 총 두번의 문자열비교가 일어난다. 아이디와 시리얼 값이 각 각 따로 비교가 진행이 되며 진행 되는 방법은 다음과 같이 EAX에는 우리가 입력한 값과 EDX에는 비교에 사용될 원래의 값이 존재한다. 이를 통하여 우리는 시리얼 값을 찾을 수가 있다.


이에 따라 입력을 한후에 실행을 할 경우 성공 구문이 나타나는 것을 확인 할 수가 있다.


추가


OEP지점으로 이동하여 OllyDump를 통하여 직접 덤프를 뜰 수가 있다. 해당 플러그인을 통하여 OEP지점에서 DUMP를 클릭한 후에 rebuild를 해제 한 후에 완료를 클릭한 후에 LoadPE를 통하여 프로그램을 다시 재설정 해주면 upx패킹을 언패킹 할 수가 있다.


LordPE Deluxe.zip


OllyDump.dll


'Reversing > CodeEngn' 카테고리의 다른 글

CodeEngn Basic 07  (0) 2015.06.01
CodeEngn Basic 06  (0) 2015.06.01
CodeEngn Basic 04  (0) 2015.05.31
CodeEngn Basic 03  (0) 2015.05.31
CodeEngn Basic 02  (0) 2015.05.31