J'apprends fasm sur environnement Windows XP pendant que je lis un code source fasm, je trouve invoquer macroappeler l'API Windows de l'assemblage, mais il n'y a pas d'adresse hardcoded
invoke MessageBox,0,[_strbuf],_msgcap,MB_ICONINFORMATION+MB_OK
et l'importation macro.
import user,\
MessageBox,'MessageBoxA',\
wsprintf,'wsprintfA'
mais je ne pouvais pas trouver une adresse codée en dur de MessageBoxA ni charge user32.dll dans le code assembleur. Il existe uniquement des définitions de macros qui marquent la chaîne mais pas une adresse.
mon hypothèse est cette
il y a un code qui charge user32.dll et l'adresse de retour de début de dll chargé => ici, nous appelons l'adresse de retour à l'emplacement A
il y a paires pour adresse codée en dur et de l'étiquette (par exemple MessageBoxA = 0x00000000)
si l'instruction « appel » peut appeler étiquette MessageBoxA (qui sera convertie à l'emplacement A + MessageBoxA offset)
est-ce que mon hypothèse est fausse? Je me demande comment les API sont appelées.
grâce