abex' crackme #5
분석하기 전에 실행을 해보자.
"Enter your serial" 문구가 있고 Check 버튼이 있다.
Chcek를 누르면 "The serial you entered is not correct!" 문구가 나온다.
OllyDbg를 열어서 분석을 해보자.
실행 후 조금 밑으로 내리면 4010F7부분을 볼 수 있다.
strcat와 strcmp 함수를 쓴것으로 봐서는 4010F7에서 어떤 문자열과 비교를 하는지 확인하면 될 것 같다.
"ABCD1234"를 입력하고 Check를 눌렀을때의 화면이다. "L2C-5781QU6762-ABEX"문자열과 비교를 하고 있댜.
"Yep, you entered a correct serial!"
Serial 생성 과정을 확인해보자..
GetVolumeInformationA는 드라이브의 이름을 가져오는 함수이다.
내 드라이브의 이름은 "OS"이고, 이 문자열을 "4562-ABEX"와 붙인다.
4010A8까지 실행한 결과이다. 문자열이 붙여져 "OS4562-ABEX"가 return 되었다.
40225C("O") ~ 40225F("5")까지 1씩 더해주는것을 2번 실행하는 구문이다.
두번씩 더해주면 해당 문자열은 "QU6762-ABEX"가 된다.
비어있는 부분 (402000)에 "L2C-5781"문자열을 이어붙인다.
"L2C-5781"에 만들어진 "QU6762-ABEX"를 붙여준다.
다 만들어진 문자열과 내가 입력한 문자열을 비교한다.
abex' crackme 풀이 끝
[풀이] abex' crackme #1
'Security_ > Reversing' 카테고리의 다른 글
[해결] IDA 40343 Error 해결방법 (0) | 2021.10.04 |
---|---|
[풀이] abex' carckme #4 (0) | 2021.09.19 |
[풀이] abex' crackme #3 (0) | 2021.09.16 |
[정리] 함수 호출 규약 cdecl, stdcall, fastcall (0) | 2021.09.16 |
[풀이] abex' crackme #2 (0) | 2021.09.15 |
댓글