-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Jul 2009
im prinzip so:
exe-main > mein-dll-code > dll-main > ...
aber bei einer statisch geladenen DLL ist es ja so
dll-main > exe-main > ...
allerdings will ich die EXE nicht direkt manipulieren und mein Init-Code soll dort einfach nur via .PAS eingebunden werden können
ist halt etwas blöd, was die Speicherinitialisierung in der DLL betrifft, würde das für eine dynamische Bindung sprechen,...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Jul 2009
Ja, ein Code vor der Inititailisierung von Delphi (der DLL) bringt mir nicht viel, da ich in meinem Fall den Code doch nach der Initialisierung der EXE benötige (ich benötige ja Infos, welche die Initialisierung der EXE erst noch bereitstellen muß), also selbst wenn ich was in TLS eintrage und es noch vor dem DelphiCode startet, dann wird die Delphi-Initialisierung der statischen DLL dennoch vor...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Jul 2009
Also ich möchte/sollte natürlich die originale Startprozedur irgendwann und rechtzeitig, aber nicht zu früh ausführen, sonst hat Delphi wohl ein paar Probleme, wenn ich ihm die Initialisierung mopse. :lol:
Debuggen und Adressen hartcoden geht nicht, da es ja ein Opensourceprojekt für mehrere Delphiversionen ist. :stupid:
Ja und das Viren, Würmchen und Pferdchen sowas nutzen, war mir schon...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Jul 2009
Och menno, ich war doch nicht der erste Irre, welcher auf so'ne doofe Idee gekommen ist. http://fnse.de/S01/1LK.gif
TR/ATRAPS.Gen - Trojan
nur finde ich irgendwie keine richtigen Beschreibungen zu diesem Trojaner :gruebel:
grad hier in 'nem anderem thread gesehn ... dieses VirusTotal.com-Seitchen ist ja cool :shock: ...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
soooooooooo, es läuft nun endlich :dp:
Ich weiß zwar immernoch nicht, was mit den MMFs los ist, aber egal erstmal.
Hatte diese nur verwenden wollen, weil ich nicht wußte wie/wann/wo der Speicher für globale Variablen resserviert wird und ich deshalb vorm "vollständigen" Laden der DLL ich keine nutzen wollte.
Also vielen herzlichen Dank nochmals
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
Joar, den Index kann man ja immernoch in Delphi nutzen und ich glaub das alte ShareMM von Borland nutze es noch.
Aber ich glaub die PCs sind heute recht schnell, so daß man da auch verständliche Namen nutzen kann und sich nicht in Unmassen Indizes verheddern muß. :nerd:
Nja, mit dieser kleinen Änderung läuft schonmal der Patcher. :firejump:
//P: PCardinal;
If InitProcedure >= 0 Then...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
OK, das schau ich mir mal an ... dachte einfach in AddressOfNameOrdinals stehen die IndexWerte der Funktionen, welche man früher mal statt der Namen verwendete :oops:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
hier mal mein aktueller Versuch:
Leider hänge ich hierbei wegen was anderem (mach ich gleich 'nen anderen Thread dazu auf)
und zwar wird die MMF einfach nicht wiedergefunden. (existiert angeblich nicht)
Und das problem mit der Reihenfolge der beiden Namen- und Funktions-Tabellen hab ich auch noch nicht gelöst.
anhang gelöscht ... nicht daß sich wer wundert
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
Arg, ich hatte eben meinen Testcode an einer DLL mit 2 Export-Funktionen getestet und da mußte ich feststellen, daß die Adressen in IMAGE_EXPORT_DIRECTORY.AddressOfFunctions nicht der Reinfolge in IMAGE_EXPORT_DIRECTORY.AddressOfNames entsprechen. :shock:
Hatte mich die ganze Zeit gewundert, warum die falsche Prozedur aufgerufen wird. :wall:
Nja, hab den "Index" in .AddressOfFunctions...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
Nja, ich wollte mir ein Programm schreiben, welches nach dem Kompilieren die DLL automatisch patcht.
Und vor DLL-Main bringt mir nicht viel, da ich ja nach EXE-Main benötige (praktisch so als würde die DLL dynamisch und nicht statisch geladen :nerd: )
Sooo, hab grad mal einige TestProjekte erstellt.
EXE und DLL funktionieren erstmal normal:
beim Start der EXE kommt "EntryPoint is...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
Nein, das ist nicht schneller. :tongue:
Denn wie ich grad mitbekommen habe, stehen die Adressen in diesem Directory als RVA drin
und demnach muß ich dennoch die Sektionen durchgehn und schauen wo es denn nun wirklich drin ist.
Aber da ich nun eine RVA2Pointer-Funktion hab und über das Directory vom Namen unabhängig bin, hab ich das Directory jetzt verwendet.
Program...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
@Apollonius: uffff, na dann mal sehn ob ich das mit dem IMAGE_DATA_DIRECTORY auch noch hinbekomm :freak:
(aber aktuell geht es ja erstmal)
Was ich mich dann aber noch frage ist, gibt es dann 2 Exporttabellen, welche ich ändern muß, oder sind Beides die "Selben" (also die in .edata und IMAGE_DATA_DIRECTORY)
Ohhh, na dann hi MrEmbreD :hi:
Nja, cryptisch war's ja nicht ... nur etwas...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
Hmmmm, also wenn du IMAGE_NT_HEADERS.OptionalHeader.DataDirectory meinst ... k.A. was ich mit den Daten darin anfangen soll. :oops:
Naj, zumindestens handelt es sich immer um eine bestimmte Delphi-Datei und ich vertraue jetzt einfach mal drauf, daß Borland äh Codegar oder Embarcadero da nicht einfach mal was dran ändern werden und ich es weiterhin da finde. :stupid:
Na dann versuch ich...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
@Apollonius: so hatte ich es mir auch gedacht ... nur muß ich es erstmal hinbekommen. :nerd:
@Aphton: das Aufrufen selber wäre dann nicht das Problem, aber ich müßte dann im Programm doch auch erstmal diese Section finden, um sie aufzurufen .... bei deiner Progedur laß ich mir dagegen einfach von GetProcAddress helfen. :stupid:
Inzuwischen bin ich so weit ... ich hab die ganzen Sections...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Jul 2009
OK, den EntryPoint hab ich nun, jetzt muß ich wohl nur noch die Sections durchsehn, die Export-Tabelle finden und da meine Init-Prozedur finden :gruebel:
Aber in dem Code da seh ich noch nicht so durch und Brechi hat seinen Code ja nicht veröffentlicht. :wink:
Nja, ich versuch mich noch durchzuwurteln und hoff bald die Sectionen zu finden. :stupid:
Nur das mit dem neuen Datensegment...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
3. Jul 2009
Die Frage ist ganz einfach:
(Wie) Kann kann man den DLL-EntryPoint mit einer Exportfunktion tauschen?
Der Hintergrund ist eben so einfach:
Ich möchte praktisch, daß z.B. Unit-Initialisierungen etwas später vorgenommen werden,
speziell die von der SysUtils und Co.