Ich frage mich, ob es möglich ist, nur einige Zeichenfolgen aus Ihrem Quellcode in generierte Assembly-Datei zu verschleiern. Mein Ziel ist es, eine Prüfsumme mit einer Saite zu erstellen und ich möchte eine Hardcode-Saite in meine Assembly einfügen, um zu vermeiden, dass die Saite sichtbar wird, falls jemand die Disassembly mys ddl. Ich bin nicht an einer vollständigen Montageverschleierung interessiert, nur an einigen StringsWie verschleiern einzelne Zeichenfolge in. NET-Assembly
Antwort
Ist das von Bedeutung? Der Deobfuscator müsste auch in deine Assembly eingebaut werden, sonst könntest du die Saite nicht zurückbekommen. Jemand, der auf deine Assembly schaut, müsste nur den Deobfuscator laufen lassen, um deine Salzsaite zu erhalten. Wenn Sie eine Zeichenfolge wirklich ausblenden möchten, fügen Sie sie in eine native Assembly ein.
"native Assembly" meinst du eine Assembly in C++ statt in C# zu erstellen, die eine Menge von Strings enthält, die ich verstecken möchte und die Assembly/String aus meiner C# Assembly verwende? – Crixo
Ja. Sie könnten sogar in Betracht ziehen, Ihre Hash-Funktion in der nativen DLL auszuführen und 'SecureString' in .NET zu verwenden, damit sie nicht im Speicher sichtbar ist. –
Denken Sie nicht, dass das Verschleiern nur eines Teils davon nützlich ist. Das große Problem beim Rückwärtsfahren ist die Größe des Heuhaufens, in dem Sie die Nadel suchen. Um zu brechen, was Sie einrücken, um zu tun, würde ich nur den Code finden, wo Sie die Salz verwenden, setzen Sie einen Haltepunkt darauf und überprüfen Sie, welchen Wert es hat, nachdem Sie die Zeichenfolge de-obfuscated. – CodesInChaos
Generieren Sie eine Prüfsumme oder einen kryptografischen Hash? Wenn es sich um eine Prüfsumme handelt, kann ein Angreifer das Salz trivial erhalten; Wenn es sich um einen kryptographischen Hash handelt, muss das Salz nicht geheim sein. Kannst du erklären, warum du das Salz geheim halten musst? –
Ich würde vermuten, Tempern von Dateien zu erkennen. Lokale High-Score-Dateien von Spielen kommen mir als eine Anwendung in den Sinn. Offensichtlich kann ein erfahrener Angreifer sie manipulieren, aber es stoppt jemanden, der nur weiß, wie man einen Hex-Editor verwendet. – CodesInChaos