AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Attribute einer Methode in Methode abfragen

Ein Thema von hschmid67 · begonnen am 3. Feb 2018 · letzter Beitrag vom 13. Aug 2019
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Attribute einer Methode in Methode abfragen

  Alt 3. Feb 2018, 17:52
Bin auch kein Profi, was die Attribute angeht, deshalb kann ich dir leider nicht sagen, ob es über die RTTI einen "eleganten" (wenn man RTTI überhaupt als elegant bezeichnen darf) Weg gibt, aber ich befürchte, ohne zumindest den Namen der Methode nochmal explizit darin aufzuführen bzw an die CurrentUserHasRight Funktion zu übergeben, wird es recht umständlich bis unmöglich.

Hauptproblem dürfte sein die Adresse der aktuellen Methode zu ermitteln, um dann deren RTTI Infos abfragen zu können. Eine Möglichkeit wäre eine "Wrapper-Funktion", welche die eigentliche Methode aufruft und vorher den Check ausführt (wird allerdings schon wieder sehr umständlich, wenn die Zielmethoden unterschiedliche Parameter und Rückgabewerte besitzen). Alternativ könntest du per inline Assembly den aktuellen EIP ermitteln und gegen die VTable der Objektinstanz abgleichen (um durch unterschiedliche Anzahl von Parametern bedingte Varianz zu kompensieren). Aber auch das ist ziemlich hacky und zudem nicht für 64-Bit möglich.

Edit:
Noch ein paar andere Gedanken und Methoden dazu hier:
https://stackoverflow.com/questions/...hi-as-a-string
https://stackoverflow.com/questions/...me-in-delphi-7
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz