CodeEngn Challenges : Basic 03 문제 풀이
반응형

안녕하세요


테라트입니다!


오랜만에 다시 문제를 풀어보겠습니다 ㅎㅎ


3번할 차례이기에 3번 시작하겠습니다


URL : https://codeengn.com/challenges/basic/03



음,,, 비주얼 베이직에서 스트링 비교함수의 이름을 찾으라고 하네요,,


일단 파일이 있으니 열어보겠습니다



변기모양 아이콘이네요,,



뭔가 못알아보게 알파벳을 바꿔놓은거 같네요,, 일단 OK를 눌러볼까요?



CrackMe 프로그램이 실행 되는것을 확인할 수 있었습니다


패스워드를 찾기 위해 리버싱 작업을 하게 되면 스트링 즉, 문자 비교 함수를 찾을 수 있을 것 같습니다



이번 문제에서는 올리디버거의 기능 중 Search for 에서 "All intermodular calls" 라는 기능을 사용해보겠습니다


All intermodular calls : 사용되는 API 함수 목록을 모두 볼 수 있는 기능



정말 많은 함수들이 쓰였네요,, 하지만, 자세히 보면 겹치는 함수들이 있다는 사실!!


이 함수들 앞에 붙은 vba 는 아마도 Visual Basic for Applications, VBA를 뜻하는 것으로 추정됩니다


문자열 비교함수를 찾으라고 했으니,,, String Compare를 줄여서 쓴 vbaStrCmp가 아닐까 생각해봅니다


(찾으셨나요? ㅋㅋ 찾으셨으면 더블클릭!)



인자값으로 UNICODE "2G83G35Hs2" 를 넣고 있네요 


문제는 이미 해결되었습니다만 어떤 값과 비교하는지 확인해보겠습니다



PUSH 입력하는 곳에 Break Point를 설정하고 (F2)


브레이크 포인트가 걸린 곳까지 실행하기를 누릅니다 (F9)



그러면 다음과 같이 문자열을 입력하는 메시지 창이 뜨게 됩니다,, "hello" 라고 입력을 해보겠습니다



다음과 같이 제가 입력한 값이 들어간 것을 확인할 수 있었습니다!!


아 그러면,, 이 프로그램의 정답은 2G83G35Hs2 라고 입력하면 성공하게 되겠군요


확인해보겠습니다



처음에 떴던 Error 와는 다른 메시지 창이 발생됨을 확인할 수 있었습니다


그러면 문제로 돌아가서 이 문제의 정답은?


해결됨을 확인할 수 있습니다!!


다음엔 04번 문제로 돌아오겠습니다 ㅎㅎ




반응형

댓글,

테라트

Since 2018.07.03 / IT 관련 정보, 일상의 공유를 위한 블로그