[source C] Fonctions exportées par une DLL

Tout sur les langages de programmation.

[source C] Fonctions exportées par une DLL

Messagepar Neitsa » 19 Août 2005, 17:48

Hi !

Si ca intéresse qqu'un je viens de faire un "portage" d'un ancien prog asm en C.

Ca permet de retrouver les fonctions exportées par une DLL avec :

- les infos sur la table d'export
- Numéro ordinal de fonction
- Nom de fonctions
- Pointeur (RVA) de fonction
- Reférence forwardée (si existante)

Rien de bien spécial mais ca peut toujours aider (notamment pour la manip des pointeurs sur le PE)...
J'ai essayé de commenter le code le plus possible, mais en cas de doute demandez moi, sinon : Pecoff.pdf, Matt pietrek et Russ Osterlund papers...

Sources + proggy:

http://neitsabes.online.fr/PROG/C/ExportedFunc.rar
Neitsa
 

Messagepar Etranger » 19 Août 2005, 21:04

Merci Neitsa , le plus sympa c'est que tu livre toujour tes sources :)

Bonne soiree
Voyager c'est voir les choses d'un angle différent
Etranger
Crackeur de folie !!!!
Crackeur de folie !!!!
 
Messages: 438
Inscription: 11 Août 2004, 17:53

Messagepar Neitsa » 20 Août 2005, 01:43

Merci Etranger :D

Bon je viens signaler une erreur :? a priori ca doit être la seule:

fonction fOpenDialog

Code: Tout sélectionner
if ( GetOpenFileName (&ofn) == 0 )
   {
      //handling error
      if (CommDlgExtendedError == 0)
      {


doit être :

Code: Tout sélectionner
if ( GetOpenFileName (&ofn) == 0 )
   {
      //handling error
      if (CommDlgExtendedError[color=red]()[/color] == 0)
      {


j'ai oublié les '()' après CommDlgExtendedError... (ce qui m'arrive souvent avec les fonction ayant void pour param)

Bon ca n'empêche pas le prog de fonctionner (juste un message d'erreur qui n'a pas lieu d'être si vous pressez CANCEL sur le dialogue d'ouverture de fichier), c'est surtout pour ceux qui veulent recompiler les sources.
Neitsa
 

Messagepar Etranger » 20 Août 2005, 16:50

Mais qu'elle est la difference entre "CommDlgExtendedError" et "CommDlgExtendedError()" :?:
Voyager c'est voir les choses d'un angle différent
Etranger
Crackeur de folie !!!!
Crackeur de folie !!!!
 
Messages: 438
Inscription: 11 Août 2004, 17:53

Messagepar mastermatt29 » 20 Août 2005, 17:57

CommDlgExtendedError() signifie que tu appelle une fonction à laquelle tu ne passe aucun paramètres. Tu pourrai très bien avoir une variable ayant pour nom CommDlgExtendedError et là ca serait la valeur de cette variable qui serait comparée à 0, et non pas la valeur de retour de la fonction CommDlgExtendedError() !
Avatar de l’utilisateur
mastermatt29
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 149
Inscription: 06 Juin 2005, 06:26
Localisation: Nowhere...

Messagepar Etranger » 20 Août 2005, 18:42

Oui mais il ne me semble pas que Neitsa ai un variable du nom de CommDlgExtendedError ?
Voyager c'est voir les choses d'un angle différent
Etranger
Crackeur de folie !!!!
Crackeur de folie !!!!
 
Messages: 438
Inscription: 11 Août 2004, 17:53

Messagepar mastermatt29 » 20 Août 2005, 18:55

oui mais théoriquement tu ne pourra pas appeler la fonction si tu ne met pas les parenthèses
Avatar de l’utilisateur
mastermatt29
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 149
Inscription: 06 Juin 2005, 06:26
Localisation: Nowhere...

Messagepar Etranger » 20 Août 2005, 18:58

hein d'accord :?

Merci
Voyager c'est voir les choses d'un angle différent
Etranger
Crackeur de folie !!!!
Crackeur de folie !!!!
 
Messages: 438
Inscription: 11 Août 2004, 17:53

Messagepar Neitsa » 20 Août 2005, 21:56

Hello,

Mastermatt à bien expliqué le problème mais c'est bizarre, le compilo ne donnait pas d'erreur...

Encore un mystère :D
Neitsa
 

Messagepar mastermatt29 » 20 Août 2005, 22:21

bizarre tu utilise quoi ? Moi avec GCC 3.4.2 (Dev-Cpp 4.9.9.2) j'ai plusieurs Warning ! (des utilisations de NULL pour des entiers ou des DWORD) Mais exact aucune erreur ni warning par rapport aux parenthèses !

PS : pour ceux qui compilent avec Dev-C++, ne pas oublier de linker libcomctl32.a
Avatar de l’utilisateur
mastermatt29
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 149
Inscription: 06 Juin 2005, 06:26
Localisation: Nowhere...


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité