Salut à toi visiteur !
Inscris toi en moins de 10 secondes pour profitez pleinement du site et partager avec la communauté ! S'inscrire


code auto-modifiant asm


#1
Bonjour,

J'ai déjà posté ce code sur le site Developpez mais je tiens à vous le faire partager vu que je l'avais bien commenté, ça pourra aider les débutants à comprendre.
Ce code est à regarder au débugger, sinon vous pigerez que dal. Je vous recommande "Immunity debugger' selon moi le meilleur.
ps: Tout les codes asm que j'ai posté sur ce forum son à compiler avec Fasm.

Code :
format PE console 5.0 include 'include/windows/win32a.inc'   ;-------------------------------------------------- section '.text' code readable writeable executable ;--------------------------------------------------   entry $       mov    edi,texte     call    strlen     mov    [texte_len],ecx   begin:     mov    esi,mod_addr     mov    ebp,mod_addr_len     xor    dl,dl     not    dl      @@:     inc    dl     inc    ebp     add    esi,4     cmp    bl,dl     jnz    @b       mov    esi,[esi]     mov    edi,y1     xor    ecx,ecx     mov    cl,12            ;Padding de la zone afin d'éviter     mov    al,0x90            ;des bytes restant de précédantes     repnz    stosb            ;instructions.     sub    edi,12     mov    cl,byte [ebp]     repnz    movsb            ;Injection d'un des "mod(nbr)".       mov    esi,texte     mov    edi,txtbuf     mov    ecx,[texte_len]     @re:     mov    dl,4      @@:     mov    al,[esi]     inc    esi     ror    eax,8     dec    dl     jnz    @b      y1:     rd 3                ;Zone d'injection des "mod(nbr)".     mov    [edi],eax     add    edi,4     sub    ecx,4     jnz    @re       push    ebx     cinvoke    printf,forms,txtbuf     cinvoke    puts,crlf     invoke    Sleep,1000     pop    ebx      z1:                ;Gestion de la fonction:     inc    bl            ;"modifier db 0,1,2,3,4,5,4,3,2,1,0"      z2:                ;par un "inc/dec bl" automodifiant.     cmp    bl,5     jnz    z3     mov    edi,z1     mov    ax,0xCBFE        ;"dec bl" opcode.     cmp    bl,5     jz    @f     sub    ah,8            ;Modificateur d'opcode en "inc bl".      @@:     stosw                ;Storage de l'opcode à "z1".     mov    esi,z2     mov    ax,0xFB80        ;"cmp bl" opcode.     stosw                ;Storage de l'opcode à "z2".     xor    al,al            ;"0" opcode suite.     cmp    bl,5     jz    @f     add    al,5            ;"5" opcode suite.      @@:     stosb                ;Storage à "z2" de la suite de      z3:                ;l'opcode "cmp bl" donc 5 ou 0.     dec    [nbrloop]     jnz    begin       invoke    ExitProcess,0      strlen:     xor    ecx,ecx     xor    al,al      @@:     inc    edi     inc    ecx     cmp    byte [edi],al     jnz    @b     ret   ;-[Data]------------------------------------------------------------------   txtbuf rb 1024   texte db 'A table is a form of furniture with a flat horizontal upper surface used to support objects of interest, for storage, show, and/or manipulation. The surface must be held stable; for reasons of simplicity, this is usually done by support from below by either a column, a "base", or at least three columnar "stands". In special situations, table surfaces may be supported from a nearby wall, or suspended from above. wikipedia',0   texte_len dd 0   mod_addr dd 0,0,mod1,mod2,mod3,mod4,mod5    ;adresse opcode mod_addr_len db 0,0,4,4,8,8,12            ;longueur opcode   mod1 dd 0x08C0C166                ;rol ax,8 mod2 dd 0x9010C0C1                ;rol eax,16 mod3 dd 0x08C0C166,0x9010C0C1            ;mix mod4 dd 0x9010C0C1,0x08C0C166            ;mix mod5 dd 0x08C0C166,0x9010C0C1,0x08C0C166    ;mix   nbrloop db 11 crlf db 13,10,0   forms db '%s',10,0   ;-[Import]----------------------------------------------------------------   data import   library kernel32,'kernel32.dll',\     msvcrt,'msvcrt.dll',\     user32,'user32.dll',\     wsock32,'ws2_32.dll'   include 'include/windows/api/kernel32.inc' include 'include/windows/api/user32.inc' include    'include/windows/api/wsock32.inc'   import msvcrt,\ printf,'printf',\ puts,'puts'   end data
Connexion ou Inscription pour voir ce contenu ! C'est rapide ;)
[+] 1 utilisateur dit Merci à xddj pour ce message


Messages dans ce sujet
code auto-modifiant asm - par xddj - 23-02-2019, 22:25

Atteindre :