Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Funktionskopf nach Delphi (nur der Kopf) (https://www.delphipraxis.net/201024-c-funktionskopf-nach-delphi-nur-der-kopf.html)

DieDolly 17. Jun 2019 08:17


C++ Funktionskopf nach Delphi (nur der Kopf)
 
Ich kenne mich mit C++ überhaupt nicht aus. Dies und das kann man noch erraten aber wie muss denn sowas hier in Delphi aussehen?
Code:
int32_t __stdcall GetMemA(void* Mem, size_t Size)
Mem ist laut Doku ein memory buffer. Aber was heißt das alles übersetzt nach Delphi?

Ich habe auch ein paar Methoden wo void** steht statt void*.

mkinzler 17. Jun 2019 08:29

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Das siehtr eher nach C++ aus. Der * steht für einen Zeigertyp

EWeiss 17. Jun 2019 08:52

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Delphi-Quellcode:
Function GetMemA(Mem: Pointer; Size: TSize): Int32;


gruss

Der schöne Günther 17. Jun 2019 09:14

AW: C# Funktionskopf nach Delphi (nur der Kopf)
 
Delphi-Quellcode:
size_t
ist sicher nicht Delphis TSize sondern ein unsigned int für Indizes. Ich hätte gesagt das Delphi-Gegenstück ist NativeUInt.

DieDolly 17. Jun 2019 10:02

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Ich habe den Tite korrigiert. Es ist C++, kein C#.

Die Paremeterbeschreibung lautet
Zitat:

Parameters:
Mem - Pointer to a memory block that should be checked (must not be nil)
Size - Size of the memory block in bytes
Die ganze Unit gibt es hier (mehr Kommentare als Code):
https://github.com/CaptainFlint/wcx_...II_Decrypt.cpp

Hier habe ich etwas hoffentlich Nützliches gefunden. Vielleicht auch für andere. Ich kopiere es mal raus für den Fall, dass die Doku offline ist.
size_t ist aber nicht in der Liste. Sollte vielleicht hinzugefügt werden. Denn wie Der schöne Günther sagt, entspricht es einem NativeUInt was auch hier genau so steht
https://www.delphipraxis.net/190880-...er-delphi.html

void** steht leider auch nicht drin.
Code:
Below is a list of Delphi data types and the corresponding C++ data types:

Delphi type                    Platform   Corresponding C++ type

Boolean (Delphi)               bool (C++)
ShortInt (Delphi)              ShortInt, signed char (C++)
SmallInt (Delphi)              short (C++)
Integer (Delphi)               int (C++)
Byte (Delphi)                  Byte (C++)
Word (Delphi)                  Word (C++)
Cardinal (Delphi)              unsigned (C++)
Int64 (Delphi)                 __int64 (C++)
UInt64 (Delphi)                unsigned __int64 (C++)
NativeInt (Delphi) 32-bit Win  int (C++)
                    64-bit Win __int64 (C++)
                    64-bit iOS long (C++)
NativeUInt (Delphi) 32-bit     unsigned (C++)
                    64-bit Win unsigned __int64 (C++)
                    64-bit iOS unsigned long (C++)
Single (Delphi)                float (C++)
Double (Delphi)                double (C++)
Extended (Delphi)              Extended (C++)
Currency (Delphi)              Currency, CurrencyBase (C++)
Comp (Delphi)                  Comp, CompBase (C++)
Real (Delphi)                  double (C++)
ShortString (Delphi)           ShortString, ShortStringBase (C++)
OpenString (Delphi)            OpenString (C++)
File (Delphi)                  file (C++)
Text (Delphi)                  TextFile (C++)
ByteBool (Delphi)              ByteBool (C++)
WordBool (Delphi)              WordBool (C++)
LongBool (Delphi)              BOOL (C++)
Real48 (Delphi)                not supported in C++
Pointer (Delphi)               void* (C++)
PWideChar (Delphi)             WideChar* (C++)
PAnsiChar (Delphi)             char* (C++)
Variant (Delphi)               defined in sysvari.h (C++)
OleVariant (Delphi)            defined in sysvari.h (C++)
LongInt (Delphi)               int (C++)
                     64-bit iOS long (C++)
LongWord (Delphi)              unsigned (C++)
                     64-bit iOS unsigned long (C++)
FixedInt (Delphi)              int (C++)
FixedUInt (Delphi)             unsigned int (C++)
TextFile (Delphi)              TextFile (C++)

    Note: 32-bit platforms include 32-bit Windows, OSX32, 32-bit iOS, and Android.

Schokohase 17. Jun 2019 10:32

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434782)
Ich habe auch ein paar Methoden wo void** steht statt void*.

C++: Was bedeutet void**?

DieDolly 17. Jun 2019 10:35

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

