Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einsprungadresse einer Procedur ermitteln? (https://www.delphipraxis.net/72297-einsprungadresse-einer-procedur-ermitteln.html)

richard_boderich 28. Jun 2006 10:13


Einsprungadresse einer Procedur ermitteln?
 
moin zusammen

weis jemand zufaellig wie es moeglich ist die einsprungadresse einer bestimmten procedure
zu ermitteln?

gruß richard

NicoDE 28. Jun 2006 10:42

Re: Einsprungadresse einer Procedur ermitteln?
 
Welcher Prozedur? GetProcAddress() ist so offensichtlich, dass ich vermute, dass du etwas anderes meinst...

himitsu 28. Jun 2006 10:45

Re: Einsprungadresse einer Procedur ermitteln?
 
Von nico für Externes, also DLLs und Co. und von mir für's interne :roll:
Delphi-Quellcode:
@Prozedurname

richard_boderich 28. Jun 2006 11:07

Re: Einsprungadresse einer Procedur ermitteln?
 
nein ich will die einsprungadresse einer procedur meines delphi programms ermitteln.
das ganze will ich wissen weil ich dabei bin einen proof of concept crackerschutz zu entwicklen.


gruß richard

//edit: @himitsu sollte das wirklich so einfach sein?

brechi 28. Jun 2006 11:16

Re: Einsprungadresse einer Procedur ermitteln?
 
Kommt drauf an ob die den Virtuellen oder Raw Offset haben willst.

richard_boderich 28. Jun 2006 11:22

Re: Einsprungadresse einer Procedur ermitteln?
 
warum geht das nicht? compiler meckert "variable erforderlich"



var bla:longint;


begin

bla:=@procedurename


Richard

Go2EITS 28. Jun 2006 11:31

Re: Einsprungadresse einer Procedur ermitteln?
 
@Brechi
Das Problem habe ich auch.

Ich möchte die Einsprungadresse + Endadresse einer Procedure/Funktion virtuell.
Ich verschlüssle die Procedure im Speicher. Bevor ich diese Aufrufe, wird die entschlüsselt
und wieder verschlüsselt. Ich weiß, nicht professionell, aber für den Anfang wird es wohl reichen.

Damit das Progremm nicht auf der Festplatte entschlüsselt werden kann (RAW), könnte man das Programm mit UPX komprimieren, damit wird zumindestens der einfache Cracker mal nicht zurechtkommen, da er den Prozess dumpen muss.

Go2eits

Luckie 28. Jun 2006 11:38

Re: Einsprungadresse einer Procedur ermitteln?
 
Zitat:

Zitat von Go2EITS
könnte man das Programm mit UPX komprimieren, damit wird zumindestens der einfache Cracker mal nicht zurechtkommen, da er den Prozess dumpen muss.

Nö, er kann es mit UPX auch wieder entpacken. ;)

NicoDE 28. Jun 2006 11:38

Re: Einsprungadresse einer Procedur ermitteln?
 
Zitat:

Zitat von richard_boderich
warum geht das nicht?

LongInt und Pointer sind nicht kompatibel.
bla := LongInt(Addr(procedurename));

Stellt sich die Frage warum du ein LongInt verwendest. Vielleicht wären Funktionszeiger praktischer (typsicherer).

brechi 28. Jun 2006 11:54

Re: Einsprungadresse einer Procedur ermitteln?
 
Zitat:

Zitat von richard_boderich
warum geht das nicht? compiler meckert "variable erforderlich"

Dann bezweifel ich jetzt schon mal, dass du eine gute Methode gefunden hast, die länger als nen Tag sicher ist.

UPX header kaputtmachen, dann weigert sich UPX (Kann aber trotzdem ziemlich schnell anders entpackt werden)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Seite 1 von 2  1 2      

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