일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Reverse Me
- 구조체 함수
- abex crack me 5번문제
- react native
- 레나 리버싱
- 리틀엔디언
- c언어 알고리즘
- 빅엔디언
- 배열 정렬
- 1.9.2
- 안드로이드 백도어
- 리버싱
- 프론트엔드 개발자
- 오버워치
- 배열
- 네트워크 관리사 2급 필기
- sa 계정 비밀번호 변경
- 구조체
- abex crack me 2번 문제풀이
- C언어
- 마인크래프트
- 프로그래밍 언어론
- 메이플스토리 M 사전예약
- UDP daytime
- 재밌는 모바일게임
- 덧셈
- 배열 탐색
- abex crack me 1번
- 암호화폐
- 알고리즘
Archives
- Today
- Total
Gyejoong's Information
abex - crack me 1번 문제 풀이 본문
반응형
우선 abex - crack me 1번 프로그램을 실행 시켜보도록 하겠습니다.
HD디스크를 CD-ROM처럼 만들라고 합니다.
CD-ROM이 아니라고 하네요.
Immunity Debugger로 이 프로그램을 분석 해보도록 하겠습니다.
JE SHORT 부분에 breakpoint를 걸고 디버깅을 시작해보겠습니다.
메시지박스를 불러보는 부분에서 멈추게 됩니다. 확인을 누르고 다음 부분으로 진행 하겠습니다.
C드라이브의 타입을 불러오는 과정입니다. EAX값이 3이 되었네요.
ESI 값을 1증가 시키고 EAX값을 1감소 시킨 후에 ESI값을 2증가, EAX값을 1감소 시키도록 되어 있습니다. 모든 과정을 거친 후에, 레지스터값은 EAX값이 1이고, ESI값이 790077입니다. CMP로 비교한 후에, 값이 0이면 점프하라는 구문입니다. CMP명령어는 값이 같아야 0을 리턴하는데, 같지 않으므로 0을 리턴하지 않을 것입니다.
그러므로 실패 하게 됩니다.
분석한 결과 CMP값이 0이면 성공이므로, CMP값이 0이 아니면 성공하도록 바꾸어 보도록
하겠습니다.
JNZ명령어로 바꾸어서, 0이아니면 401103D부분(성공)으로 점프하도록 바꾸고 실행합니다.
성공적으로 실행 하게 됩니다.
반응형
'Study > 리버싱' 카테고리의 다른 글
abex crack me 5번 문제풀이 (0) | 2017.05.20 |
---|---|
레나 리버싱 Part10.Tut Reverse Me 문제풀이 (1) | 2017.05.20 |
abex - crack me 2번 문제풀이 (0) | 2017.05.20 |
Comments