문제: Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가
힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고..

 

 

 

1. Name과 Key 입력 창이 나온다. 문제대로 Key값에는 5D88-53B4-52A87D27-1D0D-5B09을 넣고 Name은 아무값을 입력한다.

 


 

2. cmp eax, 2 부분은 패치를 한 파일을 분석을 하는거지만 기존에는 cmp eax, 3으로 되어 있다. Name 입력값이 3자리 이하이면 종료시키는 분기점이다.

 

 


 

3. Tracing을 하다보면 0x45B850 주소에서 시리얼 값이 Return이 된다.

 

 


4. 해당 주소로 이동을 하게 되면 연산과정이 여러개 나온다. 4-4-8-4-4 의 Serial key를 제작하는 로직이다. 그 중 첫번째 자리 연산 과정을 살펴보면 name에 입력했던 11값을 1byte씩 연산을 하고 첫번째 byte 결과값을 두번째 byte와 더해 edx에 넣어둔다.

 

 

 


 

5. Serial key 첫번쨰 자리 결과가 나오게 되는데 총 4byte이며 0x4086c8 주소에서 word 값으로 분리시켜 Return한다.


 

6. 입력했던 name에 11 값으로 5번의 연산을 통해 Serial key를 만든다.

 


 

7. 연산과정을 전부 다 아는건 시간이 오래 소요 되므로 간단한 코드를 짜서 0x0~0x7F 까지의 값을 무작위 대입해 2개의 배열에서 연산을 통해 값을 찾아낸다.

 

 

 


8. 작성 했던 코드를 돌려보면 문제에 나와있던 Serial key 첫번째 값 0x5D88과 일치하는 값들이 1개 출력이 된다. 첫번째 값 0x43, 두번째 값 0x36

 

9. hex to ascii를 해보면 C6 두자리 수가 나온다. 이 값을 입력을 해보면 성공인걸 알 수 있다.

'Crack' 카테고리의 다른 글

로스트아크 오토핫키 프로그램 crack  (3) 2021.07.20
CodeEngn Advance RCE L09  (0) 2021.04.09
CodeEngn Advance RCE L02  (0) 2021.04.05

+ Recent posts