GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erhalten Sie eine bestimmte Speicheradresse mit C

Ein Problem, das Sie haben, ist, dass Sie eine virtuelle Adresse zurückerhalten, nicht die physische Adresse, an der sich der Speicher befindet. Beim nächsten Booten wird die Zuordnung wahrscheinlich nicht dieselbe sein.

Dies kann definitiv innerhalb eines Kernel-Moduls unter Linux erfolgen, aber ich glaube nicht, dass es irgendeine Art von API im Userspace gibt, die Sie verwenden könnten.

Wenn Sie die Berechtigung haben ( und ich nehme an, Sie könnten auf diesem Computer root sein, wenn Sie ihn neu starten), können Sie unter /dev/mem nachsehen, um das tatsächliche physische Layout zu sehen. Vielleicht sollten Sie versuchen, Werte abzutasten, neu zu starten und zu sehen, wie viele dieser Werte bestehen bleiben.


Es gibt ein ähnliches Projekt, in dem ein Kaltstartangriff demonstriert wird. Der Quellcode ist verfügbar, vielleicht können Sie sich dort inspirieren lassen.

AFAIR lesen sie jedoch den Speicher aus, ohne zuerst ein Betriebssystem zu laden, und müssen daher nicht mit dem Speicherschutz des Betriebssystems herumspielen. Vielleicht sollten Sie dies auch versuchen, um zu vermeiden, dass der Speicher nach dem Booten vom Betriebssystem überschrieben oder gelöscht wird.

(Sehen Sie sich auch das Video auf der Website an, es ist ziemlich beeindruckend;)


Linux
  1. So finden Sie bestimmten Text mit GREP unter Linux

  2. Wie erhalte ich die MAC-Adresse Ihres Computers mit einem C-Programm?

  3. So erhalten Sie die gesamte CPU-Auslastung in Linux mit C++

  4. Rufen Sie die MAC-Adresse mit Shell-Skript ab

  5. Wie erhalte ich meine IP-Adresse über die Befehlszeile?

So finden / erhalten Sie Ihre IP-Adresse unter Linux

So überprüfen Sie den gemeinsam genutzten Linux-Speicher mit dem ipcs-Befehl

So erhalten Sie Ihre IP-Adresse unter Linux

So erhalten Sie die IP-Adresse des Docker-Containers

Wie blockiere ich eine IP-Adresse mit .htaccess?

Wie bekomme ich den Domainnamen in Windows mit dem Befehl?