이 부분의 알고리즘과 사용되는 버퍼를 자세히 살펴보면


입력받은 name으로 serial key를 생성하고 있다.


버퍼에 10, 20, 30 값을 입력하고


루프를 돌면서 name 버퍼의 하나하나에 순서대로 xor 연산을 수행한다.


5B 13 49 77 13 5E 7D 13


즉, 이러한 serial key 를 만드는 이름을 찾는건


해당 시리얼을 위 알고리즘처럼 순서대로 10 , 20 , 30


을 다시 XOR연산해서 원래의 값으로 되돌리면 된다.


원래 값으로 되돌리는 데에 사용된 소스 코드



#include <stdio.h>

int main(void)
{
   int i=0;
   int j = 0x10;
   int str_count=0;
   char passwd[100] = {0x5B,0x13, 0x49, 0x77, 0x13, 0x5E, 0x7D, 0x13};


   //scanf("%s", passwd);


   for(i=0; i<100; i++)
   {
      if(passwd[i]==0)
     break;

      str_count++;
   }


   for(i=0; i<str_count; i++)
   {
      if(j == 0x40)
     j = 0x10;
      passwd[i] ^= j;
      j += 0x10;

      printf("%c ", passwd[i]);
   }






   return 0;
}



'취미 > WarGame' 카테고리의 다른 글

[reversing.kr] ImagePrc  (0) 2015.02.21
[reversing.kr] Position  (0) 2013.10.30
[reversing.kr] replace  (0) 2013.10.25
[reversing.kr] Easy_UnpackMe  (0) 2013.10.24
[reversing.kr] 1번 문제 Easy CrackMe  (0) 2013.10.18
Posted by $Zero
: