본문 바로가기

[+] Information/[-] RCE

심심해서 Crackme 풀이 하나 써봐요 ^^

정말 시험기간만큼은 아무것도 안하고 공부만 하려했으나 결국 노트북을 잡고야 말았네요 ㅡㅡ;;

잡은김에 크랙미 풀이 하나 합니다 ㅎㅎ

키 생성까지 하려했으나 귀찮고 설명하기도 힘들고 하여 그건 뺐어요~

간단한 메시지 우회 풀이입니다 ㅋ


오늘 제가 풀이할 크랙미는 아래 사진과 같은 크랙미입니다.

파일도 첨부해둘께요~



이름과 시리얼을 구하여 넣어야 풀어지는 크랙미인데요.

아무거나 입력하면 아래와 같이 메시지가 나타납니다.


간단하게 한곳을 수정하여 축하메시지만 뜨게 해보겠습니다.



해당 파일을 올리디버그로 열고 사진처럼 Text String을 검색해 주면 아래와 같이 나타납니다.

검색하면 아래와 같이 나오는데 위에서 봤던 No luck 메시지를 찾아 더블클릭하여 줍니다.


더블클릭을 하면 그 메시지가 푸쉬되는곳이나 콜이되는 부분으로 이동하게 되는데요.

그 위를 천천히 살펴보시면 $ 표시가 된 Push 문이 보입니다.

그 부분은 어디선가 점프를 해와서 시작하는 부분을 뜻하는데요.

어디서 점프해왔는지 추적해볼까요??

아래와 같이 goto 기능을 쓰면 어디서 점프해왔는지 추적이 가능합니다.



추적을 하였으면 어떠한 콜문에 커서가 가 있을 것입니다.

콜문 주위를 보면.... 그 위에 점프문이 있네요.



점프문을 보면 점프를 하지 않는군요 ㅡㅡ;;

우리가 지금 도착한 콜문은 No luck을 띄워주는 콜문입니다.

그 위에서 프로그램 흐름상 점프를 하지 않는 다는것은... 그대로 우리가 도착한 콜문에 의해 메시지가 출력된다는 소리인데요.

수상하니 저 점프문에 브레이크 포인트를 걸고 증상을 살펴봅시다.



확인 버튼을 누르는 순간 저 점프문에서 브레이크 포인트 때문에 딱 걸리는군요.

옆에 점프선을 잘 보시면 활성화 되어있지 않습니다.

즉 실행되면서 No luck메시지가 들어있는 콜문을 호출하겠네요.

그러니 우리는 저 JE 점프문을 JMP로 강제 수정해주면 됩니다.



오옷 성공했네요 ^^

해당 크랙미를 푸는 첫번째 방법은 이렇게 푸는 것입니다.

두번째는 이름과 시리얼 루틴을 분석하는건데...

이거 하고 귀찮아졌네요 ㅡㅡ;;

다음기회에 하고싶을때 다시한번 쓰겠습니다.. ㅎㅎㅎ

이 풀이는 기본적인 리버싱 지식과 올리디버그 사용법을 알고계신분들을 기준으로 작성된 것입니다.

'[+] Information > [-] RCE' 카테고리의 다른 글

abex3 Crackme 풀이.  (0) 2009.04.14
심심해서 해본 닷지 리버싱  (9) 2009.04.11
MaJ3stY의 쉬운 keygenMe~  (2) 2009.04.06
리버싱 전 셋팅 간단한 팁.  (0) 2009.04.01