Seite 1 von 1

Xbase Dekompilieren

Verfasst: Di, 29. Dez 2020 18:28
von Dominik Krebs
Hallöchen zusammen,
Mich würde mal interessieren ob, bzw wie leicht, sich eine Xbase .exe dekomplilieren lässt.

Mir geht es darum, Passwörter oder Hash Saltes im Source aufzubewahren.

Und ja ich kenne die Verschlüsselungklassen von Alaska. Und ja ich verwendete sie auch :D

Könnte im Forum nichts über dekomplilieren finden.

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 9:18
von brandelh
Wie die Alaska EXE den Code ablegt weiß ich nicht, vermutlich ist es eine Art von P-Code den die Runtime verarbeitet.
Was ich schon gesehen habe (ist ewig her ob es noch immer so ist ,,,), dass man einen Text den man einer Variablen zuordnet wie

cKennwort := "Ich bin so geheim"

in der EXE mit HEX Editor geöffnet als "Ich bin so geheim" finden kann.
Bei Private oder Public Vars, wurde auch der Variablenname irgendwie in der EXE hinterlegt, die LOCAL ist als Name nie in einer EXE.

Der Crypt() Befehl speichert irgendwie veränderte Strings, ich konnte nie erkennen wie die Verschlüsselung funktioniert, aber wer bin ich 8)
Es reicht um normale Entwickler von den Inhalten fern zu halten, ansonsten nicht - steht mein ich auch so in der Doku irgendwo ..

die AES Verschlüsselung soll wirklich sicher sein, aber die Xbase Umsetzung bei den DBFs war mir immer zu kompliziert. Ich brauch das auch nicht.

Wenn man einen String in der EXE verbergen will, kann man den als ASCII Wert in Zahlen in einem Array hinterlegen und zur Laufzeit wieder mit chr() zusammen setzt.

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 11:25
von Jan
brandelh hat geschrieben: Mi, 30. Dez 2020 9:18Wenn man einen String in der EXE verbergen will, kann man den als ASCII Wert in Zahlen in einem Array hinterlegen und zur Laufzeit wieder mit chr() zusammen setzt.
So ähnlich mache ich das an den wenigen Stellen, an denen ich das brauche.

Jan

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 12:32
von nightcrawler
je nachdem, wie sicher die Anwendung sein soll ... aber so eine "Hintertür" im Programm ist sehr oft der Hebel zum Knacken des Programms. Gibt es keine andere Möglichkeit, z.B. indem der Benutzer das Passwort eingeben muss?

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 12:40
von Tom
Zur Ausgangsfrage: Ich gehe nicht davon aus, dass es explizit einen De-Compiler für Xbase++ gibt. Da Xbase++ meines Wissens aber auf C+/++ basiert, gibt es in diesem Bereich möglicherweise Tools, die aber keinen PRG-Code erzeugen dürften, sondern eben (mäßig brauchbaren) C+/++-Code.

Unsere Hintertüren sind nicht statisch.

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 12:56
von Jan
Tom hat geschrieben: Mi, 30. Dez 2020 12:40Da Xbase++ meines Wissens aber auf C+/++ basiert
Microsoft Visual C++. Lt einer Fehlermeldung, die ich ab und an mal bekomme.

Jan

Re: Xbase Dekompilieren

Verfasst: Mi, 30. Dez 2020 21:44
von azzo
Hallo,

keine Ahnung, ob dieser Decompiler auch für xBase funktioniert.
https://securelist.com/how-we-developed ... ler/95517/

LG
Otto

Re: Xbase Dekompilieren

Verfasst: Do, 07. Jan 2021 11:26
von ramses
Dominik Krebs hat geschrieben: Di, 29. Dez 2020 18:28 Mich würde mal interessieren ob, bzw wie leicht, sich eine Xbase .exe dekomplilieren lässt.
Hallo Dominik

alles was du beim Kunden installierst ist mit mehr oder weniger Aufwand auslesbar. Die Frage die du dir stellen musst ist eher die wieviel Aufwand der Betreffende treibt ob er die Fähigkeiten und Tools dazu hat und vorallem was der (finanzielle) Nutzen aus diesem Tun ist.
(Niemand wird eine gehackte App in seinem Geschäft verwenden, ganz einfach weil er damit keinen Support hat. Da ist der Anreiz schon ziemlich klein)


Es gab für Clipper (Valkyrie) und xbase++ Dekompiler die aus der EXE prg Files erstellen konnten. Meist mit den Orignalen Funktions- und Variablennamen. Die prg Files beider Tools liessen sich dann auch wieder in Funktionierende EXE übersetzten.
Auch Packer, Dongels und anderer Mist waren noch nie grosse Hindernisse ...... 100% Sicherheit gibt es nicht.
Die beiden Dekompiller sind vor längerer Zeit vom Markt verschunden. Tools zum entfernen von Dongles Packern und dem ganzen MIst finden sich jedoch noch immer sehr leicht.

