[reversing]H4CKING GAME_Season1 : Keygen 추가 공부
워게임을 풀고 공부+실습을 진행했다.
keygen(Key Generator의 줄임말) : 프로그램의 시리얼 키 생성기.
워게임 이름이 keygen인데 keygen을 만드는 것보다 크랙을 하는 게 더 수월할 것 같아서, 크랙에 대해 실습하기로 했다.
간단한 크랙 문제를 사이트에서 다운받았다. 다운받은 크랙을 x32dbg로 실행했다.
실행하고 f9 누르니까 이런 화면이 뜨고. 아무거나 입력하니까 변화없이 아래에 UnRegistired Version이라고 뜸.
그래서 잠시 중단하고 문자열 찾아봄. 근데 UnRegistired Version이랑 깨면 나오는 문구일 것 같은 Cracking Success!!! 둘 다 보인다.
여기 0x4012FF 위치로 건너뛰게 하면 되나봄..
(GPT와 씨름하면서 cmp 조건문, jne를 je로 바꾸거나 시도는 해봤는데 조건이 너무 많았고 전부 바꾸면 오류가 생기고 위에 몇 개만 바꾸면 변화가 없었음..)
어디서 건너뛰게 해주냐면, UnRegistired 위의 조건 부분에서 건너뛰게 해주면 된다. -> 뒤의 점프로 넘어가면 조건들이 연속적으로 존재하기 때문에 이걸 다 건너뛰고 Success로 넘어가게 하려는 이유.
여기 이 부분 위의 cmp ax, C8을 jmp 0x4012FF로 패치해주면 된다. 0x4012FF는 확인했듯, Success 문자열이 존재하는 위치이다.
사진은 패치한 결과(sjang....은 패치한 파일이름)
그러면 아무 문자열이나 입력해도 Cracking Success!!!가 뜬다...
이게 맞는 풀이인지는 모르겠는데, 버튼을 누르기 전에 문구가 뜨기 때문이다. -> 이벤트를 타지 않고 로직만 실행되어서 그렇다고 함...
어셈블리어 해석이 어려워서 IDA 디컴파일 기능 이용하는 게 훨씬 쉬웠을 것 같다. 어셈블리어를 어느 정도는 알아도 잘 알지도 않고, 해석도 쉽게 되는 편은 아니기 때문이다.. 그래도 대충 아는 거에서 끝낼 게 아니라, 어셈블리어 숙지도 어느 정도 해두는 게 좋을 것 같다.