2009-04-27 15 views
2

Ich habe eine C++ App, die unter Windows und OSX ausgeliefert wird. Es kommuniziert mit unserem Backend über TCP (verschlüsselt mit OpenSSL, natch). Ich würde gerne ein paar Geschwindigkeitsbumps für Leute, die versuchen, das Protokoll zu rekonstruieren und/oder zerlegen die ausführbare Datei.Verschleierung und Reverse Engineering Abschreckung für C++ Win/OSX App

Skype macht eine ausgezeichnete Arbeit, weshalb Sie nicht viele Apps finden werden, die Skype sprechen. Hier ist eine wirklich gute Lektüre darüber, was es tut: http://www.secdev.org/conf/skype_BHEU06.handout.pdf

Ich hätte gerne einige Ideen, wie Sie ähnliche Sachen unserer App erreichen können. Gibt es kommerzielle Produkte, die die statische Analyse von Code erschweren? Was ist der beste Weg, um meine Zeit zu investieren, um die von mir aufgeführten Ziele zu erreichen?

Danke,

+1

nicht verlassen auf der Client-Seite Sicherheit. Je. Wenn Ihre Sicherheit von einem gehackten Client umgangen werden kann, tun Sie es falsch. – Eclipse

+0

Ich verlasse mich nicht darauf. Mein Leben wird einfacher sein, wenn Rogue-Kunden eine Weile brauchen. Dies ist nur ein Teil meiner "Verteidigung in der Tiefe". – twk

Antwort

1

Einige einfache Vorschläge für OSX:

  • Prevent gdb aus Ihrem Programm Anbringen http://www.steike.com/code/debugging-itunes-with-gdb/ (dies umgangen werden kann, wird aber einige lässige Entdecker halten weg)

  • Haben Sie mindestens einen Teil des Codes in Ihrem Produkt außerhalb des Textsegments der ausführbaren Datei gespeichert, z. B. in Daten oder in einer externen (verschlüsselten) Freigabe Bibliothek.

  • Schützen Sie sensible Zeichenkettendaten minimal, indem Sie sie nicht im Klartext speichern. Führen Sie "Zeichenfolgen" für Ihre ausführbare Datei aus und verschlüsseln Sie sie, wenn Sie etwas sehen, das für jemanden hilfreich sein könnte, der versucht, das Protokoll herauszufinden.

  • Die Option -fomit-frame-pointer von GCC kann das Debugging schmerzhafter machen (kann aber schlecht mit C++ - Ausnahmen interagieren).

Verwandte Themen