코드엔진 베이직 3번 문제 : 비주얼 베이직에서의 스트링 비교 함수 구하기
이런 창이 뜹니다.
대충 아무거나 치고 왼쪽 버튼을 누르면,
틀렸다고 에러가 뜨네요.
이 과정을 통해 RegCode부분에 문자열을 넣으면 문자열을 비교해주는 함수에 의해 에러가 뜨거나 성공이 뜬다는 것을 알 수 있습니다.
올리디버거로 열어봅시다.
짠
딱 봐도 하나하나 찾아 해석하기엔 무리가있어보이니 이 프로그램에서 사용된 문자열만 나타나게 하는 올리디버거의 기능을 사용합시다.
[마우스 우클릭]->[search for]->[All referenced text strings]
이런 화면이 되었으면 많은 문자열 중에서 힌트를 찾아야겠죠?
조금만 화면을 내리다보면 맨 아래에
이렇게 누가봐도 의심가는 부분이 나옵니다.
아마 "Danke ~" 이부분은 문자열 비교 함수로 비교한 결과가 같으면 출력되는 부분이고 "Error ~" 이부분은 틀리면 출력되는 부분인 듯 하네요.
그럼 저 부분을 클릭해서 들어가봅시다.
띠용?
일단 저 "2G83G35Hs2" 부분이 성공/실패 문자열이 뜨기 전에 호출되는 걸 보아 저 문자열이랑 사용자가 입력한 문자열을 비교해서 틀리면 에러를 같으면 성공을 띄워주는 것 같습니다.
프로그램을 실행시켜서 확인해보면,
맞다네요. 그럼 저 문자열 밑에 문자열을 비교해주는 함수가 호출됐겠죠?
바로 밑에 [v--S--Cmp] 라는 함수가 호출되었는데 어셈블리어에서 Cmp는 비교 명령어이므로 저 함수가
비주얼 베이직에서의 스트링 비교 함수겠네요!
혹시모르니 답을 확인해봅시다.
짠 다음 문제로 잘 넘어가네요!
사실 이 문제도 베이직 01번 문제와 마찬가지로 검색을 조금만 하면 리버싱을 하지 않더라도 답을 알 수 있지만 직접 푸니 재밌네요XD 리버서분들 모두 화이팅!
'Security > CodeEngn' 카테고리의 다른 글
CodeEngn_Basic_06 (0) | 2018.08.12 |
---|---|
CodeEngn_Basic_05 (0) | 2018.08.09 |
CodeEngn_Basic_04 (0) | 2018.08.07 |
CodeEngn_Basic_02 (0) | 2018.08.03 |
CodeEngn_basic_01 (2) | 2018.08.02 |