이번 샘플은 아주 간단하다.
이름에 따라서 인코딩된 암호가 다른데, 이를 크랙한다.
주의 깊게 봐야할건 결국 어떻게 암호가 생성이 되던지,
결국에는 입력된 암호와 실제 인코딩된암호를 비교하는 부분을 파악을 해서
그 값을 찾아내면된다.
이 예제는 VB로 만들어 져 있었다...
아무 이름이나 넣어도 되나, 여기선 Name에는 test, Serial 에는 aaaaaa 를 넣어봤다.
이런 메세지창이 뜰때 그 문구들을 잘 보아두어야 한다.
결국 저 문구를 찾아내어서 해당 코드를 잡는게 빠르다...
OllyDbg를 실행시켜서 CPU부분을 본다.
일단 에러메세지를 찾아본다.
Search for 메뉴에서
text string을 찾아본다.
아래쪽에 보면 우리가 아까 보았던, 에러메세지가 보인다...
그럼 이야기는 끝났다...ㅋㅋ
해당 메세지를 클릭하고 디셈블러에서 찾아본다.
해당 코드가 있는 부분이 보인다.
결국 어디에선가 해당 코드의 위쪽으로 점프가 되어서, 에러메세지를 보여주는 부분이므로,
어디서 점프가 되어오는지, 위로 찾아 올라가본다.
죽 올라가다보면, 40338A에서 성공메세지가 보인다.
그 위로 따라가다보면, 403332에서 점프문을 확인 할수 있는데, 여기서 점프가 되면, 에러메세지쪽으로 날아가버리니, 점프를 시키면 않된다.
4032E9 에 브레이크 포인트를 설정하고, 실행을 시켜보면,
입력했던 시리얼이 4032FD 에서 올라온것을 확인 할수 있다.
우리가 원하는 시리얼은 그 다음주소에 떡 하니 보인다...
결국 여기서 원하는 시리얼을 카피한후 다시 입력을 해주면 간단히 해결.
시리얼을 알아내려고 하면, 이런 방식을 이용하면 되고,
만약 크랙을 만들 경우라면, 무조건 성공메세지 루틴쪽으로 점프를 시키면 된다.