• STATISTIQUES
  • Il y a eu un total de 0 membres et 36500 visiteurs sur le site dans les dernières 24h pour un total de 36 500 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    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
    [FR] PHP Débutant
    Apprendre le PHP par l'exemple, facilement et simplement. Réservé d'abord aux débutants....
    Programmation
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking

  • 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,609
Sujets : 71
Points: 465
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,609
Sujets : 71
Points: 465
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 674 10-12-2013, 12h05
Dernier message: Enila
  [ASM] Problème notfound 3 225 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