Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich möchte die Funktion NTQuerySystemInformation verwenden welche laut MSDN per Run-Time Dynamic Linking geladen werden muss da keine entsprechende Lib dafür existiert.

Gesagt getan


//typedef DWORD (*NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, void*, ULONG, ULONG*);
typedef DWORD (*NTQUERYSYSTEMINFORMATION)(DWORD, DWORD*, DWORD, void*);

NTQUERYSYSTEMINFORMATION NtQuerySystemInformation;

HMODULE hLib = LoadLibrary("Ntdll.dll");
NtQuerySystemInformation = (NTQUERYSYSTEMINFORMATION)GetProcAddress(hLib,"NtQuerySystemInformation");
[/PHP]

Leider bedkomme ich beim Aufrufen der Funktion später aber einen Fehler das das Value von ESP nicht richtig gespeichert wurde und das normalerweise geschähe wenn man eine Funktion mit einer bestimmten calling convention mit einer anderen aufruft.

Das typedef von NtQuerySystemInformation bzw. dessen Parameter hab ich so aus einem anderen Code den ich im Internet gefunden habe. Wenn ich die erste auskommentierte Variante bentutzte welche exakt die Parameter aus der MSDN verwendet kommt aber der selbe Fehler.

Hat jemand eine Idee dazu bzw. wie lege ich beim Run-Time Dynamic Linking die calling convention fest (geht das überhaupt?)?

Geschrieben

Das hat mit Runtime Dynamic Linking erst mal nichts zu tun. Die Calling Convention ist Teil des Funktionszeigertyps:

typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG); 

Vermutlich ist in deinem Project __stdcall nicht die Default-Calling-Convention.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...