Und was sollte an dieser Einfachheit positiv sein? Im allgemeinen werden Sprachen aufgrund ihrer Alltagstauglichkeit bewertet und nicht aufgrund ihrer Hacking-Tauglichkeit.
Demnach ist der Zugriff auf den Speicher eher ein Negativpunkt; für das Anwendungsprogrammieren ist das ohnehin nicht notwendig, Speicherverwaltung bleibt dem OS überlassen.
Ich weiß btw gar nicht, ob es in Java überhaupt möglich ist; in C# schon.
Ich sagte schon, dieses "sicher" trifft es aber nicht ganz.
Dann sag eher, dass es schwerer ist, den Quelltext wieder zurück zu erlangen, wobei das auch nur so halb stimmt oder dass C++ leichter gegen Reverse Engineering zu schützen ist, aber C++ ist ganz sicher nicht sicherer.
Und ich muss ganz ehrlich sagen, gegen Anti-Debugging etc. kann man mit viel Wissen und Ergeiz noch vergleichsweise leicht gegen ankommen; auch gegen VMs.
Aber ein guter Obfuscater macht den Code einfach so unverständlich, dass man einfach total durcheinander kommt, wenn man versucht, ihn zu entschlüsseln; das braucht nochmal eine ganze Ecke mehr Ergeiz. Dazu kommt, dass man nicht mal eben wie bei nativen Executables den Code auf niedrigster und simpelster Ebene ansehen kann, was es nochmal schwerer macht, wie ich finde, da obfuscateter highlevel Code schwerer zu lesen ist als obfuscateter ASM Code.
Außerdem gibt es auch schon große Fortschritte in der Decompilertechnik für C++.
Ach ja:
Quote:
|
dass man einfach den quelltext nicht wieder herstellen kann
|
Das ist so einfach falsch. Auch wenn es nicht möglich ist, den Source Code mit einem Decompiler 100%ig originalgetreu wiederherzustellen, so kann man doch sehr wohl durch Reverse Engineering und auch teilweise mit Decompilern den Code wiederherstellen; letzter ist zwar immer nur eine Art Pseudo-Code, der dem Original wohl kaum ähnlich ist, aber er lässt sich wieder compilen.
Ersteres ist zwar aufwändiger, da es von Hand geschieht, dafür erkennt ein Mensch normalerweise den Sinn von bestimmten Code Abschnitten und kann den Code deutlich "natürlicher" (also so, wie ihn ein Mensch schreiben würde) und originalgetreuer wiederherstellen.