• STATISTIQUES
  • Il y a eu un total de 2 membres et 14298 visiteurs sur le site dans les dernières 24h pour un total de 14 300 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] PHPFreaks
    PHPFreaks est un site dédié à l'apprentissage et l'enseignement du PHP. Ici vous trouver...
    Programmation
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C++] Problème d'entier non signé
18-04-2012, 17h40 (Modification du message : 19-11-2012, 19h31 par InstinctHack.)
Message : #1
Illu6 Hors ligne
Newbie
*



Messages : 11
Sujets : 2
Points: 0
Inscription : Apr 2012
[C++] Problème d'entier non signé
Salut à tous,
Voilà j'ai un petit problème avec le format PE et le C++, j'essaye de récupérer et d'afficher la "signature" d'un fichier, mais ça cause une erreur, pas à la compilation mais quand je le lance (... a cessé de fonctionner...)
Voilà le code qui, je pense, génère cette erreur:
Code PHP :
                std::cout << "[*] IMAGE_NT_HEADERS\n";
                
std::cout << "\t Signature: " << static_cast<unsigned int>(pNTHeaders->Signature) << "\n " << std::endl
Le "pNTHeaders" vient de
Code PHP :
                PIMAGE_NT_HEADERS pNTHeaders GetPEHeaders(argv[1]); 
et enfin la fonction GetPEHeaders:
Code PHP :
PIMAGE_NT_HEADERS GetPEHeaders(HANDLE hBinary)
{
    
PIMAGE_NT_HEADERS pNTHeaders NULL;
    
PIMAGE_DOS_HEADER pDOSHeader GetDOSHeader(hBinary);
    
pNTHeaders = (PIMAGE_NT_HEADERS)((PUCHAR)pDOSHeader pDOSHeader->e_lfanew); 
    return 
pNTHeaders;

Merci d'avance
(Compilé sous Visual C++, lancé sous Windows 7 64bits)
EDIT: La fonction GetDOSHeader:
Code PHP :
PIMAGE_DOS_HEADER GetDOSHeader(HANDLE hBinary)
{
    
PIMAGE_DOS_HEADER pDOSHeader NULL;
    
pDOSHeader static_cast<PIMAGE_DOS_HEADER>(hBinary);
    return 
pDOSHeader;

+1 (0) -1 (0) Répondre
18-04-2012, 19h16
Message : #2
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: Problème d'entier non signé (C++)
Bonjour,

Ton code ne pourra jamais marcher, étant donné que argv[1] est un pointeur vers le premier caractère de ton argument...
Du coup tu essaies de parser le PE header de ta chaîne de caractère (ou de la stack qu'il y a derrière), ce qui risque de se révéler assez difficile Wink
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
18-04-2012, 19h19
Message : #3
Illu6 Hors ligne
Newbie
*



Messages : 11
Sujets : 2
Points: 0
Inscription : Apr 2012
RE: Problème d'entier non signé (C++)
Salut, ça me paraît bizarre, car les deux première fonctions:
Code PHP :
std::cout << "[*] IMAGE_DOS_HEADER\n";
std::cout << "\t e_magic: " << pDOSHeaders->e_magic << std::endl;
std::cout << "\t e_lfanew: " <<  static_cast<int>(pDOSHeaders->e_lfanew) << " \n" <<  std::endl
me retournent bien:
Citation :
[*] IMAGE_DOS_HEADER
e_magic: 14915
e_lfanew: 1
+1 (0) -1 (0) Répondre
18-04-2012, 19h28
Message : #4
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: Problème d'entier non signé (C++)
Ton e_magic en hexa donne 0x3A43, ce qui donne en little-endian 0x43 0x3A (tu peux vérifier à la calculette) qui correspond à "C:" au lieu du "MZ" attendu.

Et je suppose que "C:" est le début du path du fichier dont tu veux explorer le PE header ce qui rejoint ce que je disais (tu parses le PE header de ta chaîne de caractères ) :')

Ihmo tu devrais faire un LoadLibrary ou un CreateFile/MapViewOfFile pour avoir un handle exploitable Wink
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
18-04-2012, 20h02
Message : #5
Illu6 Hors ligne
Newbie
*



Messages : 11
Sujets : 2
Points: 0
Inscription : Apr 2012
RE: Problème d'entier non signé (C++)
Merci de ton aide, c'était bien le problème.
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Java probleme de colision mysteriou 13 3,536 10-12-2013, 12h05
Dernier message: Enila
  [ASM] Problème notfound 3 1,132 18-12-2012, 23h10
Dernier message: spin

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut