Advance 08번 문제입니다.

우선 디버거를 통해서 프로그램에서 입력했을 때 나온 문자열을 찾아 이동하였습니다.

CMP EAX,3이라고 되어있는 부분을 CMP EAX,2라고 바꾸어주었습니다. 그리고 실행시켜보면

이렇게 입력하고 CHECK IT을 눌러보겠습니다.

그리고 많은 CALL 명령어 중에 맨밑에는 시리얼 번호를 판별하는 함수이고 그 위에함수가 NAME을 판별하는 함수여서 저부분에 먼저 들어가보겠습니다.

정말 길게 늘어진 코드들을 보며 하나하나씩 이해하려고 노력했습니다...

이렇게 루프문도 하나 찾았습니다. 총 두번 왕복하는 루프문인데 아마 문자가 2자리라서 그런것 같습니다. 이부분은 첫번째 문자를 찾아내는 루프문이고


두번째 루프문도 찾아내었습니다. 첫번째와 비슷한 형식인데 역시 2번 왕복합니다. 두번째 문자를 찾아내는 루프문인것 같습니다.

세번째도있고

4번째도 있지만 그냥 단순히 계산을 해주는 모양인것 같습니다. 

이런 루프문을통해서 BRUTE FORCE기법을 사용하기위해  코딩을 해줘야하는데 아직 저에게 코딩실력이 갖추어지지 않아서 문제를 풀지 못하고있습니다. 어느정도 배우고나면 다시 문제를 손봐야겠군요 ㅠㅠ

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

CodeEngn Advance 09  (0) 2015.08.27
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