code engn basic 3번 문제다.

스트링 비교함수 이름을 찾으란다. 파일부터 다운받아보자.

실행하고 입력해보지 에러가 뜬다. 올리디버거로 실행해보자.


이 문제에서 요구하는건 문자열을 볼 수 있느냐 인것 같다. 다음 그림과 같이 Search For -> All referenced test strings를 입력해주면 문자열만 따로 출력을 해준다.

출력된 문자열 목록에서 에러 출력 메시지를 찾아보니 마지막 부분에 다음과 같은 문구들이 보인다.

에러문자열 전에 UNICODE "2G83G35Hs2"라는 값이 뭔가 상당히 의심스럽다.

더블 클릭해서 들어가보자.

들어가보니 함수 값에 인자로 2개의 값을 넣는데 이 때 저 UNICODE 값이 들어가고 vba****라는 함수가 호출된다. 이름부터 문자열 비교함수의 향기가 난다. 이정도 됬으면 대충 감이 왔을 거라고 생각한다.

다음은 추가적으로 저 함수와 위에 두개의 인자가 어떤식으로 동작하는지 보기 위해 break point를 걸

어 동작 시켜 봤다.

돌려보니

이라고 값을 주자

스택 값에 youngsin이라는 입력 값이 들어 갔다.

이를 통해 유추해 보면

1. 내가 입력한 값 push
2. 패스워드 값 push
3. 함수를 통해 두개를 비교 동일하면 성공 틀리면 실패 표시

와 같은 방식으로 동작하는 것 같다.

그러면 입력 값에 패스워드 값을 넣어주면

다음과 같이 성공 표시가 나온다.

위의 값은 code engn에서 요구하는 정답이 아니다. 풀이를 잘 읽어보면 위의 문제에서 원하는 정답은 충분히 유추할 수 있을 것이다.

웹쪽 워게임하다가 감도 어느정도 잡혀가고 있고 머리좀식힐겸 리버싱 간단한 문제들 풀이하고 있는데

아직까진 쉬운개념들만 나와 머리식히기엔 안성맞춤인 것 같다. 리버싱도 웹처럼 재미붙여서 얼른 감을

익혀야 될 것 같다. 


'Wargame > CodeEngn' 카테고리의 다른 글

code engn basic 6번  (0) 2018.01.28
code engn basic 5번  (0) 2018.01.28
code engn basic 4번  (0) 2018.01.28
code engn basic 2번  (0) 2018.01.27
code Engn Basic 1번  (0) 2018.01.27
블로그 이미지

JeonYoungSin

메모 기록용 공간

,