Generate Hash :

Code sans GUI qui permet de générer le hash d’une fonction comme par exemple MessageBoxA pour être utilisé dans les shellcodes sur windows.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    char *funcname = NULL;
    DWORD res = 0;

    if(argc != 2)
    {
        printf("USAGE: GenerateHash.exe <funcname>\n");
        printf("EXEMPLE: GenerateHash.exe MessageBoxA\n\n");
        system("PAUSE");
        exit(1);
    }

    else funcname = argv[1];

    __asm
    {
        prepare_hash:
        mov esi, funcname // On fait pointer esi sur funcname.
        xor edi, edi // On met edi à zéro.
        xor eax, eax // On met eax à zéro.
        cld // Clear direction flag : pour être sûr que ça incrémente (de gauche à droite) pendant l'utilisation de lodsb.

        hash:
        lodsb // Charge un byte de esi dans al et incrémente esi.
        test al, al // On regarde si le byte est à zéro.
       
        jz hash_finished // Si oui on a atteint la fin de la string (funcname).
        ror edi, 0xd // Rotation de 13 bits vers la droite de la valeur courante.
        add edi, eax // Ajout du caractère au hash.

        jmp hash // On continue.

        hash_finished: // On a finit.
        mov res, edi // On met le hash dans la variable res.
    }

    printf("\n%s = %.8x\n", funcname, res);

    return 0;
}


 

Ce contenu a été publié dans Shellcode, avec comme mot(s)-clef(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Protected by WP Anti Spam

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.