Point d'entrée dans une Dll

thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 - 12 mai 2004 à 10:20
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 - 17 mai 2004 à 11:03
Salut

J'ai une Dll entre les main et j'utilise Dependency pour trouver les points d'entré.

J'ai trois méthodes avec leur adresse d'entrée :
- ConvertMetrics -> 0000B1B0
- ConvertData -> 0000B270
- ConvertWGFiles -> 0000B570

Je voudrais connaitre les paramêtres de ces méthodes et la valeur quelle retourne. Je crois savoir qu'il faut regarder les push et les pops mais connaitre le type de parametre ca me parait un peu plus compliqué

Enfin si quelqu'un peux me diriger vers une doc ou une technique astuce ca me rendrait un grand service.

Nico

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 mai 2004 à 22:40
Si tu edites la dll tu peux voir le nbr de params par la signature de chaque fonction mais sans doc aucun moyen de savoir ce qu'ils sont.

ciao...
BruNews, Admin CS, MVP Visual C++
0
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
13 mai 2004 à 11:11
Ha oui ! J'oubliais.
Je ne connais que les principe de base en assembleur
J'en ai fait un peu à l'époque sur 6502 (Apple II), alors je suis un peux paumé.

Je vois bien des push dans les registre mais comment connaitre le type

Voici un extrait de la function :

Exported fn(): ConvertData - Ord:0003h
:10001100 64A100000000 mov eax, dword ptr fs:[00000000]
:10001106 6AFF push FFFFFFFF
:10001108 680E640010 push 1000640E
:1000110D 50 push eax
:1000110E 64892500000000 mov dword ptr fs:[00000000], esp
:10001115 81EC84010000 sub esp, 00000184
:1000111B 53 push ebx
:1000111C 56 push esi
:1000111D 8BB4249C010000 mov esi, dword ptr [esp+0000019C]
:10001124 33DB xor ebx, ebx
:10001126 85F6 test esi, esi
:10001128 7508 jne 10001132
:1000112A 83C8FF or eax, FFFFFFFF
:1000112D E902020000 jmp 10001334

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001128(C)
|
:10001132 8B460C mov eax, dword ptr [esi+0C]
:10001135 A3F09B0010 mov dword ptr [10009BF0], eax
:1000113A 8B4E08 mov ecx, dword ptr [esi+08]
:1000113D 51 push ecx

* Reference To: KERNEL32.lstrlenA, Ord:0308h
|
:1000113E FF1518700010 Call dword ptr [10007018]
:10001144 3D18010000 cmp eax, 00000118
:10001149 720A jb 10001155
:1000114B B801000000 mov eax, 00000001
:10001150 E9DF010000 jmp 10001334

Merci

Nico
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
16 mai 2004 à 19:53
la fonction commence par installer un exception handler pour la sécurité du programme et interroge la longueur (lstrlen) d'une chaine,c'est tout,c'est un peu court.

ToutEnmasm
0
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
17 mai 2004 à 11:03
Un peu cours je sais je ne voyais pas coller tout le code.

Merci pour la réponse, je réalise que je suis encore plus que débutant en asm !

Sinon j'ai essayé de trouver un décompilateur qui permettrait de trduire l'asm en un language un peu plus lisible (comme le c). J'ai trouvé Dcc mais il refuse de me décompiler cette dll.

Je crois que je vais devoir m'y mettre (ma copine va me maudire).

Donc plutôt que de faire le ch***r et de filer le code assembleur pour que l'on me mache le travail j'ai deux questions :

- Connais tu un bon tutorial asm en français (si possible)?

- Existe il un décompilateur qui permettrait de traduire l'asm en c, car même si le code généré est de mauvaise qualité, je serai plus enclin à le comprendre.

Merci

Nico
0
Rejoignez-nous