일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 빅엔디언
- 배열 탐색
- 알고리즘
- 네트워크 관리사 2급 필기
- UDP daytime
- 메이플스토리 M 사전예약
- 구조체 함수
- 재밌는 모바일게임
- 리버싱
- 덧셈
- 마인크래프트
- 배열
- 프론트엔드 개발자
- Reverse Me
- abex crack me 1번
- react native
- abex crack me 2번 문제풀이
- c언어 알고리즘
- 리틀엔디언
- C언어
- 오버워치
- 구조체
- 1.9.2
- 암호화폐
- 프로그래밍 언어론
- sa 계정 비밀번호 변경
- 레나 리버싱
- 배열 정렬
- abex crack me 5번문제
- 안드로이드 백도어
Archives
- Today
- Total
Gyejoong's Information
abex crack me 5번 문제풀이 본문
반응형
5번 문제는 그림 31과 같이 시리얼키가 일치하지 않으면 등록을 할 수 없습니다.
Immunity Debugger로 분석을 해보도록 하겠습니다.
이 상태에서는 메인함수가 어디있는지 확인하기 어렵기 때문에 사용하는 함수를 호출하여
찾아 보겠습니다.
이번 5번 문제같은 경우는 비주얼베이직으로 만들어진 프로그램이므로 string값으로 찾기 어렵기 때문에 사용하는 함수를 출력하여 찾는 것이 더 수월합니다.
위 그림을 보게 되면 ECX부분에 UNICODE로 2206425로 설정이 되어 있습니다.
프로그램을 실행하고 2206425를 입력해보도록 하겠습니다.
성공적으로 인증에 성공하는 것을 확인할 수 있습니다. 하지만, 이 프로그램의 시리얼키는
날짜, 시간에 따라 시리얼키값이 바뀝니다.
날짜 | 시간 | 시리얼키 |
20080520 | 오후 7시 | 2198760 |
20090520 | 오후 7시 | 2199855 |
20150520 | 오후 8시 | 2216500 |
20170520 | 오후 8시 | 2218700 |
위의 표를 보시다시피 날짜와 시간에 따라서 시리얼키값도 변경되는 것을 확인 할 수 있습니다. 과정을 살펴보게 되면, 5번문제의 프로그램은 GetPresentDate 함수를 사용하여 ((시간*5)+1000) * 년도라는 알고리즘을 통하여 시리얼 키 값을 구한 다는 것을 알 수 있습니다.
반응형
'Study > 리버싱' 카테고리의 다른 글
레나 리버싱 - Key file Reverse Me (0) | 2017.05.20 |
---|---|
레나 리버싱 Part10.Tut Reverse Me 문제풀이 (1) | 2017.05.20 |
abex - crack me 2번 문제풀이 (0) | 2017.05.20 |
Comments