Halo World

[크랙미] Simples 크랙미 10번 풀이 본문

보안/REVERSE ENGINEERING

[크랙미] Simples 크랙미 10번 풀이

_Yeony 2016. 4. 30. 01:51

 크랙미 10번 문제입니다!

 실행화면인데요, 잘못된 코드라고 뜨는군요..!

 

 파일을 올리디버거로 열어본 후에, F8로 실행시켜 보았는데요, 저부분에서 자꾸 함수의 끝으로 가더라고요

보니까 안티리버싱 코드인 것 같습니다.

 

 

그래서 CMP EAX,0 에서 0을 EAX와 같은 값인 1로 설정해 주었더니 제대로 실행이 되었습니다.

 

문자열을 보았더니 저기 성공메시지가 보이네요!  

 

 성공메시지 쪽으로 가보았습니다.

 

 그 위쪽에 JNZ로 실패 메시지로 가기 전 CMP에 브레이크 포인트를 걸고 실행시켜 보았습니다.

입력 값은 처음과 마찬가지로 aaaa라고 입력하였습니다.

EBP-4와 0E를 비교하고 있습니다.

 스택의 EBP-4에 저장되어있는 값을보니 4가 저장되어 있네요.

보아하니 4는 입력한 코드 aaaa의 글자수 인 것 같아보입니다.

 

입력을 0E인 14자리 aaaaaaaaaaaaaa로 입력하였더니 EBP-4의 값이 0E라고 설정되네요ㅎㅎ 자릿수가 맞군요!

 그리고 코드를 실행시키다 보니 위와 같은 부분이 나옵니다.

 위와 같은 반복문이 실행되고 나니 VaZoNeZVaZoNeZ라고 되어있던 값이 RXPpNhTY_WwUo[로 바뀌었습니다.

 그리고 그 아래 반복문에서는 입력 값 aaaaaaaaaaaaaa과 RXPpNhTY_WwUo[를 하나씩 비교하고 있습니다.

올바른 코드 값은 RXPpNhTY_WwUo[인 것 같군요!ㅎㅎ

파일을 실행해서 RXPpNhTY_WwUo[를 입력해보니 정답이라고 뜨는군요ㅎㅎㅎ

성공입니다!