zj3t

email: euntaejang@gmail.com

Latest Posts

abex`2nd crackme-알고리즘 분석

By 오후 11:15

이번 포스팅은 저번에 말한 것 처럼 serial을 생성하는 알고리즘을 분석해보도록 하겠습니다.



저번에 프로그램실행화면 기억하시나요?? 


이런화면 이였습니다. 이 위의 두 개의 사진은 각각 About과 Check를 눌렀을 때 호출되는 함수의 부분입니다.

우리는 About함수는 필요없으니 Check함수만 알면됩니다.

제가 어떻게 Check함수를 찾았냐 하면 우리가 name에 대한 serial을 인증하려면 반드시 Check를 눌러야합니다. 따라서 저번 포스팅에 했던, serial을 찾으려했던 모든 부분이 다 Check를 누르면 호출되는 함수의 내부에 있는 조금한 함수입니다. 

이 Check함수를 찾은 목적은 알고리즘을 어디서 생성하는지 알지못하기 때문에 Check의 시작부분부터 차근차근 리버싱해보기 위함입니다.


이런 부분을 찾았습니다. 입력한 name, abcd는 각각 아스키코드로 61,62,63,64가 됩니다.

그리고 밑에 vbaFreeStr함수와 vbaVarAdd함수가 보입니다. FreeStr함수는 별게 없었습니다. 핵심은 VarAdd함수였습니다. 한번 실습해보시는 것도 좋을 것같습니다.


Add함수 내부로 들어가니 또 이런 Add함수가 보였습니다. F7로 다시 내부로 들어가 보도록 하겠습니다.



이 부분이 내부로 들어간 부분입니다. 주석만 보면 이해가 되실 거에요 값을 구하는데 쓸데

없는 주석도 몇가지 보이는데 대충 저 정도만 보시면 될것같습니다. 이미 abcd에 해당하는

 serial이 C5C6C7C8이라는 것을 저번 포스팅에서 구해놨고 이번에 a의 ASCII코드 값 즉 61

을 64를 더한 값이 C5고 b,c,d의 아스키 코드는 각각 a의 ASCII코드 보다 1,2,3씩 많은 값이

기 때문에 64와 더해서 serial을 생성한 다는 것을 알 수 있었습니다.








You Might Also Like

0 개의 댓글