본문 바로가기

WARGAME/Root-Me

PE - SEHVEH

우선 열어보자~!

저 함수를 분석해보면된다~


실행하고 6자리를 입력해봤다


대부분 ECX 레지스터 문자열 길이와 관련이 있다

그만큼 반복하기 때문에

근데 6자리를 입력했는데 9가 나온다


그리고 cl에 F0을 더해서

FF와 비교한다

그럼 계산을 해봤을 때

문자열의 길이가 12자리라는것을 알 수 있다

6자리를 입력했는데 9가 나온걸 보면

3+되었다

그럼 F가 15이니깐 12자리를 입력해야한다

12자리를 입력하면 je ch17.11614AD를 만족해서 점프를 뛴다



그리고 조금 내리면 이렇게 4자리씩 찾을 수 있다

내가 입력한 앞에 4자리와 EDX를 XOR해서 비교한다

그럼 반대로 3628552E와 5A643059를 XOR하면 된다

0x6c4c6577 이렇게 나오는데 

이렇게 나온다

그럼 리틀엔디안으로 weLl이렇게 4글자를 찾았다


다음으로

중간 4글자를 구할 차례다 

int 1이 있는데 single step break다 원래 이걸 사용해서 안티디버깅을 할 수 있는데

왜 저렇게 해놓은건지는 모르겠지만 아무튼 그냥 잘 실행되었다

근데 좋은 방법이 있는데 lodsd eax부분에서 eax값을 0으로 만드는것이다

그럼 eax에 값이 생기는 것을 볼 수 있는데

이렇게 중간 4글자도 찾았다

지금까지 weLl_d@n이다


마지막으로 4글자는

좀 그렇지만 게싱을 했다

생각대로 잘 값이 계산이 되지 않았다

well don을 보고

well_done인걸 알수있는데

12자리다

그럼 뒤에 아마 특수문자

~!@ 이런 것 중에

3개가 들어가지 않을까 생각해서 다 넘어봤는데

좀 노가다해서 !!!라는걸 알았다 하..

그리고 e도 그냥 e가 아니라 대문자였다

또한 XOR 연산을 했는데 뜻대로 나오지 않아 많이 노가다를 했다

그래서 답은 weLl_d@nE!!!

조금 힘들었지만 풀었다



'WARGAME > Root-Me' 카테고리의 다른 글

ELF - ExploitMe  (0) 2016.11.28
ELF - CrackPass  (0) 2016.11.27
ELF - No software breakpoints  (0) 2016.11.24
PYC - ByteCode  (0) 2016.11.24
ELF - ARM basic  (0) 2016.11.24