Je lis sur Windows et Accrocher les entrailles de executables Win32 (https://en.wikipedia.org/wiki/Hooking#Windows) et a vu ce bloc de code:IMAGE_DOS_HEADER Accrocher
PIMAGE_DOS_HEADER pImgDosHeaders = (PIMAGE_DOS_HEADER)module;
PIMAGE_NT_HEADERS pImgNTHeaders = (PIMAGE_NT_HEADERS)((LPBYTE)pImgDosHeaders + pImgDosHeaders->e_lfanew);
PIMAGE_IMPORT_DESCRIPTOR pImgImportDesc = (PIMAGE_IMPORT_DESCRIPTOR)((LPBYTE)pImgDosHeaders + pImgNTHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
for (IMAGE_IMPORT_DESCRIPTOR *iid = pImgImportDesc; iid->Name != NULL; iid++)
Mon C est un peu rouillé et je dois probablement rafraîchir (pointeurs toujours me confondre), mais je pense que la façon dont cela fonctionne est de créer un pointeur IMAGE_IMPORT_DESCRIPTOR
appelé iid
. iid
pointe vers un IMAGE_IMPORT_DESCRIPTOR
et est défini sur un objet nommé pImgImportDesc
. Donc, il regarde pImgImportDesc
propriété Name
, et si elle n'est pas définie, il ira à la suivante? Donc, fondamentalement, il cherche le dernier?
Aussi des recommandations pour des livres ou des vidéos pour voir plus sur les choses de très bas niveau comme ça? La lecture du code m'a tout confondu.
Il ira à côté si elle est ** ** ensemble. Donc, ça passe par-dessus chacun d'eux. – rkapl
Le code analyse un en-tête PE. Il n'y a pas d'accroche nulle part, et ce n'est pas du tout un niveau bas. Poser des questions sur la syntaxe C de base n'est pas ce à quoi Stack Overflow est destiné. – IInspectable
Merci pour l'entrée, mais comment est-ce pas bas niveau?Je veux dire ne traite pas des en-têtes PE à un niveau assez bas, à moins que vous ne le compariez à l'assemblage (je demande sincèrement, je ne suis pas très familier avec ça). Désolé la plupart de mes antécédents dans tout type de programmation est de haut niveau java/développement web, j'essayais juste de faire face à des trucs comme ça. J'ai vu beaucoup de questions ici traitant des explications/syntaxes de base pour certaines choses. – JimmySmithJR