'crackme'에 해당되는 글 1건

  1. 2010.01.06 CrackMe#14

2010.01.06 17:25 WarGame

심플스 crack 부분의 14번 문제

Key 값이 154C-6505-D2ADD0F3-A223-2870 일때 Name은 무엇인가
힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고..

정답인증은 Name의 MD5 해쉬값(대문자)


지금까지 Crackme 와는 다른 방식이다

보통 Name을 주고 올바른 Serial Key를 찾으라고 하는데 반대가 됐다.

그덕에 나중에 값의 참여부를 증명하는 구간을 잡아내기만 하면

쉽게 확인할 수 있었는데 그게 불가능하게 되었다.

이젠 Name으로 들어간 부분이 어떻게 연산되어서

Serial 값으로 들어가는지 체크를 해야 한다

먼저 String 을 기준으로 성공 루틴을 찾은다음

그 위를 훝어가도록 하자.



분명 성공 루틴 위의 점프문 JNZ는 Name 과 Key가 일치 하는지 여부를 검사할 것이고

그 위의 함수 호출 두 부분 중 하나가 될 것이다.

각각 BP를 걸고 확인해보면

첫번째 함수 부분에서 Key값이 계산되어 스택에 저장되어 있는 것을 볼 수 있다.

그럼 첫번째 함수로 진입해보자

진입해서 살펴보면



상당히 복잡해 보이는데

차근 차근 살펴보면 작은 구간들이 4개 있는걸 볼 수 있다.

key 값이 크게 4부분으로 나뉘어지는 것과 숫자 연산이 이루어지는 걸로 보아

한 구간 마다 key 한 부분씩 연산 됨을 유추해볼 수 있다.

이젠 그 다음부터 문제인데 -.-

일일히 거꾸로 계산해서 답을 맞추는 방법도 있겠지만

매우 비효율적일게 뻔하므로

간단한 프로그래밍을 이용하기로 했다

   10 int _tmain(int argc, _TCHAR* argv[])

   11 {

   12  char name[2];

   13  char total[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

   14  char cmp[10];

   15 

   16  int ESI=0,EBX=0,EDX=0,EDI=0,EAX=0,ECX=0;

   17 

   18  for(int i=0;i<strlen(total);i++)

   19  {

   20        name[0]=total[i];

   21 

   22   for(int j=0;j<strlen(total);j++)

   23   {

   24     name[1]=total[j];

   25 

   26     ESI=0,EBX=0,EDX=0,EDI=0,EAX=0,ECX=0;

   27 

   28    for(int k=0;k<2;k++)

   29    {

   30     ESI=name[k];

   31     ESI=ESI+EDX;

   32     ESI=ESI*0x772;

   33     EDX=ESI;

   34     EDX=EDX*ESI;

   35     ESI=ESI+EDX;

   36     ESI=ESI*0x474;

   37     ESI=ESI+ESI;

   38     EDX=ESI;

   39    }

   40 

   41    sprintf(cmp,"%X",EDX);

   42 

   43    if(strstr(cmp,"154C"))

   44    {

   45        printf("%c%c\n",name[0],name[1]); return 0;

   46    }

   47 

   48   }

   49  }

   50  return 0;

   51 }


각 단락마다 Name의 모든 부분을 사용하므로

첫번째 단락만을 이용해서 추출해냈다

답은 CT

이를 MD5로 암호화하면 끝~

대문자로 입력해야 하니 주의하자 -_-

'WarGame' 카테고리의 다른 글

Vortex level2 풀이  (0) 2010.02.16
Vortex level1 풀이  (0) 2010.02.10
Vortex level0 풀이  (0) 2010.02.04
Code Gate 2009 본선 문제 stego_win 풀이  (0) 2010.02.03
Crackme#15  (0) 2010.01.08
CrackMe#14  (0) 2010.01.06
Posted by LinkC
이전버튼 1 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday12
Today18
Total328,702

달력

 « |  » 2019.5
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

최근에 받은 트랙백

글 보관함


. .