Example #1
0
BOOL InstallNewDriver(He4HookDriverHide* pNtDriverControl)
{
  if (pNtDriverControl == NULL)
    return FALSE;

  DWORD dwVersionOld = 0;
  DWORD dwBaseOld = 0;

  GetVersion(&dwVersionOld);
  GetLocalBase(&dwBaseOld);

  FILEINFOSET* fis = NULL;
  BOOL         bGetSaveList = FALSE;
  DWORD        dwSizeListByBytes = pNtDriverControl->GetSaveListSizeByBytes();
  if (dwSizeListByBytes)
  {
    fis = (FILEINFOSET*) new char[dwSizeListByBytes+sizeof(DWORD)];
    if (fis)
    {
      fis->dwSize = dwSizeListByBytes+sizeof(DWORD);
      bGetSaveList = pNtDriverControl->GetSaveList(fis);
    }
  }

  //if (pNtDriverControl->Install() == FALSE) 
  if (pNtDriverControl->LoadAndCallImage() == FALSE)
  {
    if (fis != NULL)
      delete[] (char*)fis;
    return FALSE;
  }

  DWORD dwVersionNew = 0;
  DWORD dwBaseNew = 0;

  GetVersion(&dwVersionNew);
  GetLocalBase(&dwBaseNew);
  if (dwVersionNew == dwVersionOld && dwBaseNew == dwBaseOld)
  {
    if (fis != NULL)
      delete[] (char*)fis;
    return FALSE;
  }

  if (bGetSaveList == TRUE)
    pNtDriverControl->AddToSaveList(fis);

  if (fis != NULL)
    delete[] (char*)fis;

  return TRUE;
}
Example #2
0
void ShowDeviceCurrentVersion(void)
{
  DWORD dwVersion = 0;
  DWORD dwBase = 0;

  GetVersion(&dwVersion);
  GetLocalBase(&dwBase);

  if (dwVersion != 0 && dwBase != 0)
    printf("He4HooInv device installed - \n     Version: %08X\n     Base: %08X\n", dwVersion, dwBase);
  else
    printf("He4HooInv device not installed\n");
}
Example #3
0
bool CAI_LocalIdSpace::AddSymbol( const char *pszSymbol, int localId, const char *pszDebugSymbolType, const char *pszDebugOwner )
{
	AssertMsg( AI_IdIsLocal( localId ), ("Global symbol ID passed to CAI_LocalIdSpace::AddSymbol()") );
	
	if ( !m_pGlobalNamespace )
	{
		DevMsg( "ERROR: Adding symbol to uninitialized table %s\n", pszDebugOwner );
		return false;
	}
	
	if ( !IsLocalBaseSet() && !SetLocalBase( localId ) )
	{
		DevMsg( "ERROR: Bad %s LOCALID for %s\n", pszDebugSymbolType, pszDebugOwner );
		return false;
	}
	else if (localId < GetLocalBase() )
	{
		DevMsg("ERROR: %s First added %s must be first LOCALID!\n", pszDebugSymbolType, pszDebugOwner);
		return false;
	}

	AssertMsg3( LocalToGlobal( localId ) == -1 || !m_pGlobalNamespace->IdToSymbol( LocalToGlobal( localId ) ) , "Duplicate symbol ID passed to CAI_LocalIdSpace::AddSymbol(): %s (%d), had %s", pszSymbol, localId, m_pGlobalNamespace->IdToSymbol( LocalToGlobal( localId ) ) );
	AssertMsg( m_pGlobalNamespace->SymbolToId( pszSymbol ) == -1, "Duplicate symbol passed to CAI_LocalIdSpace::AddSymbol()" );

	if ( m_localTop != -1 )
	{
		if ( localId > m_localTop )
		{
			m_localTop = localId;
			m_globalTop = ( m_localTop - m_localBase ) + m_globalBase;
		}
	}
	else
	{
		m_localTop = m_localBase;
		m_globalTop = m_globalBase;
	}
	
	m_pGlobalNamespace->AddSymbol( pszSymbol, LocalToGlobal( localId ) );
	return true;
}