
"Two-Face" Rust binary on Linux
Eine ausführbare Datei, die die meiste Zeit ein harmloses Programm ausführt, aber einen anderen, versteckten Code ausführt, wenn sie auf einem bestimmten Zielhost bereitgestellt wird.
Siehe Erstellen einer „Two-Face“-Rust-Binärdatei unter Linux.
Man benötigt eine Rust-Build-Umgebung, zum Beispiel von rustup.
Eine nightly-Toolchain ist erforderlich (um den ! „never“-Typ zu unterstützen).
Das Skript test-example erstellt und führt ein vollständiges Beispiel aus.
Die folgenden Pakete sind im Repository enthalten:
evil_binary: ein Beispiel für eine „versteckte“ Binärdatei, die ausgeführt wird, wenn die Host-Daten mit den in example/host.json festgelegten Werten übereinstimmenharmless_binary: ein Beispiel für eine „normale“ Binärdatei, die auf anderen Hosts ausgeführt wirdexample: die resultierende „Two-Face“-Binärdatei, die beide vorherigen Binärdateien bündelt und die Ausführung je nach Host an eine der beiden weiterleitettwoface: die Bibliothek, die die Build- und Laufzeitfunktionen bereitstellt