Пример #1
0
//------------------------------------------------------------------------------
void ReviewWOW64Redirect(PVOID OldValue_W64b)
{
  typedef BOOL (WINAPI *WOW64DISABLEREDIRECT)(PVOID *OldValue);

  HMODULE hDLL = LoadLibrary( "KERNEL32.dll");
  if (hDLL != NULL)
  {
    if (OldValue_W64b == FALSE)
    {
      WOW64DISABLEREDIRECT Wow64DisableWow64FsRedirect = (BOOL (WINAPI *)(PVOID *OldValue)) GetProcAddress(hDLL, "Wow64DisableWow64FsRedirection");
      if (Wow64DisableWow64FsRedirect)Wow64DisableWow64FsRedirect(&OldValue_W64b);
    }else
    {
      WOW64DISABLEREDIRECT Wow64RevertWow64FsRedirect  = (BOOL (WINAPI *)(PVOID *OldValue)) GetProcAddress(hDLL, "Wow64RevertWow64FsRedirection");
      if (Wow64RevertWow64FsRedirect)Wow64RevertWow64FsRedirect(&OldValue_W64b);
    }
    FreeLibrary(hDLL);
  }
}
Пример #2
0
//----------------------------------------------------------------
BOOL RemoteConnexionFilesScan(DWORD iitem, char *ip, DWORD ip_id, PSCANNE_ST config, long int *id_ok)
{
  #ifdef DEBUG_MODE
  AddMsg(h_main,"DEBUG","files:RemoteConnexionFilesScan",ip);
  #endif

  #ifdef DEBUG_MODE_FILES
  AddMsg(h_main,"DEBUG","files:RemoteConnexionFilesScan START",ip);
  #endif

  if (ipIsLoclahost(ip))
  {
    //disable WOWO64 redirect
    PVOID OldValue = NULL;
    BOOL disable_wowo64 = FALSE;
    if( Wow64DisableWow64FsRedirect(&OldValue)) disable_wowo64 = TRUE;

    if (SendDlgItemMessage(h_main,CB_T_FILES,LB_GETCOUNT,(WPARAM)NULL,(LPARAM)NULL) > 0)
    {
      if (!LocalFilesScan(iitem, config, id_ok, CB_T_FILES))
        AddLSTVUpdateItem((char*)"LOCAL FILE SCAN FAIL!",COL_FILES,iitem);
    }

    //localFileScanList!
    if (SendDlgItemMessage(h_main,CB_T_MULFILES,LB_GETCOUNT,(WPARAM)NULL,(LPARAM)NULL) > 0)
    {
      ListView_SetItemText(GetDlgItem(h_main,LV_results),iitem,COL_STATE,(LPSTR)(LPSTR)"Files (List)");
      if (!LocalFilesScanList(iitem, ip, config, CB_T_MULFILES))
        AddLSTVUpdateItem((char*)"LOCAL MULTI FILE SCAN FAIL!",COL_FILES,iitem);
    }

    if (disable_wowo64)Wow64RevertWow64FsRedirect(OldValue);
  #ifdef DEBUG_MODE_FILES
  AddMsg(h_main,"DEBUG","files:RemoteConnexionFilesScan END",ip);
  #endif
    return TRUE;
  }else
  {
    if (SendDlgItemMessage(h_main,CB_T_FILES,LB_GETCOUNT,(WPARAM)NULL,(LPARAM)NULL) > 0)
    {
      if(RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"C$", config, id_ok, CB_T_FILES, FALSE))
      {
        nb_files++;
        BOOL b_d = RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"D$", config, id_ok, CB_T_FILES, FALSE);
        BOOL b_e = RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"E$", config, id_ok, CB_T_FILES, FALSE);

        if (SendDlgItemMessage(h_main,CB_T_MULFILES,LB_GETCOUNT,(WPARAM)NULL,(LPARAM)NULL) > 0)
        {
          ListView_SetItemText(GetDlgItem(h_main,LV_results),iitem,COL_STATE,(LPSTR)(LPSTR)"Files (List)");
          RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"C$", config, id_ok, CB_T_MULFILES, TRUE);
          if(b_d)RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"D$", config, id_ok, CB_T_MULFILES, TRUE);
          if(b_e)RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"E$", config, id_ok, CB_T_MULFILES, TRUE);
        }
    #ifdef DEBUG_MODE_FILES
    AddMsg(h_main,"DEBUG","files:RemoteConnexionFilesScan END",ip);
    #endif
        return TRUE;
      /*}else if(RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"ADMIN$", config, id_ok, CB_T_FILES, FALSE))
      {
        RemoteAuthenticationFilesScan(iitem, ip, ip_id, (char*)"ADMIN$", config, id_ok, CB_T_MULFILES, TRUE);*/
      #ifndef DEBUG_NOERROR
      }else AddLSTVUpdateItem((char*)"CONNEXION FAIL!",COL_FILES,iitem);
      #else
      }
      #endif
    }else if (SendDlgItemMessage(h_main,CB_T_MULFILES,LB_GETCOUNT,(WPARAM)NULL,(LPARAM)NULL) > 0)