Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   "Keine Typinformationen" von Enum Type. Was könnte ich tun? (https://www.delphipraxis.net/195221-keine-typinformationen-von-enum-type-koennte-ich-tun.html)

milos 14. Feb 2018 00:56

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von Zacherl (Beitrag 1393779)
Ach cool :thumb: Eine kleine VM steht auch schon ewig auf meiner Liste, aber bisher bin ich nie dazu gekommen. Viel Erfolg!

Ist bestimmt eines der Dinge die jeder Entwickler mal auf seiner Liste stehen hat. :D
Vielen Dank! ^^

Zitat:

Zitat von Dennis07 (Beitrag 1393784)
Witzig, genau das selbe habe ich auch vor einigen Wochen mal angefangen. Konnte einige ASM-Befehle decodieren und virtuell ausführen. Mit Registern, einer FPU, Stack und Heap (der aber nicht wirklich gut war...) :)

Cool! Kann man sich das ansehen und ausprobieren? Würde mich sehr interessieren. :)

Der Heap bereitet mir auch ein wenig Sorgen, denke nicht dass ich den gescheit hinkriege aber ich werde mich da noch einlesen und lasse mich dann überraschen. :D Womöglich wird sich Zacherl ja auch bald zu uns gesellen. ^^

Freundliche Grüsse

Neutral General 14. Feb 2018 09:00

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von milos (Beitrag 1393785)
Zitat:

Zitat von Zacherl (Beitrag 1393779)
Ach cool :thumb: Eine kleine VM steht auch schon ewig auf meiner Liste, aber bisher bin ich nie dazu gekommen. Viel Erfolg!

Ist bestimmt eines der Dinge die jeder Entwickler mal auf seiner Liste stehen hat. :D

Da überschätzt du die Fähigkeiten des durchschnittlichen Entwicklers aber um einiges ;)

himitsu 14. Feb 2018 09:53

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Was du aber machen kannst, ist die andere Seite zu "reparieren",
also den ENUM mit Dummy-Werten auffüllen und den Compiler automatisch zählen zu lassen.

Alternativ noch eine Übersetzung hinzufügen. Den ENUM bei 0 beginnen und automatisch zählen lassen und dann noch ein TPairArray<TFPInstruction,Byte> mit fpiMOV_REG_CONST=$a0, fpiMOV_REG_REG=$a1 usw. füllen.

uligerhardt 14. Feb 2018 12:16

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von himitsu (Beitrag 1393805)
Alternativ noch eine Übersetzung hinzufügen. Den ENUM bei 0 beginnen und automatisch zählen lassen und dann noch ein TPairArray<TFPInstruction,Byte> mit fpiMOV_REG_CONST=$a0, fpiMOV_REG_REG=$a1 usw. füllen.

Oder ein Konstantenarray
Delphi-Quellcode:
const
  cFPInstructionValues: array[TFPInstruction] of Integer = (
    (*fpiMOV_REG_CONST*)$A0,
    (*fpiMOV_REG_REG*)$A1
    );
definieren und dann statt fpiXXX cFPInstructionValues[fpiXXX] benutzen:
Delphi-Quellcode:
var
  fpi: TFPInstruction;
//...
for fpi := Low(TFPInstruction) to High(TFPInstruction) do
  Writeln(cFPInstructionValues[fpi]);
Edit: Ich würde den Enum auch nicht explizit bei 0 beginnen lassen, sondern ganz "normal" definieren:
Delphi-Quellcode:
type
  TFPInstruction = (
    fpiMOV_REG_CONST,
    fpiMOV_REG_REG
    );

milos 14. Feb 2018 17:44

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Das Problem ist halt dass ich durch einen String auf das Enum zugreifen will welches dann einen bestimmten Byte Wert enthält. Somit kann ich eben nur durch den Enum Eintrag einen ganzen Befehl in den ASM compiler einbauen kann.

Der Tokenizer gibt mir folgendes:
Zitat:

"mov" "eax" "," "420"
Daraus mache ich dann einen String aus den jeweiligen Elementen: "MOV_REG_CONST".

Falls dann dieser Enum Eintrag existiert beinhaltet er auch gerade seinen Opcode (In dem Fall 0xA0) und das ermöglicht mir ganz leicht neue Befehle und Kombinationen in den Compiler einzubauen.$

