일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인공지능
- CodeEngn
- 워게임
- 머신러닝
- C언어
- 웹해킹
- html
- 웹
- abex crackme
- 컴퓨터 구조
- MySQL
- writeup
- 넘파이
- 자바스크립트
- 리눅스
- 리버싱
- 백준 알고리즘
- 리액트
- php
- webhacking.kr
- 회귀 수식
- 어셈블리어
- 리버싱 워게임
- 알고리즘
- 해킹
- 리버싱 문제
- webhacking
- sql injection
- 보안
- 백준
- Today
- Total
목록리버싱 워게임 (3)
인공지능 개발일지
안녕하세요! 한동안 개인적으로 바빠서 블로그를 제쳐뒀던 것 같네요. 이제 곧 기말이긴 하지만 전보다는 여유가 생겨서 틈틈이 쓰려고 한다. 사실 이 리버싱 문제도 한 달 전에 푼거라 기억이 가물가물하지만 리마인드 할 겸 써 본다. 1. 문제분석 문제는 아래와 같다. 이 문제를 푸는 데는 2가지 단계가 있다. 첫 번째는 문제 그대로 함수 이름을 찾아서 CodeEngn에 내는 것이고 두 번째는 추가적으로 곧 나올 코드 입력 창에 문자를 맞추는 것이다. 차례대로 스트링 비교 함수부터 봅시다. 3번 문제 자체는 비주얼 베이식에서 스트링 비교 함수가 무엇인지 묻는 문제입니다. 비주얼 베이식이란 MS에서 만든 베이직 프로그래밍 언어의 일종으로 VS 제품군 중 하나이다. 이는 멜론 플레이어, 디버거 등과 같은 "프로그..
4번 프로그램을 실행시키면 아래와 같이 뜬다. 위 입력 프롬프트에 아무거나 입력하고 Registered를 누를려니까 버튼이 활성화되지 않는다. 그래서 ollydbg로 열어봤다. 눈에 띄는 문자열들은 아래와 같이 시리얼 값이 맞을 때 출력할 문자들이 있다. 다음으로 눈에 띄는 것은 vbaStrCmp함수이다. Cmp니까 미리 정해진 시리얼 값이랑 비교하나 보다. 그리고 해당 라인에 중단점을 잡고 실행시키면 창이 다시 뜬다. 여기서 흥미로운 건 아래 창이 떴을 때 아무것도 입력하지 않았을 땐 활성화되지 않던 창이 한 글자만 입력해도 레지스터에서 아래와 같이 유니코드 값이 나타난다. 힌트로 보이는 위 숫자를 Serial칸에 입력하자 아래와 같이 Registered가 활성화되며 풀린다.
파일을 실행시키니 아래와 같이 파일을 찾을 수 없다는 창이 뜬다. 그럼 파일을 찾으면 풀리는 문제인가 보다. Ollybdg에 들어가서 확인해봤다. 그러자 아래 4 부분이 눈에 띈다. 1. 차례로 실행시키다 보면 제일 위의 빨간 박스에서 2,3,4 부분은 건너 띄고 바로 아래 Hmmm~으로 이동한다. 2. 그리고 Filename이 abex.l2c라는 게 눈에 띈다. 3. 이 부분이 우리가 띄어야 하는 부분이다. 4. 여기가 오류 메시지를 출력하는 부분이다. 전체적으로 봤을 때 아래 파란 박스를 눈여겨봐야 한다. 파란 박스에 GetFileSize로 eax에 파일의 길이를 리턴하고 GetFileSize 왼쪽 아래 라인에서 CMP EAX, 12를 볼 수 있다. 이때 12는 16진수여서 10진수로 길이가 18자리..