4 Stimmen

Selbstmodifizierender Code Algorithmus

Einige Programme generieren den ausführbaren Code zur Laufzeit. Das heißt, Computer-Viren, gepackte Binärdateien. Dies macht eine statische Analyse sehr schwierig.

Abgesehen von Packalgorithmen, gibt es einen allgemeinen Algorithmus für die Generierung von selbstmodifizierendem Code? Oder Compiler-Unterstützung? Wo kann ich entsprechende Dokumentation oder Papers erhalten? Und was ist der Unterschied zwischen selbstmodifizierendem Code und polymorphem Code?

Ich bin neugierig.

Vielen Dank im Voraus.

1voto

C.Evenhuis Punkte 25310

Wie bereits von delnan erwähnt, ist jedes Programm nur Daten, bis der Prozessor versucht, es auszuführen.

Um selbstmodifizierenden Code zu üben, führen Sie die folgenden Schritte aus:

  • Kopiere notepad.exe zu notepad_orig.exe
  • Starte notepad_orig.exe
  • Öffne notepad.exe im nun geöffneten Notepad-Fenster
  • Tippe, was auch immer du möchtest
  • Speichere und schließe

Vielleicht ein dummer Beispiel, aber hier passiert nichts weiter. Notepad nimmt eine externe Datenquelle (dich!) an, um seinen Code zu ändern.

Wenn du nach Algorithmen suchst, empfehle ich dir, nach einem Framework zu suchen, das automatische Updates für eine Anwendung bereitstellt. Das ist das einzige praktische Beispiel, das mir einfällt, das nicht illegal ist.

In einer Antwort auf deinen Kommentar könntest du natürlich einen Teil deiner Anwendung verschlüsseln und ihn entschlüsseln, bevor er verwendet wird. Allerdings muss eine Anwendung für den Betrieb in ihrem entschlüsselten Zustand im Speicher existieren und kann gelesen werden. Du wirst deine Anwendung wahrscheinlich nur schwerer pflegbar machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X