본문 바로가기

Hacked Brain/Reverse Engineering

리버스엔지니어링샘플.abex crack me 시리즈.2. serial crack

이번 샘플은 아주 간단하다.
이름에 따라서 인코딩된 암호가 다른데, 이를 크랙한다.
주의 깊게 봐야할건 결국 어떻게 암호가 생성이 되던지,
결국에는 입력된 암호와 실제 인코딩된암호를 비교하는 부분을 파악을 해서
그 값을 찾아내면된다.
이 예제는 VB로 만들어 져 있었다...

abex2.zip

먼저 파일의 압출을 풀어서 실행해본다.



아무 이름이나 넣어도 되나, 여기선 Name에는 test, Serial 에는 aaaaaa 를 넣어봤다.


역시 에러메세지가 뜬다.
이런 메세지창이 뜰때 그 문구들을 잘 보아두어야 한다.
결국 저 문구를 찾아내어서 해당 코드를 잡는게 빠르다...


PEiD로 해당 파일을 본결과다. VB로 만들어져 있고, 압축등은 되어 있지 않다.



OllyDbg를 실행시켜서 CPU부분을 본다.

사용자 삽입 이미지


일단 에러메세지를 찾아본다.
Search for 메뉴에서
text string을 찾아본다.

사용자 삽입 이미지


아래쪽에 보면 우리가 아까 보았던, 에러메세지가 보인다...
그럼 이야기는 끝났다...ㅋㅋ




해당 메세지를 클릭하고 디셈블러에서 찾아본다.





해당 코드가 있는 부분이 보인다.
결국 어디에선가 해당 코드의 위쪽으로 점프가 되어서, 에러메세지를 보여주는 부분이므로,
어디서 점프가 되어오는지, 위로 찾아 올라가본다.




죽 올라가다보면, 40338A에서 성공메세지가 보인다.
그 위로 따라가다보면, 403332에서 점프문을 확인 할수 있는데, 여기서 점프가 되면, 에러메세지쪽으로 날아가버리니, 점프를 시키면 않된다.

4032E9 에 브레이크 포인트를 설정하고, 실행을 시켜보면,
입력했던 시리얼이 4032FD 에서 올라온것을 확인 할수 있다.




우리가 원하는 시리얼은 그 다음주소에 떡 하니 보인다...



결국 여기서 원하는 시리얼을 카피한후 다시 입력을 해주면 간단히 해결.

사용자 삽입 이미지


시리얼을 알아내려고 하면, 이런 방식을 이용하면 되고,
만약 크랙을 만들 경우라면, 무조건 성공메세지 루틴쪽으로 점프를 시키면 된다.