GNU/Linux >> Znalost Linux >  >> Linux

Jak získat konkrétní adresu paměti pomocí C

Jedním z problémů je, že získáváte zpět virtuální adresu, nikoli fyzickou adresu, kde se nachází paměť. Při příštím spuštění nebude mapování pravděpodobně stejné.

To lze rozhodně provést v rámci modulu jádra v Linuxu, ale nemyslím si, že v uživatelském prostoru existuje nějaké rozhraní API, které byste mohli použít.

Pokud máte oprávnění (a předpokládám, že byste na tomto počítači mohli být rootem, pokud jej restartujete), můžete nahlédnout do /dev/mem a zobrazit skutečné fyzické rozložení. Možná byste měli zkusit vzorkovat hodnoty, restartovat a zjistit, kolik z těchto hodnot přetrvává.


Existuje podobný projekt, kde je demonstrován studený boot útok. Zdrojový kód je k dispozici, možná tam načerpáte inspiraci.

AFAIR však přečtou paměť bez předchozího načtení OS, a proto se nemusejí potýkat s ochranou paměti OS. Možná byste to měli zkusit také, abyste zabránili přepsání nebo vymazání paměti operačním systémem po spuštění.

(Podívejte se také na video na webu, je docela působivé;)


Linux
  1. Jak najít konkrétní text pomocí GREP v systému Linux

  2. Jak získat počet CPU v Linuxu pomocí C?

  3. Získat mtime konkrétního souboru pomocí Bash?

  1. Jak monitorovat ethernetovou aktivitu v Linuxu pomocí Arpwatch

  2. Získejte MAC adresu pomocí shell skriptu

  3. Jak získat aktuální operační systém v MSBuild?

  1. Jak změnit MAC adresu pomocí macchangeru na Kali Linuxu

  2. Jak přidat IP adresu na Ubuntu 18.04 pomocí netplanu?

  3. Jak přidat IP adresu v Ubuntu pomocí příkazu?