Edit: Dies hab ich nun einfach ganz doff (:stupid:) durch TDictionary<string, TFPInstruction> gelöst. Vielleicht etwas übertrieben aber sind halt nur paar Zeilen. ^^

Zitat:

Zitat von Neutral General (Beitrag 1393797)
Da überschätzt du die Fähigkeiten des durchschnittlichen Entwicklers aber um einiges ;)

Naja, jeder darf Träumen und wer es auch wirklich will der wird es auch irgendwann mal schaffen. ^^
Jeder fängt mal klein an und du willst gar nicht wissen wie lange ich schon auf das Vorhaben hinarbeite. ;)

Freundliche Grüsse

Neutral General 14. Feb 2018 22:31

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von milos (Beitrag 1393862)
Zitat:

Zitat von Neutral General (Beitrag 1393797)
Da überschätzt du die Fähigkeiten des durchschnittlichen Entwicklers aber um einiges ;)

Naja, jeder darf Träumen und wer es auch wirklich will der wird es auch irgendwann mal schaffen. ^^
Jeder fängt mal klein an und du willst gar nicht wissen wie lange ich schon auf das Vorhaben hinarbeite. ;)

Klar. Aber allein durch die Tatsache, DASS du es willst und darauf zuarbeitest bist du wahrscheinlich in den 10% der Leute die sowas machen wollen oder können ;)
Habe im bisher im RL glaube ich noch außer mir keinen weiteren Programmierer getroffen der in diesem Bereich überhaupt Interesse hatte, geschweige denn Ahnung oder der wirklich was programmiert hat.
Und als Hauptberuflicher Programmierer kenne ich da schon ein paar ;)

milos 14. Feb 2018 23:39

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von Neutral General (Beitrag 1393882)
Habe im bisher im RL glaube ich noch außer mir keinen weiteren Programmierer getroffen der in diesem Bereich überhaupt Interesse hatte, geschweige denn Ahnung oder der wirklich was programmiert hat.
Und als Hauptberuflicher Programmierer kenne ich da schon ein paar ;)

Hmm komisch, bei mir ist es eigentlich genau der selbe Fall.

Ich dachte das liegt einfach an der Schweiz. :gruebel:

Freundliche Grüsse

Zacherl 14. Feb 2018 23:51

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von milos (Beitrag 1393885)
Ich dachte das liegt einfach an der Schweiz. :gruebel:

Nee, liegt glaube ich größtenteils daran, dass diese System/Hardware-nahen Projekte meistens eher schwer zu Geld zu machen sind :( Solche VMs und X86->dynamicVM Tools kenne ich da eigentlich nur als Software-Protectoren und von einigen AntiCheat Systemen. Gibt definitiv einen Markt dafür, aber der ist in der Regel einfach schon fest im Griff von etablierten Produkten (in diesem Falle z.B. Themida, VMProtect, etc.). Gleiches Problem bei Reverse-Engineering Tools wie z.b. IDA.

Dann kommt sicherlich noch hinzu, dass solche speziellen Projekte deutlich mehr Fachwissen in dem jeweiligen Bereich erfordern, als z.B. nötig ist, um eine simple Mobile App zu basteln. Klar, das trifft sicherlich auch auf komplexe ERP Systeme oder auch generell Branchen-spezifische Software zu, aber auf der anderen Seite kenne ich hier ebenfalls nicht grade viele Leute, die sich jetzt aus reinem Interesse in so etwas reinarbeiten würden.

freimatz 15. Feb 2018 17:11

AW: "Keine Typinformationen" von Enum Type. Was könnte ich tun?
 
Zitat:

Zitat von himitsu (Beitrag 1393742)
Vor vielen vielen Jahren hatte ich im QC mal vorgeschlagen, das Fehlende einfach mit einem Dummy-Char oder dem ordinalen Wert (Zahl) aufzufüllen, aber auf mich hört ja niemand.

Auf uns leider auch nicht. Die fehlende RTTI Info für diese Typen ist das größte Ärgernis zu Delphi bei uns in der Firma.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr.
Seite 2 von 2     12   

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