Salut a vous,
Je suis en train d'essayer de refaire la fonction LoadLibrary, bien
sur, elle est un peu basique pour le moment mais j'avance petit a
petit.
Pour le moment, je suis capable de charger un fichier image et faire un
pseudo getProcAddress (que j'ai du recoder pour l'occasion) et de faire
un call dessus.
Le probleme, c'est qu'avec le chargement d'un fichier image qui exporte
des fonctions (souvent les dll) avec des ImageBase de $40000, il faut
les charger autre part qu'a cette adresse car c'est souvent
l'executable "de base" (qui charge la librairie) qui occupe cette
adresse.
Je suppose donc que le loader charge les Dll a un autre emplacement
puis effectue les relocations =E0 faire. C'est ce que j'essaie de faire
en ce moment.
Le probleme, c'est que je bute sur un type de relocation :
IMAGE_REL_BASED_HIGHADJ : The fixup adds the high 16 bits of the delta
to the 16-bit field at Offset. The 16-bit field represents the high
value of a 32-bit word. The low 16 bits of the 32-bit value are stored
in the 16-bit word that follows this base relocation. This means that
this base relocation occupies two slots.
D'apres mon anglais pas terrible du tout (je sais, c'est tres mauvais
en infos), je comprend qu'apres avoir ajoute les 16 bits du Delta aux
16 bits de poids fort d'une donn=E9e de 32 bits , il faut que je recopie
les 16 bits de poids faible de ce dword dans un word qui suit le dword
?
En clair, la memoire peut se representer sur 48 bits ainsi : 16bits
poids fort du dword | 16 bits poids faible du dword | 16 bits poids
faible du dword ?? ou j'ai rien compris :(
Si je me suis trompe sur la facon dont le loader charge les librairies,
dites le moi aussi ;)
Autre chose, je recherche des informations sur la structure de l'objet
point=E9 par un HModule.
Merci d'avance.
Pour voir mes "travaux" : http://glayag.free.fr/Delphi/PeFile.pas (pour
etudier/modifier les PE)
http://glayag.free.fr/Delphi/Emu_Loader.pas (Emulation de l'API)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Burel
"yarocco" wrote in message news: Salut a vous, Je suis en train d'essayer de refaire la fonction LoadLibrary, bien sur, elle est un peu basique pour le moment mais j'avance petit a petit.
bizarre ca ! sur quel OS ? parce que sous win, la fonction existe !
VB
"yarocco" <yarocco13660@yahoo.fr> wrote in message
news:1132181971.580139.119590@g49g2000cwa.googlegroups.com...
Salut a vous,
Je suis en train d'essayer de refaire la fonction LoadLibrary, bien
sur, elle est un peu basique pour le moment mais j'avance petit a
petit.
bizarre ca ! sur quel OS ? parce que sous win, la fonction existe !
"yarocco" wrote in message news: Salut a vous, Je suis en train d'essayer de refaire la fonction LoadLibrary, bien sur, elle est un peu basique pour le moment mais j'avance petit a petit.
bizarre ca ! sur quel OS ? parce que sous win, la fonction existe !
VB
yarocco
Je sais :) Premierement, j'essaye de la refaire pour savoir exactement comment elle marche, en second lieu, pour l'integrer dans mon OS dans un futur plus ou moins lointain (il me reste quand meme pas mal de chose a finir avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction ?? :(
Je sais :)
Premierement, j'essaye de la refaire pour savoir exactement comment
elle marche, en second lieu, pour l'integrer dans mon OS dans un futur
plus ou moins lointain (il me reste quand meme pas mal de chose a finir
avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction
?? :(
Je sais :) Premierement, j'essaye de la refaire pour savoir exactement comment elle marche, en second lieu, pour l'integrer dans mon OS dans un futur plus ou moins lointain (il me reste quand meme pas mal de chose a finir avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction ?? :(
Vincent Burel
"yarocco" wrote in message news:
Je sais :) Premierement, j'essaye de la refaire pour savoir exactement comment elle marche, en second lieu, pour l'integrer dans mon OS dans un futur plus ou moins lointain (il me reste quand meme pas mal de chose a finir avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction ?? :(
ben ici, y'a AMcD qui est prof d'anglais, peut-être pourra t-il te dépanner ! :-)
VB
"yarocco" <yarocco13660@yahoo.fr> wrote in message
news:1132307664.135071.302060@f14g2000cwb.googlegroups.com...
Je sais :)
Premierement, j'essaye de la refaire pour savoir exactement comment
elle marche, en second lieu, pour l'integrer dans mon OS dans un futur
plus ou moins lointain (il me reste quand meme pas mal de chose a finir
avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction
?? :(
ben ici, y'a AMcD qui est prof d'anglais, peut-être pourra t-il te dépanner
! :-)
Je sais :) Premierement, j'essaye de la refaire pour savoir exactement comment elle marche, en second lieu, pour l'integrer dans mon OS dans un futur plus ou moins lointain (il me reste quand meme pas mal de chose a finir avant d'attaquer le loader).
N'y a t-il donc personne pour confirmer/infirmer ma petite traduction ?? :(
ben ici, y'a AMcD qui est prof d'anglais, peut-être pourra t-il te dépanner ! :-)
VB
Arnold McDonald
> ben ici, y'a AMcD qui est prof d'anglais, peut-être pourra t-il te dépanner ! :-)
Désormais, pour toute question sur le format PE, faut me payer :-).
-- Arnold McDonald (AMcD®)
http://arnold.mcdonald.free.fr/
> ben ici, y'a AMcD qui est prof d'anglais, peut-être pourra t-il te
dépanner ! :-)
Désormais, pour toute question sur le format PE, faut me payer :-).
Ohoh... :( On peut dire que c'est pas sur le PE mais sur l'anglais ?? :)
T'es sûr ? Je veux dire, VRAIMENT sûr ? :-).
-- Arnold McDonald (AMcD®)
http://arnold.mcdonald.free.fr/
yarocco
>T'es sûr ? Je veux dire, VRAIMENT sûr ? :-).
Ben, oui, on va faire une exception. Si tu veux, je te refais le message :
J'ai un probleme de traduction : IMAGE_REL_BASED_HIGHADJ : The fixup adds the high 16 bits of the delta to the 16-bit field at Offset. The 16-bit field represents the high value of a 32-bit word. The low 16 bits of the 32-bit value are stored in the 16-bit word that follows this base relocation. This means that this base relocation occupies two slots.
D'apres mon anglais pas terrible du tout (je sais, c'est tres mauvais en infos), je comprend qu'apres avoir ajoute les 16 bits du Delta aux 16 bits de poids fort d'une donnée de 32 bits , il faut que je recopie les 16 bits de poids faible de ce dword dans un word qui suit le dword ? En clair, la memoire peut se representer sur 48 bits ainsi : 16bits poids fort du dword | 16 bits poids faible du dword | 16 bits poids faible du dword ?? ou j'ai rien compris :(
Ca parait mieux maintenant ou faut que je creer un nouveau thread sur le newsgroup ?? :)
>T'es sûr ? Je veux dire, VRAIMENT sûr ? :-).
Ben, oui, on va faire une exception.
Si tu veux, je te refais le message :
J'ai un probleme de traduction :
IMAGE_REL_BASED_HIGHADJ : The fixup adds the high 16 bits of the delta
to the 16-bit field at Offset. The 16-bit field represents the high
value of a 32-bit word. The low 16 bits of the 32-bit value are stored
in the 16-bit word that follows this base relocation. This means that
this base relocation occupies two slots.
D'apres mon anglais pas terrible du tout (je sais, c'est tres mauvais
en infos), je comprend qu'apres avoir ajoute les 16 bits du Delta aux
16 bits de poids fort d'une donnée de 32 bits , il faut que je recopie
les 16 bits de poids faible de ce dword dans un word qui suit le dword
?
En clair, la memoire peut se representer sur 48 bits ainsi : 16bits
poids fort du dword | 16 bits poids faible du dword | 16 bits poids
faible du dword ?? ou j'ai rien compris :(
Ca parait mieux maintenant ou faut que je creer un nouveau thread sur
le newsgroup ?? :)
Ben, oui, on va faire une exception. Si tu veux, je te refais le message :
J'ai un probleme de traduction : IMAGE_REL_BASED_HIGHADJ : The fixup adds the high 16 bits of the delta to the 16-bit field at Offset. The 16-bit field represents the high value of a 32-bit word. The low 16 bits of the 32-bit value are stored in the 16-bit word that follows this base relocation. This means that this base relocation occupies two slots.
D'apres mon anglais pas terrible du tout (je sais, c'est tres mauvais en infos), je comprend qu'apres avoir ajoute les 16 bits du Delta aux 16 bits de poids fort d'une donnée de 32 bits , il faut que je recopie les 16 bits de poids faible de ce dword dans un word qui suit le dword ? En clair, la memoire peut se representer sur 48 bits ainsi : 16bits poids fort du dword | 16 bits poids faible du dword | 16 bits poids faible du dword ?? ou j'ai rien compris :(
Ca parait mieux maintenant ou faut que je creer un nouveau thread sur le newsgroup ?? :)