1. name값을 배열에 저장한다.
2. name의 길이만큼 반복문을 돌려 0x10, 0x20, 0x30 xor 연산을 한다.
3. 연산된 xor 값을 시리얼과 비교하여 맞으면 OK 틀리면 Wrong!를 내뱉는다.

시리얼이 5B134977135E7D13 일때의 name을 구하는 것 이므로 시리얼과 xor 되는 값을 연산하면

name을 출력할 수 있다.

키젠은 다음과 같다.

  1. #include <stdio.h>  
  2. int main() {  
  3.     int arr[8] = { 0x5B,0x13,0x49,0x77,0x13,0x5E,0x7D,0x13 };  
  4.     int key[8];  
  5.     int i;  
  6.   
  7.     for (i = 0; i < 8; i++) {  
  8.         if (i%3==0)   
  9.             key[i] = arr[i] ^ 16;  
  10.           
  11.         else if (i%3==1)   
  12.             key[i] = arr[i] ^ 32;  
  13.           
  14.         else if (i%3==2)   
  15.             key[i] = arr[i] ^ 48;  
  16.           
  17.         printf("%c", key[i]);  
  18.     }  
  19.     printf("\n");  
  20.     return 0;  
  21. }  



+ Recent posts