Entwickler-Ecke

Sonstiges (Delphi) - Text entschlüsseln?


Trunks - Di 02.08.05 10:41
Titel: Text entschlüsseln?
Hi leutz,


Ich hab wieder eine ganz fieße Aufgabe von meine Chef bekommen. Das ich zu meinem bedauern nicht verstehen.
Folgendes:
Er hat mir 2 Sachen gegeben: eine Dll mit dem Namen "Des.dll" und eine Text datei mit dem Namen "SampleClipBoard.txt"

Der Text beinhaltet Folgendes:

Quelltext
1:
2:
3:
4:
5:
6:
MODE=DECRYPT
USE_3DES=FALSE
USE_SKEY=FALSE
USE_STRONGKEY=FALSE
KEY=marc
TEXT=CE45C8574D4A3E0F422ACAA625950EE15D4437F39C1435730044C5730E2465AB862F295D04BC586E


So. Jetzt muss ich den Text(der da verschlüsselt ist) Entschlüsseln.
Jetzt ist meine Aufgabe dass ich die DLL in mein Programm einbinde(oder wie man das nennt) und aus der
SampleClipBoard.txt die Zeilen auslesen und die einstellungen übernehmen(das sind die ersten 4 zeilen)

Ich muss irgendwie den KEY benutzen und damit den TEXT zu entschlüsseln. Habe aber keine Ahnung wie das funktionieren soll. Und irgendwie soll ich noch Parameter bentuzen oder sowat...

Weiß jemand eine Idee??

Gruss, Marc


uall@ogc - Di 02.08.05 10:45

die dll wird wohl ein paar funktionen haben die exportiert werden um den angegebenen text zu entschlüsseln.
wenn du die header von den funktionen nicht hast, kannste DU es fast knicken das problem zu lösen, da ich glaube du weißt noch net mal was parameter sind...

wenn du die dll anhängst kann ja mal jemand anders schaun ob der das rausbekommt, desweiteren glaube ich nicht das du die aufgabe von deinem chef hast, ansonsten kannste dem mal von mir aus sagen, das er nen knall hat.


Trunks - Di 02.08.05 11:00

tach,


1. Wieso soll er nen Knall haben?
2. Parameter weiß ich was es sind!
3. Ich hab ne Datei angehängt, WEiß aber nicht ob sie dir weiter helfen wird

Ich soll nur den Code mithilfe der DLL entschlüsseln. Ich denk mal in der DLL ist Funktion uzm entschlüssen des Textes.
Aber die Funktion brauch parameter. Und die sind wie ich mal annehmen werde:

TEXT, KEY, USE_STRONGKEY, MODE, USE_3DES, USE_SKEY

Nur das probleme ist ich weiß nicht wie das geht


uall@ogc - Di 02.08.05 11:08

na das ist doch schonmal einfacher

due hast also die dll die ein paar funktionen exportiert:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
-To use strengthened Keys
"        UseStrongKey(True)"

-To use Triple DES
"        Use3DES(True)"

-To set the key for encryption/decryption
"        SetKey(""Your Key"")

-To Encrypt Data
"        DataHolder = Encrypt(""Your Data"")

-To Decrypt Data
"        DataHolder = Decrypt(""Your Data"")

-To convert a string to Hexidecimal
"        DataHolder = EnHex(""Your Data"")

-To convert a Hexidecimal to string
"        DataHolder = DeHex(""Your Data"")

die lädst du einfach mit GetProcAddress rein und rufst sie dann auf, wenn die dll mal anhängst kann ich das vill auch noch amchen, aber ich weiß net ob es so gut ist das du den verschlüsseltetn text oben gepostet hast, nicht das es irgednwas wichtiges ist dann kann das jetzt jeder entschlüsseln


Trunks - Di 02.08.05 11:13

nee, das ist einfach ein Test-Text - den ich mal entschlüsseln soll.

