300x250
레나튜토리얼-2 (reverseMe Keyfile)
- Keyfile에 등록된 값에 대한 검증 로직을 리버싱으로 체크
- keyfile에 등록된 값은 총 16자 이상이며 그 중 문자 'G' 를 8글자 이상 포함해야 함.
* 실습환경 : Windows XP, Ollydbg
* Keyfile 유, 정상 라이선스
* Keyfile 유, 비정상 라이선스
* Keyfile 무
1. Keyfile.dat 유무 체크 (0040105C)
- CreateFileA 함수를 이용해 파일 존재 유무 확인.
- 파일이 존재하지 않을 경우 "Evaluation Period out of date. Purchase new license" 메시지 출력 후 프로그램 종료
- 파이링 존재할 경우 "004010A" 로 이동
* jnz [주소] : 비교된 값이 0이 아닌 경우 주소로 이동
2. Keyfile.dat 데이터 로드
- ReadFile 함수를 이용해 Keyfile.dat 에 입력된 데이터 읽어오기
3. Keyfile 라이선스 검증
- 004010B8 : Keyfile.dat 에서 읽어온 값이 16바이트인지 비교
- 004010BF : 읽어온 값이 16바이트 미만인 경우 004010F7로 이동. (비정상 라이선스라고 출력)
- 004010C1 : 읽어온 값을 1바이트씩 AL에 저장
- 004010CB : 읽어온 값이 문자 'G' 인지 체크
- 004010CF : 문자 'G' 인 경우 ESI 값 1 증가
- 004010D3 : ESI 값이 8인지 경우 검증 로직을 빠져나옴
** keyfile에 포함된 라이선스는 16글자 이상이면서 문자 'G'가 8글자 이상 포함되어야 한다.
반응형
'IT Security' 카테고리의 다른 글
리버싱) 레나튜토리얼-3 (Oops binary 수정) (0) | 2022.03.20 |
---|---|
리버싱) 레나튜토리얼-3 (nag 제거) (0) | 2022.03.17 |
정보보안) OWASP TOP10 2021 요약 (TOP 6~10) (0) | 2022.03.01 |
정보보안) OWASP TOP10 2021 요약 (TOP 1~5) (0) | 2022.02.27 |
정보보안) OWASP TOP 10 2021 (0) | 2022.01.20 |