블로그 이전했습니다. https://jeongzero.oopy.io/
[CodeEngine] Basic RCE L14
본문 바로가기
워게임/CodeEngn

[CodeEngine] Basic RCE L14

728x90

1. 문제


Name이 CodeEngn 일때 Serial을 구하시오
(이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요)
Ex) 11111

키젠값 찾는거일듯

2. 접근방법


int __stdcall sub_4011E2(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
  int v5; // esi
  int name_size; // ecx
  int v7; // eax

  if ( Msg == 2 )
  {
    PostQuitMessage(0);
  }
  else if ( Msg == 513 )
  {
    ReleaseCapture();
    SendMessageA(hWnd, 0xA1u, 2u, 0);
  }
  else if ( Msg == 273 && !HIWORD(wParam) && wParam == 109 )
  {
    ExitProcess(0);
  }
  if ( Msg == 273 && !HIWORD(wParam) && wParam == 113 )
    ShowWindow(hWnd, 6);
  if ( Msg != 273 )
    return DefWindowProcA(hWnd, Msg, wParam, lParam);
  if ( !HIWORD(wParam) && wParam == 0x70 )
    MessageBoxA(0, Text, Caption, 0);
  if ( !HIWORD(wParam) && wParam == 108 )
  {
    if ( !GetDlgItemTextA(hWnd, 106, input_name, 64) || !GetDlgItemTextA(hWnd, 107, input_serial, 64) )
      return MessageBoxA(0, aPleaseFillIn1M, Caption, 0);
    v5 = 0;
    name_size = lstrlenA(input_name);
    v7 = 1;
    do
    {
      v5 = ((int)(unsigned __int8)byte_403037[v7] >> 1)
         + (unsigned __int8)byte_403037[v7] * (unsigned __int8)byte_403037[v7]
         + v5
         - (unsigned __int8)byte_403037[v7];
      ++v7;
      --name_size;
    }
    while ( name_size );
    if ( change_hex(input_serial) == v5 )
      MessageBoxA(0, " Good Job, I Wish You the Very Best", Caption, 0);
    else
      MessageBoxA(0, " You Have Enter A Wrong Serial, Please Try Again ", Caption, 0);
  }
  return 0;
}

GetDigItemTextA 함수로 Name와 serial 입력값을 가져온다. 그다음 name에 대한 키젠을 생성하여 v5에 저장한다. 그리고 change_hex() 함수를 호출하여 입력한 시리얼 키 값을 16진수로 변환한다.

이건 그냥 디버깅해서 v5에 담긴 값을 시리얼로 입력하면 끝이다

3. 풀이


4. 몰랐던 개념


ez

728x90

'워게임 > CodeEngn' 카테고리의 다른 글

[CodeEngine] Basic RCE L17  (0) 2021.01.11
[CodeEngine] Basic RCE L16  (0) 2021.01.04
[CodeEngine] Basic RCE L15  (0) 2021.01.02
[CodeEngine] Basic RCE L09  (0) 2020.12.29
[CodeEngn] Basic RCE L06  (0) 2020.12.28