Advance 04번 문제입니다.

프로그램에 문제와같이 codeengn 을 넣고 12345를 넣어보았습니다.

에러 메세지가 나옵니다..

디버거를 통해 열어보았습니다. 흠 시작부터 점프문으로 시작하는군요 한번 내려가보겠습니다.

밑으로 내려가면 저부분에서 다시 위로 올려버립니다. 저밑에 JMP문으로 가고싶은데 말입니다. 그래서 저는 JMP에 BP를걸고 F9로 넘어와 계속 진행하니 어떤 코드가 나왔는데 거기서 CTRL + A를 누르니 본코드가 나왔습니다.

위와같이 말입니다. 이제 쉽게 성공했다는 문구를 찾아가보도록 하겠습니다.

저는 우선 저부분이 비교하는 함수 IstrcmpA함수 가 있기때문에 BP를 걸고실행시켜 codeengn을 입력하고 12345를 넣어보니 저렇게 나왔습니다. 12345와 뭔가를 비교하는것 저것이 serial이라 생각하여 입력했더니 답이 아닌것입니다..

그래서 저는 차근차근 분석을 해보았습니다. 옆에 코멘트를 달면서 저기 JNZ까지는 아마도 NAME이 적혀있는가를 보는곳 같았습니다. 그밑에는 name에 따른 시리얼값을 만드는 곳이고 그 다음은 입력한 값과 시리얼값을 비교하는 함수였습니다. 의외로 문제는 가까운 곳에 있었습니다. 제가 입력한 부분은 'codeengn'에 대한 시리얼값을 비교한것이었고, 원래는 'CodeEngn'에 대한 시리얼값을 비교해야 했습니다. 그래서 저는 다시 CodeEngn 을 넣고 비교하니 답을 찾게되었습니다.


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

CodeEngn Advance 06  (0) 2015.08.23
CodeEngn Advance 05  (0) 2015.08.20
CodeEngn Advance 03  (0) 2015.08.15
CodeEngn Advance 02  (0) 2015.08.15
CodeEngn Advance 01  (0) 2015.08.15

+ Recent posts