num Vars in EXE

Still in use?

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: num Vars in EXE

Beitrag von AUGE_OHR »

hi,
H1 hat geschrieben: weiss jemand wie clipper seine numerischen Variablen in der der EXE ablegt? Ich sollte nach der MWST-Umstellung eine EXE patchen, dersourcecode ist leider nach all den Jahren nicht mehr auffidbar.
Ich würde erstmal versuchen das Cl*pper Programm zu decompilieren,
denn wenn du Pech hast ist es ist es evtl. noch "gepackt" (PkLite/AsPack)
oder anderweils "behandelt" (Blinker). Dann wirst du es schwer haben
überhaupt was zu finden.

Cl*pper legt zwar die Variabeln (Public,Private) zwar irgendwo ab, aber
das sagt noch nichts über die "Werte" aus.

gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Heinz.

Valkyrie 5 verweigert sich Clipper-EXEn, die mit Blinker gelinkt wurden. Aber es gibt offenbar eine (für 195 $ zu kaufende) aktualisierte Valkyrie-Version, die Blinker "kann":

http://www.grafxsoft.com/2valkyrie.htm
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

dir bleibt nur eine winziges Programm zu schreiben, in diesem einer NumVar 'MSWT' 16 zuzuweisen und kompilieren nach z.B. MWST16.exe, danach 19 zuweisen und wieder kompilieren nach MWST19.EXE, beide EXE vergleichen und die Unterschiede suchen. Nun merke dir die geänderte Bytefolge und suche in der SICHERUNGSKOPIE der alten EXE nach der 16er Folge, es könnte in Hex etwa so aussehen 0001 und zu 0301 werden.

Strings sind leichter, da diese im Speicher lesbar abgelegt werden 1 Byte pro Zeichen. Numerische Werte werden in 4 oder 8 Byte codiert versteckt.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

Kommando zurück. Was die da anbieten, ist noch älter, als die "Shareware", für die Martin einen Link gepostet hat. Es gibt auf der Site, die ich genannt habe, eine Utility "VAU.EXE" zum Download, die überprüft, ob die Clipper-EXE dekompilierbar ist. Diese Utility ist von 1993. Da gab es meiner Kenntnis nach Blinker 2. Aktuell ist 7 oder 8, meine Clipper-Software ist mit 5 gelinkt. Und da sagt VAU: No way.

Aber es muß eigentlich eine Möglichkeit geben, die EXE zu patchen und aus der 16 eine 19 zu machen. Hast Du es mal in einer Xbase-NG oder in einem Clipper-Forum probiert, zum Beispiel bei dbforums.com?
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

00 01 bezog sich auf die HEX Anzeige eines HEX-Editors. Das wären 2 Byte.
Oft werden die Zahlen mit niedrigem Byte (bit 0 bis 15) zuerst, danach die mit hohem Byte abgelegt. Bei Werten von 0 bis 15 muss man nur ein Byte betrachten, bei 16 ist das erste Bit des 2. Byte belegt, daher 00 01. Ob aber Clipper und Xbase die Zahlen intern anders ablegt weiß ich natürlich nicht. Bestimmt sind aber die Variablennamen selbst nicht mehr in der EXE sondern nur Querverweise (Pointer) auf die Inhalte. Beim Suchen nach Inhalten hat man es halt mit Strings leichter.

Ich seh mal ob ich da Morgen was raus bekomme.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: num Vars in EXE

Beitrag von AUGE_OHR »

hi,
H1 hat geschrieben: ich habe das Programm geschrieben, habe dazu clipper S87 und Blinker verwendet, Meinst Du, dass sich blinker exe nicht decompilieren lassen?
ich hab mal ein bisschen getestet und musste feststellen das sich
Blinker v3.3 Programme nicht mehr mit "Valkyrie5", v1.0, Revision K
decompilieren lassen. Bei der Blinker v3.2 ging es noch, aber auch
"Recure5" kann den v3.3 Blinker nicht mehr.

Wenn ich mich recht erinnere wurde ab v3.x bei Blinker eine Kompression
des *.EXE eingeführt so das man nicht mehr EXEPACK (M$), ASpack oder
PkLite einsetzen musste. Später wurde das extern auch als "Shrinker"
verkauft.

Deshalb "sieht" man in einem Blinker v3.x Programm auch viel weniger
"Text" den man "erkennen" kann denc er ist ja "komprimiert".

Welches "Datum" hat dein S87/Blinker Programm ? Das Blinker v3.2
Update kam am 04.07.1995 raus. Wenn es also noch das original
Erstellungs Datum hat und vor dem 07.12.1995 (Blinker v3.3) liegt
dann hast du noch Chance es zu decompilieren.

gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: num Vars in EXE

Beitrag von AUGE_OHR »

hi,
H1 hat geschrieben: ich habe hier Valkyrie V2.0 copyright 1990,1992
das Analyseprogramm VAU.EXE sagt mir:
Searching..................................
Linker is Blinker 2.01
Compiler is Clipper Summer '87

VPP.EXE sagt: determining overlay manager
Dann ist doch eigendlich alles ok, oder hast du nur die Demo ?

was für ein OS() fährst du ? (wegen des DOS-Extender)
H1 hat geschrieben: Was ist RECURE?
Das "Konkurrenz" Produkt, geht aber nur für Cl*pper v5.x.

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

ich habe mir gerade mal eine 3 Zeilen EXE vom Blinker und von RTlink im HEX-Editor angesehen. Das ändern von numerischen Werten erscheint mir aussichtslos.

Ich muss mich korrigieren,
in HEX sieht 16 so aus

2 Byte: 00 10 oder 10 00
und 15:
2 Byte: 00 F0 oder F0 00

beides ist sehr häufig in der EXE enthalten, aber nicht offensichtlich nebeneinander. Nun könnte man als mutiger und fleisiger Mensch alle aufs Geradewohl durchtesten, das ist aber nicht nur mühsam sondern auch gefährlich, da man nicht weiß was der andere Code bewirkt, wenn man nicht die Zahl erwischt hat.

Was bleibt ist der Versuch mit dem Rückwandeln in Quellcode.
Gruß
Hubert
Antworten