und ein void** ist dann ein Zeiger auf einen void*.
Ein Pointer auf einen Pointer?

Schokohase 17. Jun 2019 10:38

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434800)
Zitat:

und ein void** ist dann ein Zeiger auf einen void*.
Ein Pointer auf einen Pointer?

Der Kandidat erhält 100 Punkte

DieDolly 17. Jun 2019 10:38

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von Schokohase (Beitrag 1434801)
Der Kandidat erhält 100 Punkte

Du kannst mir 200 gleich dafür wieder abziehen

Code:
int32_t __stdcall DecodeMemoryHelper(void* Input, size_t InSize, void* Output, size_t* OutSize, void** Helper) { return 0; }
Delphi-Quellcode:
function DecryptAndDecodeMemoryHelper(Input: Pointer; InSize: NativeUInt; Output: Pointer; OutSize: NativeUInt; Helper: ??? ^Pointer): Integer;



In der System.pas finde ich zwar Hilfe zu void * aber nicht zu void **

Edit
size_t steht da in der Winapi.Windows.pas drin als ULONG_PTR was wieder ein NativeUInt ist.

Der schöne Günther 17. Jun 2019 10:40

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Komm!

Wenn void* ein Pointer ist, dann ist void** wohl ein PPointer, oder? 😎

DieDolly 17. Jun 2019 10:45

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1434803)
Komm!

Wenn void* ein Pointer ist, dann ist void** wohl ein PPointer, oder? ��


System.pas, Zeile 1316
Code:
PPointer     = ^Pointer;
:pale::pale::pale:

Das habe ich. Danke an euch! Jetzt geht der Spaß aber erst so richtig los. Jede dieser Funktionen hat IO-basierte Funktionen und auch welche die direkt im Arbeitsspeicher arbeiten.
Die, die im Arbeitsspeicher arbeiten, sind von Pointern nur so übersäht und die versuche ich zu nutzen. Ich denke, ich werde mich höchstverzweifelt bald wieder melden :P

mkinzler 17. Jun 2019 10:58

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Bzw. ein var Parameter

DieDolly 17. Jun 2019 11:03

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von mkinzler (Beitrag 1434806)
Bzw. ein var Parameter

Sind void** jetzt PPointer oder var PPointer?

EWeiss 17. Jun 2019 11:03

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Hallo..

gruss

DeddyH 17. Jun 2019 11:14

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

This file has been converted from Headers\SII_Decrypt_Header.pas
Wäre es nicht einfacher, sich das Original zu beschaffen? Der in der Doku enthaltene Link ist allerdings tot, da müsste man wohl etwas recherchieren.

DieDolly 17. Jun 2019 11:24

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Wäre es nicht einfacher, sich das Original zu beschaffen?
Das habe ich gestern den halben Tag gemacht. Das Projekt wurde komplett aus dem Netz entfernt.

Neutral General 17. Jun 2019 12:03

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434808)
Zitat:

Zitat von mkinzler (Beitrag 1434806)
Bzw. ein var Parameter

Sind void** jetzt PPointer oder var PPointer?

Entweder var Pointer oder PPointer.
Das "var" bedeuted in der Praxis, dass ein Pointer auf den Typ des Parameters übergeben wird. Also ist var Pointer ein Pointer auf einen Pointer also ein PPointer.

Stevie 17. Jun 2019 12:42

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Wenn es das original Repo (https://github.com/ncs-sniper/SII_Decrypt) nicht mehr gibt, dann sucht man halt nach Forks:

https://github.com/JhowDroid/SII_Decrypt
https://github.com/neviim/SII_Decrypt

DieDolly 17. Jun 2019 14:32

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Gibt es eine fork-Suchmaschine? Ich dachte wenn ein Repo gelöscht wird, werden alle Forks ebenfalls gelöscht.

Stevie 17. Jun 2019 15:17

AW: C++ Funktionskopf nach Delphi (nur der Kopf)
 
Zitat:

Zitat von DieDolly (Beitrag 1434844)
Gibt es eine fork-Suchmaschine?

Ja, über die github api, die hab ich aber gar nicht gebraucht sondern hab einfach nach Bei Google suchengithub SII_Decrypt gesucht.

Zitat:

Zitat von DieDolly (Beitrag 1434844)
Ich dachte wenn ein Repo gelöscht wird, werden alle Forks ebenfalls gelöscht.

Hilfe nein, deshalb macht man sich ja ggf einen Fork, wenn man nicht darauf vertraut, dass der Besitzer des Repos nicht eines Nachmittags nen "F*** you"-Moment hat und es löscht.
Wenn ein Repo gelöscht wird, wird einer der Forks ausgewählt, siehe https://help.github.com/en/articles/...ges-visibility


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 Uhr.

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