시리얼 키를 맟춰야 되는것 같다. 그냥 Resister now 를 클릭하니까 에러 메세지가 나온다
메세지 내용을 보아 시리얼 키를 찾는것이 목적인거 같다.
Olly DBG로 열고난 후에, Search for > All intermodular calls을 이용해서 사용되는 API를 검색을 해보았지만
뭔가가 이상함을 알 수 있었다.
아무것도 없다. 그래서 에러 메세지를 기반으로 검색을 해보았지만
뭔가 이상하다.
패킹으로 실행 압축이 되어있는거 같다 그래서 PEID를 이용해서 패킹의 여부를 확인 해보았다.
패킹이란?
실행압축이라는 의미를 가지며 그 의미인 즉슨 파일 내부에 압축해제코드를 포함하고 있어서
실행될 때 메모리단에서 압축해제 후 실행시키는 기술을 의미한다.
패킹을 사용하는 이유는 코드분석으로 인한 악의적인 용도로 사용하는것을 방지하는 것에 목적을 둔다.
UPX를 이용해서 패킹이 되어있다. 따라서 UPX를 이용해서 언패킹을 진행해 보았다.
UPX를 다운로드 한 뒤에 (반드시 UPX가 설치된 경로로 이동한 다음 확인해야 한다.)
Cmd 에서 UPX에 대한 정보를 확인 할 수 있다.
그럼 여기서 -d 와 -k를 이용해서 언패킹을 해보았다.
해당 파일의 용량이 증가한걸로 봐서 언패킹이 진행된거 같다.
Olly DBG로 열어보았다.
메세지 창의 내용을 기반으로 검색을 하기 위해서 Search for -> reference text strings를 보았더니 이제는 아까전과 달리 아스키 코드의 값을 확인 할 수 있었다. 그리고 에러 메세지와 성공메세지를 띄우는 문자열을 확인 할 수 있었다.
인증로직이 눈에 보인다.
1. 이름을 입력하지 않았을 경우 Enter a Name이라는 메세지를 보여준다.
2. 시리얼 값을 입력하지 않았을 경우 Enter a Serial이라는 메세지를 보여준다.
3. 이름과 시리얼 값이 모두 일치하는지 비교한다.
- 일치할 경우 Congrates! You cracked this CrakMe라는 메세지를 보여준다.
- 불일치의 경우 Worng Serial, try again이라는 메세지를 보여준다.
해당 프로그램의 이름과 시리얼 값은 이미 인증로직에서 확인 할 수 있듯이
Name = Registered User
Serial = GFX-754-IER-954이다.
성공했다는 메세지 창을 보여준다.
'CTF > Reversing' 카테고리의 다른 글
Code Engn Basic RCE level 7 (0) | 2020.12.03 |
---|---|
Code Engn Basic RCE level 6 (0) | 2020.12.02 |
Code Engn Basic RCE level4 (0) | 2020.08.16 |
Code Engn Basic RCE level3 (0) | 2020.08.12 |
Code Engn Basic RCE Level2 (0) | 2020.08.12 |