Небольшой крякмис

Discussion in 'Реверсинг' started by 4upakabr0, 23 May 2013.

  1. 4upakabr0

    4upakabr0 Member

    Joined:
    14 May 2008
    Messages:
    124
    Likes Received:
    23
    Reputations:
    0
    Достанешь пароль?
    http://b10s.ru/1.exee
     
  2. swt1

    swt1 Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    306
    Likes Received:
    78
    Reputations:
    21
    там связко сплоЭнтов висит :(

    какой конкурс проходишь?
     
  3. 4upakabr0

    4upakabr0 Member

    Joined:
    14 May 2008
    Messages:
    124
    Likes Received:
    23
    Reputations:
    0
    :) пробило? там всего 4 0day
    удивлен.

    прохожу PHDays hackquest
    о нём темку в ветке античат.квесты запилил. но похоже там премодерация

    если разберешься - пиши. очень интересно.
     
  4. swt1

    swt1 Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    306
    Likes Received:
    78
    Reputations:
    21
    4upakabr0
    нет, не пробило, просто знаю.

    хитрый какой, шекеля даёшь?

    или бартер(Когда-то, Крис aka Мыщъх, пейсал ст0тью, мол нашел багу на интел, вот выдури у него, тогда и поговорим.)

    хотя, наверн он тогда был под феном, или ещё под чем-то.
     
    #4 swt1, 23 May 2013
    Last edited: 23 May 2013
  5. 4upakabr0

    4upakabr0 Member

    Joined:
    14 May 2008
    Messages:
    124
    Likes Received:
    23
    Reputations:
    0
    мышъха поди достань в его штатах :)
    было бы что в моем крякмисе ценного. а то так, в образовательных целях.
     
  6. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    однако какой я молодец что сдампил рантайм 11 студии,
    всем кто дрочит с идой и этим крякми посвящается

    http://www.sendspace.com/file/wv7lfw
     
    2 people like this.
  7. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    вообщем вам сюда
    .text:00401650 ; int __cdecl naked_f(signed int argc, wchar_t **argv)

    разбираться впадлу, берёте иду с хексреем и потихонькупотихоньку

    Code:
    int __cdecl naked_f(signed int argc, wchar_t **argv)
    {
      wchar_t *pwsCurrent; // edx@5
      wchar_t *pwEnd; // ecx@5
      wchar_t *pwStart; // esi@5
      wchar_t wch; // ax@6
      int numWChars; // ecx@7
      int cntr; // eax@7
      HMODULE hkrn32; // eax@10
      void (__stdcall *pIsWow64Process)(HANDLE, BOOL *); // eax@10
      unsigned __int64 lowticks; // qax@13
      wchar_t *v12; // ST00_4@13
      void *v13; // eax@13
      int v14; // edi@13
      void *v15; // esi@13
      bool v16; // bl@16
      int v17; // esi@16
      int v18; // ecx@22
      int v19; // eax@23
      int v20; // ecx@27
      int v21; // ecx@34
      int v22; // eax@35
      int v23; // ecx@39
      wchar_t *pwMsg; // [sp-8h] [bp-13ECh]@2
      signed int v25; // [sp-8h] [bp-13ECh]@23
      signed int v26; // [sp-8h] [bp-13ECh]@35
      unsigned int v27; // [sp-4h] [bp-13E8h]@1
      int v28; // [sp+0h] [bp-13E4h]@1
      int v29; // [sp+Ch] [bp-13D8h]@1
      char *v30; // [sp+10h] [bp-13D4h]@13
      int v31; // [sp+14h] [bp-13D0h]@13
      int v32; // [sp+18h] [bp-13CCh]@13
      int v33; // [sp+1Ch] [bp-13C8h]@13
      __int64 v34; // [sp+20h] [bp-13C4h]@13
      BOOL bWow64; // [sp+28h] [bp-13BCh]@10
      int v36; // [sp+2Ch] [bp-13B8h]@13
      int v37; // [sp+30h] [bp-13B4h]@14
      char v38; // [sp+34h] [bp-13B0h]@16
      int v39; // [sp+36h] [bp-13AEh]@16
      char v40; // [sp+3Ch] [bp-13A8h]@13
      unsigned int v41; // [sp+13C4h] [bp-20h]@21
      unsigned int v42; // [sp+13C8h] [bp-1Ch]@21
      unsigned int v43; // [sp+13CCh] [bp-18h]@21
      int v44; // [sp+13D0h] [bp-14h]@21
      unsigned int v45; // [sp+13D4h] [bp-10h]@1
      int v46; // [sp+13E0h] [bp-4h]@13
    
      v45 = (unsigned int)&v29 ^ __security_cookie;
      v27 = (unsigned int)&v28 ^ __security_cookie;
      if ( argc < 3 )
      {
        pwMsg = L"usage: progname.exe login password\n";
    facepalm_fail_:
        WriteMessage(pwMsg, v27);
        return __security_check_cookie();
      }
      pwsCurrent = argv[2];
      pwEnd = argv[2];
      pwStart = pwEnd + 1;
      do
      {
        wch = *pwEnd;
        ++pwEnd;
      }
      while ( wch );
      numWChars = pwEnd - pwStart;
      cntr = 0;
      if ( numWChars > 0 )
      {
        while ( !(*pwsCurrent & 0xFF80) )
        {
          ++cntr;
          ++pwsCurrent;
          if ( cntr >= numWChars )
            goto prodoljaem;
        }
        pwMsg = L"Wrong credentials!";
        goto facepalm_fail_;
      }
    prodoljaem:
      hkrn32 = GetModuleHandleW(L"kernel32");
      pIsWow64Process = (void (__stdcall *)(HANDLE, BOOL *))GetProcAddress(hkrn32, "IsWow64Process");
      bWow64 = 0;
      pIsWow64Process((HANDLE)-1, &bWow64);
      if ( !bWow64 )
      {
        pwMsg = L"This program is meant to be run under WOW64 subsystem\n";
        goto facepalm_fail_;
      }
      lowticks = __rdtsc();
      set_tick_cookie((int)&v40, lowticks);
      v30 = &v40;
      v31 = 32;
      v32 = -1;
      v34 = sub_404980(&v30, 0x1F5u) - 0x7FFFFF9C + 0x80000000;
      sub_4038B0(&v34);
      v29 = 0;
      v33 = (int)sub_4083BC;
      sub_403500(&v36, &v33, &unk_437F50, &v29);
      v12 = argv[1];
      v46 = 0;
      v29 = 0;
      v13 = (void *)sub_4014D0(v12, &v29);
      v14 = v36;
      v15 = v13;
      if ( !v36 || (_BYTE)v37 && *(_BYTE *)(v36 + 28) )
      {
        v30 = (char *)4;
        v31 = (int)off_43D08C;
        sub_408F18(&v30);
      }
      (*(void (__thiscall **)(int, int))(*(_DWORD *)v36 + 8))(v36, v37);
      v33 = 1;
      LODWORD(v34) = sub_4083BC;
      sub_403550(&v38, &v34, &off_4382F0, &v33, argv + 1);
      LOBYTE(v46) = 1;
      v30 = &v40;
      v31 = 32;
      v32 = -1;
      v34 = sub_404980(&v30, 0x1F5u) - 0x7FFFFF9C + 0x80000000;
      sub_4038B0(&v34);
      v16 = sub_4083BC(&off_4381C0) != 0;
      j_j__free(v15);
      v17 = v39;
      if ( !v16 )
        goto LABEL_46;
      if ( !v39 || BYTE2(v39) && *(_BYTE *)(v39 + 28) )
      {
        v30 = (char *)4;
        v31 = (int)off_43D08C;
        sub_408F18(&v30);
      }
      if ( *(_BYTE *)(*(int (__thiscall **)(int, _DWORD))(*(_DWORD *)v39 + 8))(v39, *(int *)((char *)&v39 + 2)) )
      {
        LOWORD(v44) = 0;
        v41 = 0x740049u;
        v42 = 0x690020u;
        v43 = 0x210073u;
        WriteMessage(&v41, v27);
        LOBYTE(v46) = 0;
        if ( !_InterlockedExchangeAdd((signed __int32 *)(v17 + 4), 0xFFFFFFFFu) )
        {
          v18 = *(_DWORD *)(v17 + 40);
          if ( v18 )
          {
            v19 = *(_DWORD *)v18;
            v25 = v17;
          }
          else
          {
            v19 = *(_DWORD *)v17;
            v25 = 1;
            v18 = v17;
          }
          (*(void (__thiscall **)(int, signed int))v19)(v18, v25);
        }
        v46 = -1;
        if ( !_InterlockedDecrement((signed __int32 *)(v14 + 4)) )
        {
          v20 = *(_DWORD *)(v14 + 40);
          if ( v20 )
            (**(void (__stdcall ***)(_DWORD))v20)(v14);
          else
            (**(void (__thiscall ***)(_DWORD, _DWORD))v14)(v14, 1);
        }
      }
      else
      {
    LABEL_46:
        LOBYTE(v46) = 0;
        if ( v17 && !_InterlockedExchangeAdd((signed __int32 *)(v17 + 4), 0xFFFFFFFFu) )
        {
          v21 = *(_DWORD *)(v17 + 40);
          if ( v21 )
          {
            v22 = *(_DWORD *)v21;
            v26 = v17;
          }
          else
          {
            v22 = *(_DWORD *)v17;
            v26 = 1;
            v21 = v17;
          }
          (*(void (__thiscall **)(int, signed int))v22)(v21, v26);
        }
        v46 = -1;
        if ( !_InterlockedExchangeAdd((signed __int32 *)(v14 + 4), 0xFFFFFFFFu) )
        {
          v23 = *(_DWORD *)(v14 + 40);
          if ( v23 )
            (**(void (__stdcall ***)(_DWORD))v23)(v14);
          else
            (**(void (__thiscall ***)(_DWORD, _DWORD))v14)(v14, 1);
        }
      }
      return __security_check_cookie();
    }