Hallo werte Hackerboard-User
Vor geraumer Zeit habe ich hier mal ein Thema eröffnet (Reverse Engineering) und bin eigentlich positiv gestimmt,
was die Qualität der Antworten und allg. hier an Beiträge angeht.
Die Beiden folgenden Beiträge:
Schutz vor dekompilieren von C#-Anwendungen bzw. von .NET
Sicheres programmieren von Anwendungen
... sind schon gut ein Jahr vergangen und klären eingetlich vieles an meinen Fragen und fördern meine Ideen.
Nun möchte ich es doch noch genau wissen, bzw. habe Fragen zu gewissen Techniken.
Schon mal vorweg: Es geht nicht um eine Trialversion, sondern nur um Schutz gegen 'einfach weiter geben' und Einsicht in den Source.
Folgendes habe ich bereits implementiert:
1) Einige Anti-Debugger tricks
2) Anti VMware
3) Obfuscation (eigenbau)
4) PE-Checks
5) Keyfile / Hardware Abhängig
6) Nativwall (eigenabu)
a) Stimmt es, dass Olly, Windasm32 & Co. für .NET (fast) unbrauchbar sind?
(da ja ausschliesslich mit IL gearbeitet wird?)
b) Ich verschlüssle sämtlich Strings. Wieviel mehr Zeitaufwand hat da ein Cracker?
wir nehmen an, es sind ca. 20 verscheidene verschlüsslungsroutinen
c) Ich prüfe die Processliste/Registry nach bekannten Debugger & tools. Lohnt sich das überhaupt?
d) Gibt es Möglichkeiten zu prüfen, ob etwas gepatch wurde? also nicht mittels MD5-Hash, sondern im Programmfluss selbst?
e) Wenn ich einen Nativen Packer verwende, und verhindere das an die eigentliche .NET Antwendung ein Debugger sich anhängen kann, wie sicher ist sowas?
f) Gibt es, abgesehen von der Hardwarebindung, eine andere Art die einfache Weitergabe zu erschweren?
Habt ihr noch weitere Dinge die ich implementieren könnte? Anregungen und tipps allg. zu .NET?
Freundlich grüsst
Netonator
Vor geraumer Zeit habe ich hier mal ein Thema eröffnet (Reverse Engineering) und bin eigentlich positiv gestimmt,
was die Qualität der Antworten und allg. hier an Beiträge angeht.
Die Beiden folgenden Beiträge:
Schutz vor dekompilieren von C#-Anwendungen bzw. von .NET
Sicheres programmieren von Anwendungen
... sind schon gut ein Jahr vergangen und klären eingetlich vieles an meinen Fragen und fördern meine Ideen.
Nun möchte ich es doch noch genau wissen, bzw. habe Fragen zu gewissen Techniken.
Schon mal vorweg: Es geht nicht um eine Trialversion, sondern nur um Schutz gegen 'einfach weiter geben' und Einsicht in den Source.
Folgendes habe ich bereits implementiert:
1) Einige Anti-Debugger tricks
2) Anti VMware
3) Obfuscation (eigenbau)
4) PE-Checks
5) Keyfile / Hardware Abhängig
6) Nativwall (eigenabu)
a) Stimmt es, dass Olly, Windasm32 & Co. für .NET (fast) unbrauchbar sind?
(da ja ausschliesslich mit IL gearbeitet wird?)
b) Ich verschlüssle sämtlich Strings. Wieviel mehr Zeitaufwand hat da ein Cracker?
wir nehmen an, es sind ca. 20 verscheidene verschlüsslungsroutinen
c) Ich prüfe die Processliste/Registry nach bekannten Debugger & tools. Lohnt sich das überhaupt?
d) Gibt es Möglichkeiten zu prüfen, ob etwas gepatch wurde? also nicht mittels MD5-Hash, sondern im Programmfluss selbst?
e) Wenn ich einen Nativen Packer verwende, und verhindere das an die eigentliche .NET Antwendung ein Debugger sich anhängen kann, wie sicher ist sowas?
f) Gibt es, abgesehen von der Hardwarebindung, eine andere Art die einfache Weitergabe zu erschweren?
Habt ihr noch weitere Dinge die ich implementieren könnte? Anregungen und tipps allg. zu .NET?
Freundlich grüsst
Netonator