mingw / msvcrt, C , Funktions-Adresse

18/07/2015 - 08:09 von Robert Hartmann | Report spam
Hallo zusammen,


Warum liefern

printf("%p",(void*)vfprintf);

und

printf("%p",(void*)GetProcAddress(GetModuleHandle("msvcrt.dll"),"vfprintf");

verschiedene Ausgaben (compiliert mit mingw32 gcc,
mingw32 linkt per default gegen msvcrt.dll).


Irgend etwas offensichtliches hab ich übersehen - nur was?

Gruß Robert

P.S. Hier drin hab ich vieles gefunden, mit dem ich mir
ein Hello-PE-Header-Programm gebaut habe.
"Microsoft PE and COFF Specification":
https://msdn.microsoft.com/en-us/wi...63119.aspx



=Beispiel Code code.c
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

#include<windows.h>

int main(int argc, char* argv[]){

HMODULE msvcrt_dll=GetModuleHandle(TEXT("msvcrt.dll"));
assert(msvcrt_dll);
PROC vfprintf_getProcAdress = GetProcAddress(msvcrt_dll,TEXT("vfprintf"));

printf("vfprintf: %p vfprintf_getProcAdress: %p ",(void*)vfprintf,
(void*)vfprintf_getProcAdress);
assert ((DWORD_PTR) vfprintf == (DWORD_PTR) vfprintf_getProcAdress);
return 0;
}

gcc -DDEBUG -D_DEBUG code.c -o code.exe
 

Lesen sie die antworten

#1 Stefan Kanthak
18/07/2015 - 15:22 | Warnen spam
"Robert Hartmann" schrieb:

Hallo zusammen,


Warum liefern

printf("%p",(void*)vfprintf);



Wie und wo hast Du das Symbol vfprintf definiert?
Wie loest der Linker seine Adresse auf?
Und welche Adresse loest der Linker auf?

und

printf("%p",(void*)GetProcAddress(GetModuleHandle("msvcrt.dll"),"vfprintf");

verschiedene Ausgaben



Normales Verhalten!

(compiliert mit mingw32 gcc,
mingw32 linkt per default gegen msvcrt.dll).



MSVCRT.DLL ist NICHT fuer die allgemeine Nutzung freigegeben!

Irgend etwas offensichtliches hab ich übersehen - nur was?



GRUNDLAGEN: hier statisches und dynamisches Laden einer DLL und die IAT!

wehret den Anfaengern!
Stefan
[
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)


news://freenews.netfront.net/ - complaints:

Ähnliche fragen