Du sagtest ich soll die GetProcAddress reinladen. Aber das ist ja mein prob. Wie soll ich das machen und wie lade ich überhaupt enie DLL(ja ich weiß ich sollte in den FAQ'S nach schauen)

Und wie soll ich sie aufrufen???

gruss, marc


uall@ogc - Di 02.08.05 11:18

ich hab mit mal die Demo dll geladen, die export die geannnten funktione nnicht, und da ist nur nen VB beispiel bei, solltest einfach mal das beispiel benutzen, da wird was verschlüsselt/entschlüsselt, hab selbst kein VB

und wie das mit der dll funzt kann ich leider och net sagen, da halt die funktione nnicht exportiert werden, jedefalls in der demo


Trunks - Di 02.08.05 11:24

Schade.

Weißt das dann jemand anderer?? Wie das geht?


uall@ogc - Di 02.08.05 11:35

ist ne ActiveX

solltest mit

Komponente->ActiveX importieren -> hinzufügen -> auf alle dateien schalten und dann die dll auswählen

installieren können, klappt bei mirt aber nicht, wenn es klappt haste dann in der asuwahlbox ne neue möglichkeit ne komponente zu installieren
kopier aber die dll erst in den windows\system32 ordner


Trunks - Di 02.08.05 11:38

Hää? Bitte was?

Kannst du das bitte ein bisschen besser erklären? :D

Ich versteh gerade nur Bahnhof. :)


Trunks - Di 02.08.05 11:40

jo, Ich habs hinzugefügt. und jetzt hab ich ne neue Unit mit sehr vie Code. Den ich jetzt mal genauer anschauen muss :-)

Aber wenn du noch Infos hast, als her damit :D


Trunks - Di 02.08.05 11:43

Ähm? Wie benutze ich jetzt dieses ActivX???


uall@ogc - Di 02.08.05 11:44

hab hier 2k bei mir hatte das hinzufügen nicht geklappt oO normalerweise haste dann ne komponente unter acticeX die du benutzen kannst
oder ne unit die du compilieren kannst bei mir gehts jedenfalsl net


Trunks - Di 02.08.05 11:46

Ja ich hab ne neue Unit. Muss ich die compilieren? Und wenn ja was muss ich dan mit der .exe machen?


uall@ogc - Di 02.08.05 11:48

kein plan was du damit machen muss, häng se mal hier rein, anconsten würd ich sagen neu compilieren, bzw in dein projekt einbinden

eingetlich solltest ne neue Komponente bekommen wenn neues ActiveX installiert hast


Trunks - Di 02.08.05 11:53

Jo, hab mal die DLL und die PAS(von der DLL glaub ich, oder von der ActivX)

Vllt hilft es dir


uall@ogc - Di 02.08.05 11:58

bei mir klappt das mit der dll immer noch nicht aber:

mach:

Unit irgendwo im delphi ordner speichern,

Datei->Neu->weitere->Package

dann das packe irgendwo im Delphi verzeichnis abspeichern

dann

Komponente -> Komponente Installieren -> das package und die unit auswählen -> ok klicken -> dann komtm so nen fenster- compilieren und installieren klicken

schau mal b du dan ne neue komponente hast oO


Trunks - Di 02.08.05 12:09

bei mir gibt es
Komponente -> Komponente Installieren - Nicht

Bei mir gibs nur

Komponente -> Komponente Importieren UND
Komponente -> Packages installieren Und noch 2 andere aber die sind was anderes!

Ich kann die Packeges nicht einfügen. Welche DAtei-Typ sind die Packages, also welche endungen haben die?


harryp - Di 02.08.05 12:11

*.bpl is n Borland Package


uall@ogc - Di 02.08.05 12:13

du musst selbst ein neues Package anlegen

Datei->neu->(Fenster neu)->Package

dann siehste so enn kleines fenster
klick da auf hinzufügen und wähle die unit aus

(das ist sogar noch einfacher)

dann speicherst das package ab -> datei-> speichern unter (hat endung dpk [ delphi package ])
danach compilierst du es und installiert es (beide buttons nacheinander anklicken)

