Ich lerne Python. Bis jetzt habe ich nur grundlegende Python-Codierung durchgeführt. Vor einem Tag habe ich die Python-Implementierung des tree
Befehls überprüft . Plötzlich dachte ich daran, einen Python-Klon für zu erstellen uptime
. Ich habe keine Ahnung, in welcher Sprache es implementiert ist und wie komplex das Klonen sein würde.
Aber ich konnte den Quellcode nicht finden. Ich verwende Fedora 14. Das Kernel-Entwicklungspaket ist installiert. Ich habe es getan, whereis uptime
aber die resultierende /usr/bin/uptime
Datei zeigt seltsame Symbole, wenn sie mit vim geöffnet wird. Das Googeln nach dem Quellcode konnte ebenfalls nicht zu den gewünschten Ergebnissen führen. Wo finde ich den Quellcode?
strace
. Es werden alle Systemaufrufe angezeigt, die Ihre Anwendung ausführt. Wenn Sie ausführen strace uptime
, werden (nach dem Laden) offene Aufrufe von / proc / uptime und / proc / loadavg angezeigt. Obwohl es nicht alles zeigt, ist es manchmal ein anständiger Start in das Reverse Engineering
file /usr/bin/uptime
. Der Befehl file verwendet eine Reihe von halbmagischen Heuristiken, um den Inhalt der Datei zu erraten - in diesem Fall eine binäre ausführbare Datei im ELF-Format.