Study/리버싱
abex crack me 5번 문제풀이
연계중
2017. 5. 20. 22:08
반응형
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) * 년도라는 알고리즘을 통하여 시리얼 키 값을 구한 다는 것을 알 수 있습니다.
반응형