리버싱/소소한 재미

민속놀이 뜯어보기(1) - (스타크래프트 CD-Key 알고리즘 분석하기)

comalmot_ 2020. 7. 17. 23:31
반응형

처음 이런 프로그램을 대상으로 분석을 진행해보았습니다,,,

 

OllyDBG 의 Back to user 기능에 대해서도 많은 공부가 되었고

 

무엇보다 어셈블리 하나만 잘못 보면 역산이 뻐버벙 오류가 나더군요..

 

무엇보다 기존에 스타 시디키 리버싱과 관련한 글들이 구글링해 본 결과 굉장히 자세히 나와 있어서 무리없이 금방 할 수 있었던 것 같습니다.

(제가 참고한 블로그 글입니다. 굉장히 자세히 나와있습니다.

일련의 과정을 따라가면서 할 수 있는 부분만 했는데도, 많은 공부가 되었습니다.

http://carpedm20.blogspot.com/2012/08/blog-post_7630.html)

 

* 저는 알고리즘 분석은 직접 했습니다. 알고리즘을 찾아가는 과정은 다른 블로그의 글을 보고 조금씩 도움을 받아 찾았습니다.

 

* 주의 : 32-bit 프로그램은 32-bit 환경에서 디버깅해야 Back to user가 정상적으로 작동한다고 stackoverflow에서 답을 얻을 수 있었습니다.

 

분석 환경

---------------------------------

Virtual BOX VM

OS : Windows 7 SP1 (32-bit)

RAM : 4GB

---------------------------------

 

사진은 추후 올리도록 하겠습니다.

 

정리하자면

 

1. CD-Key 를 입력하는 부분에서 Pause를 한 뒤에 Alt+F9 를 사용해서 Back to user로 전환.

 

2. CD-Key 입력하는 메시지 박스의 확인 버튼을 누르면 마지막 Call 부분으로 이동

 

3. 거기서부터 calls from .. 을 추적하면서 CD-Key를 검사하는 알고리즘을 발견

(개인적으로 calls from... 을 조사하는 것보다는 문자열을 검색해서 찾는 편이 훨씬 빠를 것 같습니다 실제로 그렇게 찾아도 보았습니다.)

 

4. 알고리즘 분석을 통한 CD-Key 생성 or 프로그램 패치를 통한 우회

 

입니다.

 

크랙에 성공한 모습

 

이 글로 인해 문제가 될 시 글은 삭제하거나 블러처리 하도록 하겠습니다.

반응형