Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Zydis - X86/X86-64 Disassembler Library (https://www.delphipraxis.net/195373-zydis-x86-x86-64-disassembler-library.html)

Zacherl 10. Apr 2018 19:16

AW: Zydis - X86/X86-64 Disassembler Library
 
Ahh, habe das Problem endlich finden und beheben können. Delphi übergibt Structs, welche mit
Delphi-Quellcode:
const
gekennzeichnet sind standardmäßig als Zeiger. FPC pusht unter 32-Bit anscheinend lieber den kompletten Inhalt auf den Stack :wall: Habe das Interface manuell auf Zeigertypen geändert. Ist so im Grunde eh näher am C-Original.

himitsu 10. Apr 2018 21:54

AW: Zydis - X86/X86-64 Disassembler Library
 
Ja, CONST ist wie VAR, nur halt "schreibgeschützt" ... das gilt für Typen über 32 Bit. (bis 32 Bit wird meistens optimiert und dann doch der Wert, anstatt einem Zeiger übergeben)

Und gemanagte Typen, ala String, Interface usw. sind eh immer bissl anders.



Mit einer anderen Aufrufkonvention könnte sich das Verhalten eventuell auch ändern.

Zacherl 10. Apr 2018 22:29

AW: Zydis - X86/X86-64 Disassembler Library
 
Zitat:

Zitat von himitsu (Beitrag 1398690)
Ja, CONST ist wie VAR, nur halt "schreibgeschützt" ... das gilt für Typen über 32 Bit. (bis 32 Bit wird meistens optimiert und dann doch der Wert, anstatt einem Zeiger übergeben)

Genau, das gillt für Delphi. FPC hat da scheinbar aber andere Regeln. Musste das Interface so ändern, dass statt
Delphi-Quellcode:
const TType
jetzt explizit
Delphi-Quellcode:
PType
verwendet wird.

Edit:
Wobei scheinbar
Delphi-Quellcode:
const
auch bei Delphi keine Garantie für "pass by reference" ist. In neueren Versionen gibt es hierfür wohl den
Delphi-Quellcode:
[Ref]
Decorator. Für FreePascal kann man
Delphi-Quellcode:
constref
verwenden. Um einheitlich zu bleiben habe ich mich jetzt aber für die expliziten Zeigertypen entschieden.

MAXON 31. Okt 2022 09:43

AW: Zydis - X86/X86-64 Disassembler Library
 
Hi,
da ist ein kleiner Fehler in der GitHub Beschreibung...


Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (64-bit) / C:\Windows\SysWOW64\ (32-bit) directory

Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (32-bit) / C:\Windows\SysWOW64\ (64-bit) directory

Cracks&Nerds wissen es - aber Neulinge eher nicht...

KodeZwerg 31. Okt 2022 11:19

AW: Zydis - X86/X86-64 Disassembler Library
 
Zitat:

Zitat von MAXON (Beitrag 1514106)
Hi,
da ist ein kleiner Fehler in der GitHub Beschreibung...


Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (64-bit) / C:\Windows\SysWOW64\ (32-bit) directory

Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (32-bit) / C:\Windows\SysWOW64\ (64-bit) directory

Cracks&Nerds wissen es - aber Neulinge eher nicht...

Vielleicht überdenkst Du nochmal Deine Aussage, WOW64 = Windows-On-Windows 64 (dieser Ordner enthält ein 32bit Subsystem um 32bit Prozesse zu starten)

himitsu 31. Okt 2022 12:10

AW: Zydis - X86/X86-64 Disassembler Library
 
Jupp, es heißt im Printip "Windows 32-Subsystem on Windows 64"

Ja, die Namen sind schon etwas krank verwirrend.

System32 = 64 Bit
WoW64 = 32 Bit
:freak:

Außerdem heißt die API weiterhin Win32, auch wenn sie 64 Bit sein kann. (Vorteil, weil wäre noch verwirrender, wenn 64 Bit eine eigene API hätte, so wie damals Win16)



Der Grund ist aber nicht Microsoft, sondern weil man versuchte die Fehler bescheuerter Programmierer auszumerzen, welche selbst heute immernoch mit hartcodierten Pfaden arbeiten.
Und auch der Grund, warum die SystemPartition seit 'ner Weile immer C ist, auch wenn sie nicht die erste Partition der Festplatte ist.
(ursprünglich wurden Partitionen standardmäßig einfach durchgezählt. zwei mögliche Diskettenlaufwerke und dann C die erste Partition der ersten Festplatte)

CCRDude 1. Nov 2022 10:57

AW: Zydis - X86/X86-64 Disassembler Library
 
Zitat:

Zitat von MAXON (Beitrag 1514106)
Hi,
da ist ein kleiner Fehler in der GitHub Beschreibung...


Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (64-bit) / C:\Windows\SysWOW64\ (32-bit) directory

Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (32-bit) / C:\Windows\SysWOW64\ (64-bit) directory

Cracks&Nerds wissen es - aber Neulinge eher nicht...

Wenn's um Cracks vs. Nerds geht, sollten Cracks wissen, dass man besser gar keine Bibliotheken in den Systemordner installiert. Gibt nur Versionschaos, Probleme mit schlechten Uninstallern (ggfls. auch anderer Produkte mit gleicher DLL), Sicherheitsprobleme (Suchpfad DLLs).

Ich persönlich lege den DLL-Pfad sogar im Manifest fest. Sicher ist sicher :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 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