코드엔진 사이트에 들어가 basic3 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn)
우선 프로그램을 Peid 로 확인해본다.
패킹이 되어있지는 않고, 문제에서 알 수 있다시피 visual basic 기반으로 짜여진 프로그램인듯 하다.
프로그램을 실행해보면
위 사진과 같이 뜨고 암호를 아무거나 입력해 로그인해보려 하면 에러가 뜬다.
독일어인듯하다.
이 프로그램은 사용자가 패스워드로 입력한 값을 스트링비교함수를 이용하여 비교 한 뒤
맞으면 통과, 틀리면 위 사진처럼 에러를 내보내는 프로그램인 듯 하다.
비주얼베이직에서 스트링 비교함수의 이름은 vbaStrCmp 이다.
위 사진과 같이 ollydbg를 이용해 이 프로그램에서 사용된 함수들의 목록을 확인해보니,
내가 찾던 vbaStrCmp 함수가 있다.
이동해보자.
위 사진처럼 vbaStrCmp 함수가 있고 하이라이트 표시한 문자 2G83G35Hs2 가 보인다.
이 문자열이 암호이고, 사용자가 입력한 패스워드를 vabStrCmp 함수를 이용해 진짜 암호와 비교해 jmp 분기문으로 에러를 내보낸다.
다시 프로그램을 실행해 2G83G35Hs2 를 입력해보자.
위 사진과 같이 danke 라며 패스워드가 맞다고 한다.
일단 3번 문제가 원한건 스트링 비교함수 이므로 vbaStrCmp 를 코드엔진에 입력해보면,
성공!
'[Riversing] > [코드엔진] BASIC' 카테고리의 다른 글
[코드엔진] basic6 (0) | 2020.03.25 |
---|---|
[코드엔진] basic5 (0) | 2020.03.25 |
[코드엔진] basic4 (0) | 2020.03.24 |
[코드엔진] basic2 (0) | 2020.03.16 |
[코드엔진] Basic1 (0) | 2020.03.13 |