dann solltest du ne neue komponente haben mit der du entschlüsseln/verschlüsseln kannst


Trunks - Di 02.08.05 12:13

Das gibt es bei mir nicht.

Wie soll ich sowas erstellen? bitte nochmal, und richtig gut detailier :D


uall@ogc - Di 02.08.05 12:15

sorry genauer kann ichs nicht erklären du musst nen package erstellen, das geht bei dir auch und da kannste die unit hinzugüfen und diese installieren


lies nochmal meinen letzen past da ist es wirklich sehr genau beschrieben

btw ich mach das alles mit delphi7 ich weiß net wie es bei delphi05 aussieht, aber auch da kann man bestimmt packages erstellen


Trunks - Di 02.08.05 12:16

"dann siehste so enn kleines fenster"

Da kommt keine kleines Fenster wenn ich auch neu->packages gehe. Es steht zwar da das ich ne neue Packages gemacht habe mit dem Namen"Packages1.bpl" aber ein Fenster kommt net (Ich benutz gerade delphi2005, falls es dir weiter hilft)


Trunks - Di 02.08.05 12:19

user profile iconuall@ogc hat folgendes geschrieben:
dann speicherst das package ab -> datei-> speichern unter (hat endung dpk [ delphi


Wenn ich bei mir auf "Speichern unter" klicke dann hab ich den namen "Package1.bdsproj", nicht .dpk?!

Ahja: Unit konnte ich einfügen


uall@ogc - Di 02.08.05 12:23

in delphi7 sieht das so aus wie im anhang

wenn das net geht, dann eröffne bitte ein neues themo, mnit der überschrift:

"wie installiere ich eine komponente unter delphi05"

in delphi7 ist es halt einfach und cih weiß net wie es in 05 gemacht wird


Trunks - Di 02.08.05 12:30

Ok das packages hab ich jetzt (Package2.bpl)

Und was muss danach genau machen?? Und wo wird es angezeigt? oder wie kann ich das jetzt benutzen?


uall@ogc - Di 02.08.05 12:37

da musst du jetzt die unit hinzufügen...
die unit die du hast ist ne komponente, musst jetzt mal selbst bischen schaun wie du die installiert bekommst, normal geht das wenn man die in nen package packt. musst halt bisl suchen oder googlen ;P


Trunks - Di 02.08.05 12:40

Ja ich kann Sie installieren hab ich auch gemacht, Wird auch unter "Packages installieren" angezeigt. Aber was kann ich jetzt mit dem machen? Also compilier und intalliert ist sie nur der nächste schritt (hauptschritt fehlt mir noch)

??


uall@ogc - Di 02.08.05 13:37

wenn es funktioniert hat solltest du ne komponente TDes haben


Trunks - Di 09.08.05 10:56

OK, das hab ich jetzt. Wie kann ich die jetzt einsetzen? Also , ich muss bestimmt die parameter übergeben, aber wie soll ich das machen? (war ja meine Hauptfrage)

Thx schonmal


uall@ogc - Di 09.08.05 11:45

die kompontente hat jetzt funktionen bzw eigenschaften wie text usw. (das was du gegeben hast) das musst du der einfach übergeben


Trunks - Di 09.08.05 12:07

Ok,

Ich habe die hier versucht

Delphi-Quelltext
1:
2:
3:
DES1.Connect;
DES1.Key:='marc';
DES1.Decrypt('CE45C8574D4A3E0F422ACAA625950EE15D4437F39C1435730044C5730E2465AB862F295D04BC586E');

Obwohl ich nicht genau weiß für was "Connect" da ist.


Aber es kommt immer ein fehler.

Fehler :
"DefaultInterface ist NULL. Die Koponente ist nicht mit dem Server Verbunden. Sie müssen vor dieser Operation 'Connect' oder 'ConnectTo' Aufrufen"

Das kommt obwohl ich ganz am Anfang "DES1.Connect;" gemacht hab.

Ich habn Bild angehängt