Besser sieht es mit der Sicherheit aus wenn du Software als Service aus der Cloud anbietst.....

Re: Xbase Dekompilieren

Verfasst: Do, 07. Jan 2021 12:17
von georg
Hallo, Dominik -


ich gehe davon aus, dass ein Passwort, dass Du im Sourcecode "versteckst" auch auffindbar ist.

Wenn ich in der Situation wäre, würde ich das Passwort aus mehreren Funktionen zusammensuchen, etwa so:

cPWd := String1() + String2() + String3() + String4()

Die Funktionen würde ich in verschiedenen Quelldateien definieren, eventuell die eine oder andere in einer DLL. Damit ist das Suchen im Quelltext zwar immer noch möglich, aber es ist nicht mehr im Zusammenhang (zumindest für einen Aussenstehenden).

Wer viel Zeit und Lust hat, kann mit einem externen Debugger durch das Programm laufen, um hinter das Geheimnis zu kommen..

Ansonsten vermute ich, dass Xbase++ als Compiler nicht so interessant ist, dass entsprechende Firmen Zeit und Geld in die Entwicklung eines Decompilers stecken würden.

Re: Xbase Dekompilieren

Verfasst: Do, 07. Jan 2021 13:45
von ramses
georg hat geschrieben: Do, 07. Jan 2021 12:17 Ansonsten vermute ich, dass Xbase++ als Compiler nicht so interessant ist, dass entsprechende Firmen Zeit und Geld in die Entwicklung eines Decompilers stecken würden.
Hallo Georg

den gab es ja bereits. Nun existieren Dekompiler und die Hersteller Firma nicht mehr.
Ich kann mir vorstellen dass rechtliche Gründe dagegen sprechen und deshalb beides nicht mehr existiert.

Re: Xbase Dekompilieren

Verfasst: Do, 07. Jan 2021 14:09
von Tom
Ich kann mir vorstellen dass rechtliche Gründe dagegen sprechen und deshalb beides nicht mehr existiert.
Es wird sich einfach nicht gelohnt haben. Es würde sich für Xbase++ nicht lohnen.

Das ist rechtlich ein bisschen wie bei den Radarwarnern: Decompiler darf man herstellen, aber man darf sie nicht in jedem Fall einfach so benutzen. Es ist zulässig, ausführbaren Code zu decompilen, wenn es für den weiteren Betrieb der Software unbedingt erforderlich ist, etwa zur Fehlerbehebung, und wenn der Hersteller das Problem, um das es geht, nicht behebt oder beheben will. Ansonsten ist es ein Verstoß nicht nur gegen die Lizenzbedingungen, sondern auch und vor allem gegen Urheber- und Leistungsschutzrechte.

Valkyrie hatte es bei Clipper bis Version 5.2 ziemlich leicht, da ausführbare Clipperprogramme mehr oder weniger ihren gesamten Quellcode mit sich herumgeschleppt haben. Das änderte sich mit Clipper 5.3.

Anyway, die Frage ist außerdem, ob und was man mit fremdem, undokumentierten Code anfangen will. Eine Hintertür oder ein Osterei oder einen krassen, aber unkomplexen Bug würde man möglicherweise finden, aber wer sich je in geerbten, schlecht oder überhaupt nicht dokumentierten Code einarbeiten musste, weiß, dass es fast keine uneffektivere Arbeitsgrundlage gibt als diese.

Re: Xbase Dekompilieren

Verfasst: Fr, 08. Jan 2021 13:59
von brandelh
Das Dekompilieren von Clipper hatte zumindest einen einfacheren Ansatz, da die Variablennamen von Private und Statics (die damals häufigsten Typen) noch als echter Klarsichtname raus kamen,
konnte man hoffen dass die einen sinnvollen gewählt haben. Der Pseudo Code war eventuell auch noch leichter zu verstehen, als der Maschinen-Code den andere Compiler erstellen (PowerBasic),
bei letzteren hätte man damals immerhin DEBUG (oder wie das hies) nehmen können um die ASM Befehle zu erhalten ... richtig toll ;-)

Ich persönlich fand es schon ätzend genug einen fremden undokumentierten PRG oder BAS Code lesen, verstehen und dann weiter pflegen zu sollen.
Da gibt es ja die reinsten ... Zumutungen 8)

Es gibt ja Tüftler, die Treiber zerlegen um Schwachstellen zu nutzen, daher kann man nie sicher sein, dass jemand irgendwas macht, was nicht unmöglich ist. Ob es sinnvoll ist, bleibt eine andere Frage.