Advance 09번 문제입니다.

디버거로 열어 시작해보겠습니다.

이렇게 관련된 문자열이 있는 부분으로 가보겠습니다. 우선 UserName 을 입력받는 함수가 있었습니다.

이렇게 아무렇게 입력하고,

password를 받는 함수에서도 이렇게 입력해줍니다.

그다음에 나오는 함수가있는데 여기로 들어가보겠습니다.

여기보면 저기 제가 입력한 username도 있습니다. 여기를 하나하나 살펴보면

중간에 이렇게 제가입력한 password를 비교하는 문자열이 나옵니다. EAX값은 제가입력한 비밀번호의 16진수 값이고 그걸 비교하는 다른 값은 10진수로 바꿔주게되면 PASSWORD가 되겠습니다.

이름은 다음을 통해 알수있습니다. 저기 루프문을 보면 ABCD와 DonaldDuck을 비교하는 루프문임을 알 수 있습니다. 이를 조합해보면

정답을 맞추게 됩니다. 위를 다 해도 원래 2번째 Welcome...은 나오지않습니다. 이는 성공했다는 문자열로 가는 문턱에 점프문이 있어 여기를 계속 띄어넘어버리기 때문입니다. 그부분을 찾아 NOP으로 바꿔주시면 위와같이 나오게 됩니다.

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

CodeEngn Advance 08 (미해결)  (0) 2015.08.26
CodeEngn Advance 06  (0) 2015.08.23
CodeEngn Advance 05  (0) 2015.08.20
CodeEngn Advance 04  (0) 2015.08.20
CodeEngn Advance 03  (0) 2015.08.15

+ Recent posts