Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Was sind Relocation Pointer Table und Overlaynumber (EXE)? (https://www.delphipraxis.net/18119-sind-relocation-pointer-table-und-overlaynumber-exe.html)

Dannyboy 17. Mär 2004 08:59

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Luckie
Wie schon gesagt, wenn es nur das ist, brauchst du den ganzen PE_HEADER Kram nicht. Du kannst Dateien an eine Exe dranhängen und sie bleibt noch ausführbar. Und die Exe kann dann ihre Anhänge extrahieren.

Yo, ich habe mir das dann quasi so gedacht, dass ich die Bytefolgen von anderen Dateien
hinten an die EXE dranhänge und diese dann von einem bestimmten Teil im Loadmodule extrahieren
lasse. Natürlich muss ich dann auch die Einstegspunkte ändern, was mein Anti-Virus-Scanner
bisher nicht so toll fand! Leider meckert er da, aber das kann man ja nachvollziehen, da das leider
genau die selbe Methode von Viren ist. Ich frage mich, wie andere selbstextrahierende Packer das
machen, ohne vom Anti-Virus-Scanner eins auf die Finger zu kriegen :gruebel:

LarsMiddendorf 17. Mär 2004 09:09

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Es reicht eigentlich wenn du die Daten direkt ans Ende anhängst. Danach schreibst du noch die Länge der Daten dahinter, damit du sie korrekt ausleste kannst. Der letzte Integer Wert in der Datei beschreibt dann die Länge der Daten. Dann kann man den Stream genau den Startpunkt berechnen.

So in etwa müßte das funktionieren (ungetestet):

Code:
var
 l:integer;
 Data:array of byte;
 st:TFileStream;
begin
st:=TFilestream.Create('',fmsharedenywrite);
st.Seek(-4,sofromend);
st.ReadBuffer(l,4);
st.Seek(-4-l,sofromend);
SetLength(Data,l);
st.ReadBuffer(Data[0],l);
st.Free;
end;
Irgendwo im Forum wurde auch mal beschrieben wie man eine Exe Datei aus dem Speicher laden kann. Die Exe Packer verändern aber tatsächlich den Einsprungspunkt aber die meisten Packer sind den Antivirenprogrammen bekannt.

Dannyboy 17. Mär 2004 10:06

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Yo, ich mache das auch ähnlich wie in Deinem Example (halt nur in Assembler).
Zitat:

Zitat von LarsMiddendorf
Irgendwo im Forum wurde auch mal beschrieben wie man eine Exe Datei aus dem Speicher laden kann. Die Exe Packer verändern aber tatsächlich den Einsprungspunkt aber die meisten Packer sind den Antivirenprogrammen bekannt.

Na super! :twisted: :twisted: :twisted: Ich kann mein Programm wohl schlecht bei allen
Antivirus-Firmen registrieren lassen, sobald es fertig ist! :twisted: Jetzt darf ich mir
noch irgendwelche Methoden einfallen lassen, damit die Anti-Virus-Software meinen Extrahierer
nicht bemängelt. Das finde ich zum :kotz: !

Luckie 17. Mär 2004 11:40

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Dannyboy
Yo, ich habe mir das dann quasi so gedacht, dass ich die Bytefolgen von anderen Dateien
hinten an die EXE dranhänge und diese dann von einem bestimmten Teil im Loadmodule extrahieren
lasse.

Nicht vom Lademodul, von der Exe selber.
Zitat:

Natürlich muss ich dann auch die Einstegspunkte ändern, was mein Anti-Virus-Scanner
bisher nicht so toll fand!
Paperlapp. Sieh oben.

Kuck dir auf meiner HP die SFXTools an. Genauso mache ich es mit denen. Ich habe eine Stub an der ich die Dateien mit einer anderen Exe dranhänge. Die Stub enthält den Code um die eigenen Anhänge wieder auf Platte zu schreiben. Da die Stub vorherkopiert wird änderst sich auch nicht die Größe der original Stub. Si wird ja praktisch neu erstellt mit den angehängten Dateien. Weshalb auch kein Virenscanner mekert.

Dannyboy 17. Mär 2004 12:08

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Ja Luckie, Du hast wohl Recht. Ich wollte den Code eigentlich vollkommen allein schreiben,
aber das hatte ich mir wohl leichter vorgestellt, als es ist. Ich wollte mir die ganzen
Informationen aneignen, die ich benötige, dabei aber dennoch auf jeglichen Sourcecode
verzichten. Anscheinend geht das wohl doch nicht und ich bin doch auf bereits existenten
Code angewiesen. :cry: Sowas ärgert mich! :evil:

Luckie 17. Mär 2004 18:21

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Wieso existierender Code? Niemand hält dich davon ab die Routinen zum Anhängen und Extrahieren selber zu schreiben. Hinweis: Kuck dir mal TFileStream an.

Dannyboy 18. Mär 2004 09:22

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Luckie
Wieso existierender Code? Niemand hält dich davon ab die Routinen zum Anhängen und Extrahieren selber zu schreiben. Hinweis: Kuck dir mal TFileStream an.

Yo, ich werd's mir zumindest mal anschauen um mir die ein oder andere Idee zu holen. :mrgreen:
Filestream kenne ich, aber ich schreibe das Programm komplett in Assembler. :!:

Luckie 18. Mär 2004 10:35

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Darf man fragen warum? :roll:

Dannyboy 18. Mär 2004 11:01

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Luckie
Darf man fragen warum? :roll:

Na klar doch. Ich würde ja gern so was erzählen wie : "Bla bla, Performance hin,
Performance her, bla bla, Assembler ist schneller" und das übliche Zeug einfach.
Aber das hat in Wirklichkeit gar nichts mit Performance zu tun.

Ich hatte während des Abiturs mal Assembler und in den 2 Jahren danach habe
ich einen Großteil dessen wieder vergessen (oder verdrängt :wink: ). Ich wollte
mir Assembler wieder aneignen und fing dann mit einfacheren Aufgaben an,
wie Stringschupsereien und Stack Rumgepusche und "Gepoppe". :wink:
Yo, nachdem ich mir dann das Wissen dieser Themen wieder angeeignet hatte,
fing ich mit Dateiverarbeitung in Assembler an. Auf meinem Weg dort hin,
habe ich hier im Forum die korrespondierenden Fragen zu ASSEMBLER gestellt.
Das sieht man hier:Hier im Forum suchenDannyboy AND Assembler.
Yo, und da bin ich nun. :thuimb:

Fukiszo 16. Jan 2018 23:28

AW: Was sind Relocation Pointer Table und Overlaynumber (EXE)?
 
man kanns auch total billig aber dafür kompatibel zu jedem AV programm so machen:
erstelle ein kleines konsolen programm (stub) das code für folgendes enthält
- schreiben von resourcen in speicher
- code zum ausführen des speichers
- code der das obrige beim starten ausführt

füge deine PE datei als resource der stub datei zu.
PE datei kann im vorfeld mit was auch immer bearbeitet sein,
wie meistens gibt es auch hier ausnahmen (selfcheck, programme die ihre config in exe speichern usw...)
aber der großteil der programme greift ja glücklicherweise nicht direkt auf sich selbst zu. (spring zu offset X und lad Y bytes etc...)

Im groben arbeitet so mein AV-Helper, was lediglich ein stub ist mit paar schmankerl (RC4 verschlüsselung, RtlCompressBuffer als packer)
kann logischerweise per memory-dump teilweise "zurückverwandelt" werden aber nicht per PE extraktion einfach aus exe-datei gespeichert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz