Copy Link
Add to Bookmark
Report

29A Issue 01 02 02

eZine's profile picture
Published in 
29A
 · 4 years ago

  

Encryption: practice
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>
Blade Runner

This will be a fix section in 29A in which we'll see many of the weirdest
decryption routines, and the way to use them so as to decrypt its owners.

In this first issue i'll center on easy viruses with no antidebugging, so
that people who've just started may understand everything easily. In fur-
ther issues i'll include more difficult viruses, and then this will get
pretty interesting ;-)


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
²² 1.-VIRUS:ABR-1171.COM infected by PS-MPC.c virus ²²±±
²² 2.-VIRUS:AC-255.COM infected by Arcv.Made.225 virus ²²±±
²² 3.-VIRUS:AC-330.COM infected by Arcv.330 virus ²²±±
²² 4.-VIRUS:AC-839.COM infected by Arcv.Friends virus ²²±±
²² 5.-VIRUS:AC-916.COM infected by Arcv.Joanna {1} virus ²²±±
²² 6.-VIRUS:ANTIMIT.COM infected by Anti-Mit virus ²²±±
²² 7.-VIRUS:ARARA.COM infected by Arara virus ²²±±
²² 8.-VIRUS:ATOMANT.COM the ATOMANT.UNK1 virus or variant ²²±±
²² 9.-VIRUS:AUS-369B.COM Found the AUSSIE.PARASITE.369 ²²±±
²² 10.-VIRUS:BETA0575.COM infected by Beta_Boys virus ²²±±
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 1 VIRUS:ABR-1171.COM infected by PS-MPC.c virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
S Contains a routine to search for executable (.COM or .EXE) files.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
O Found code that can be used to overwrite/move a program in memory.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
T Incorrect timestamp. Some viruses use this to mark infected files.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Let's disassemble the virus; i personally use DOS's debug for this kinda
jobs, but use whatever debugger you like.

-u100
14CF:0100 E99004 JMP 0593 ; Jumpt to the address 593h
14CF:0103 3F AAS ; The rest of the code, as you
14CF:0104 95 XCHG BP,AX ; can see, is encrypted and has
14CF:0105 D7 XLAT ; no sense at all %-)
14CF:0106 29A6C13F SUB [BP+3FC1],SP
14CF:010A 8FD7 POP DI
14CF:010C 29A2C13F SUB [BP+SI+3FC1],SP
14CF:0110 16 PUSH SS
14CF:0111 D7 XLAT
14CF:0112 7F6E JG 0182

Now we go to address 593h and find rest of the decrypted code:

-u593
14CF:0593 BE0001 MOV SI,0100 ; 100h address of actual jmp 593h
14CF:0596 56 PUSH SI ; Save SI
14CF:0597 B94A02 MOV CX,024A ; Number of bytes to decrypt
14CF:059A C70429D8 MOV WORD PTR [SI],D829 ; d829 at 100h
14CF:059E C64402C1 MOV BYTE PTR [SI+02],C1 ; c1h at 102h
14CF:05A2 8134C1D7 XOR WORD PTR [SI],D7C1 ; d7c1h at SI. If we look
; at 100h we'll find a
; call c212h

If we now look at the header being decrpyted, we find that at address
100h, instead of a jmp 593h there's this instruction: call c212h.

-u100
14CF:0100 E80FC1 CALL C212 ; 100h address right now
14CF:0103 3F AAS

We continue decrpyting...

14CF:05A6 46 INC SI ; Increase SI, we get 101h
14CF:05A7 46 INC SI ; Increase SI, we get 102h
14CF:05A8 E2F8 LOOP 05A2 ; We decrpyt 24ah bytes which in CX
14CF:05AA 31F6 XOR SI,SI; Get a 0 at SI
14CF:05AC 31C9 XOR CX,CX; Get a 0 at CX
14CF:05AE C3 RET
14CF:05AF 0000 ADD [BX+SI],AL

And we finally have the decrypted virus and look into it; this decryption
method is not difficult; it's just tracing the code as we have no anti-
debugging catch.

The disassembled code starting at 100h looks like this after decrypted;
look at the original 100h and this one to see that the virus is ready for
execution.

-u100
14CF:0100 E80F00 CALL 0112
14CF:0103 E85400 CALL 015A
14CF:0106 E87100 CALL 017A
14CF:0109 E84E00 CALL 015A
14CF:010C E87500 CALL 0184
14CF:010F E8D700 CALL 01E9
14CF:0112 BEB904 MOV SI,04B9
14CF:0115 8B1C MOV BX,[SI]
14CF:0117 0BDB OR BX,BX
14CF:0119 743E JZ 0159
14CF:011B B8DD34 MOV AX,34DD
14CF:011E BA1200 MOV DX,0012


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 2 VIRUS: AC-255.COM infected by Arcv.Made.225 virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

-u100
14CF:0100 E90500 JMP 0108 ; Let's jump to 108h
14CF:0103 CD20 INT 20
14CF:0105 90 NOP
14CF:0106 0909 OR [BX+DI],CX
14CF:0108 E80000 CALL 010B ; 10bh -> next instruction

-u
14CF:0118 53 PUSH BX ; We save BX
14CF:0119 8D9C4801 LEA BX,[SI+0148] ; At BX, data at SI+148h
14CF:011D 8B941601 MOV DX,[SI+0116] ; Same to DX
14CF:0121 B9BC00 MOV CX,00BC ; Number of bytes to decrypt
14CF:0124 8B07 MOV AX,[BX]
14CF:0126 33C2 XOR AX,DX ; Calculates AX respect of DX
14CF:0128 86E0 XCHG AH,AL ; XCHanGe AL with AH
14CF:012A 33C2 XOR AX,DX ; Calculates AX respect of DX
14CF:012C 86E0 XCHG AH,AL ; XCHanGe AL with AH
14CF:012E 8907 MOV [BX],AX ; We save AX at BX
14CF:0130 83C302 ADD BX,+02 ; And add 2 to it
14CF:0133 E2EF LOOP 0124 ; Decrypting...
14CF:0135 5B POP BX
14CF:0136 C3 RET
14CF:0137 E8DEFF CALL 0118

Text that appears after decrypting virus at 1e0h:

14CF:01E0 CD 21 B4 3E CD 21 FF E5-B4 3F CD 21 C3 4D 61 64 .!.>.!...?.!.Mad
14CF:01F0 65 20 69 6E 20 45 6E 67-6C 61 6E 64 00 00 2A 2E e in England..*.


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 3 VIRUS:AC-330.COM infected by Arcv.330 virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
S Contains a routine to search for executable (.COM or .EXE) files.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
E Flexible Entry-point. The code seems to be designed to be linked
on any location within an executable file. Common for viruses.
J Suspicious jump construct. Entry point via chained or indirect
jumps. This is unusual for normal software but common for viruses.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

14CF:0100 E90200 JMP 0105 ; Jump to 105h

-u105
14CF:0105 E81301 CALL 021B ; Call to address 21bh
14CF:0108 E57B IN AX,7B; Give a look to this address (108h)
14CF:010A 9C PUSHF

-u21b
14CF:021B E80000 CALL 021E ; Trace the call
14CF:021E B91301 MOV CX,0113 ; Length = 113h bytes
14CF:0221 5E POP SI ; Pop the delta offset into SI
14CF:0222 81EE2102 SUB SI,0221 ; SUBstract 221h from SI
14CF:0226 8DBC0B01 LEA DI,[SI+010B]; We read address SI+10bh
14CF:022A 803551 XOR BYTE PTR [DI],51 ; Calculate calue at
14CF:022D 47 INC DI ; address 108h, what
14CF:022E E2FA LOOP 022A ; <Ä¿ leaves 'B4' at that address
14CF:0230 C3 RET ; <ÄÄÄ¿ ÀÄ Dencrypting
ÀÄÄ Return to 108h

-u108
14CF:0108 B42A MOV AH,2A ; Decrypted 108h
14CF:010A CD21 INT 21
14CF:010C 80FE07 CMP DH,07


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 4 VIRUS:AC-839.COM infected by Arcv.Friends virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
E Flexible Entry-point. The code seems to be designed to be linked
on any location within an executable file. Common for viruses.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Warning: this virus features two decryption routines...

14CF:0100 E9FD01 JMP 0300 ; jmp to address 300h
14CF:0103 CD20 INT 20

-u300
14CF:0300 E81403 CALL 0617 ; Call address 617h
14CF:0303 E0EE LOOPNZ 02F3 ; Remember instruction at 303h
14CF:0305 0AF3 OR DH,BL ; still encrypted
14CF:0307 0818 OR [BX+SI],BL
14CF:0309 D0C1 ROL CL,1

-u617
14CF:0617 E80400 CALL 061E ; Another call... to 61eh...
14CF:061A 0100 ADD [BX+SI],AX
14CF:061C DDFF ESC 2F,DI

-u61e
14CF:061E 5B POP BX ; POP BX out of the stack
14CF:061F 81EB7816 SUB BX,1678 ; SUBstract 1678h bytes
14CF:0623 81C33012 ADD BX,1230 ; We ADD to BX 1230h bytes
14CF:0627 53 PUSH BX ; And save BX in the stack
14CF:0628 5F POP DI ; POP BX into DI
14CF:0629 B94515 MOV CX,1545 ; Get 1545h bytes into CX
14CF:062C 81E93112 SUB CX,1231 ; SUBstract 1231h to CX
14CF:0630 80B5310108 XOR BYTE PTR [DI+0131],08
; After running the xor
; we're left with [303h]
; being e8 ee (call df4h)
14CF:0635 47 INC DI ; INCrease DI in 1
14CF:0636 B20F MOV DL,0F ; MOVe 0fh to dl
14CF:0638 E2F6 LOOP 0630 ; Decrypt a block
14CF:063A 90 NOP ; at address 303h
14CF:063B 90 NOP
14CF:063C 90 NOP
14CF:063D 90 NOP
14CF:063E C3 RET ; Return to 303h...
[...]
14CF:0303 E8E602 CALL 05EC ; CALL to 5ech

-u5ec
14CF:05EC E80000 CALL 05EF ; Second decrypting routine
14CF:05EF 5E POP SI ; Restore SI
14CF:05F0 81EE1E04 SUB SI,041E ; SUBstract 41eh from SI
14CF:05F4 8DBC3501 LEA DI,[SI+0135] ; Let's take address SI+135h
14CF:05F8 B9E602 MOV CX,02E6 ; CX=length to be decrypted.
14CF:05FB 8A05 MOV AL,[DI] ; Get [DI] in AL
14CF:05FD 8AE0 MOV AH,AL ; Get AL in AH
14CF:05FF 51 PUSH CX ; Save it ont top of the stack
14CF:0600 B104 MOV CL,04 ; Let CL be 4
14CF:0602 D2EC SHR AH,CL ; Shift AH CL-times (4)
14CF:0604 D2E0 SHL AL,CL ; Same on AH but the other way
14CF:0606 0AC4 OR AL,AH ; Store AH next to AL
14CF:0608 8805 MOV [DI],AL ; Store AL at [DI]
14CF:060A 47 INC DI ; INCrease DI in 1
14CF:060B 59 POP CX ; Restore the no. of bytes to CX
14CF:060C E2ED LOOP 05FB ; Decrypting...
14CF:060E C3 RET ; Return to 306h, decrypted by now

-u
14CF:0306 BF0001 MOV DI,0100
14CF:0309 8D9C8003 LEA BX,[SI+0380]
14CF:030D B90200 MOV CX,0002
14CF:0310 87F3 XCHG SI,BX
14CF:0312 FC CLD
14CF:0313 F2 REPNZ
14CF:0314 A5 MOVSW
14CF:0315 87F3 XCHG SI,BX
14CF:0317 C684C20500 MOV BYTE PTR [SI+05C2],00
14CF:031C C684780500 MOV BYTE PTR [SI+0578],00
14CF:0321 B90500 MOV CX,0005
14CF:0324 8A947004 MOV DL,[SI+0470]


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 5 VIRUS:AC-916.COM infected by Arcv.Joanna {1} virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
A Suspicious Memory Allocation. The program uses a non-standard
way to search for, and/or allocate memory.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
L The program traps the loading of software. Might be a
virus that intercepts program load to infect the software.
M Memory resident code. The program might stay resident in memory.
U Undocumented interrupt/DOS call. The program might be just tricky
but can also be a virus using a non-standard way to detect itself.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
T Incorrect timestamp. Some viruses use this to mark infected files.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

-u
14CF:0100 E90200 JMP 0105 ; Jump to address 105h
14CF:0103 CD20 INT 20
14CF:0105 BE1601 MOV SI,0116 ; 116h = start decrypting.
14CF:0108 B9BF01 MOV CX,01BF ; Size = 1bfh bytes
14CF:010B 2E CS:
14CF:010C 81040B28 ADD WORD PTR [SI],280B; ADD 280bh to SI
14CF:0110 83C602 ADD SI,+02 ; Now ADD 2
14CF:0113 49 DEC CX ; SUBstract 1 from CX,
; which will decrypt it
14CF:0114 75F5 JNZ 010B ; Until CX=0

When CX comes to 0 bytes, the virus will be decrypted. Here you have it
from 116h, encrypted, with CX=1bfh

-u116
14CF:0116 DDD8 FSTP ST(0)
14CF:0118 F5 CMC
14CF:0119 2F DAS
14CF:011A 22F1 AND DH,CL
14CF:011C F662E5 MUL BYTE PTR [BP+SI-1B]
14CF:011F F6FB IDIV BL
14CF:0121 E514 IN AX,14
14CF:0123 E6FC OUT FC,AL
14CF:0125 8FFA POP DX
14CF:0127 D6 DB D6
14CF:0128 C2EB75 RET 75EB

And now decrypted, with 0 in CX... its much more legible, huh? ;-)

-u116
14CF:0116 E80000 CALL 0119
14CF:0119 58 POP AX
14CF:011A 2D1901 SUB AX,0119
14CF:011D 8BF0 MOV SI,AX
14CF:011F 1E PUSH DS
14CF:0120 06 PUSH ES
14CF:0121 0E PUSH CS
14CF:0122 1F POP DS
14CF:0123 0E PUSH CS
14CF:0124 07 POP ES
14CF:0125 B805FF MOV AX,FF05
14CF:0128 CD13 INT 13


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 6 VIRUS:ANTIMIT.COM infected by Anti-Mit virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
S Contains a routine to search for executable (.COM or .EXE) files.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
D Disk write access. The program writes to disk without using DOS.
T Incorrect timestamp. Some viruses use this to mark infected files.
J Suspicious jump construct. Entry point via chained or indirect
jumps. This is unusual for normal software but common for viruses.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

14CF:0100 E80500 CALL 0108 ; CALL to address 108h

-u108
14CF:0108 BE2A01 MOV SI,012A ; Let's get 12ah in SI
14CF:010B 8A260701 MOV AH,[0107] ; Get [107h] into AH
14CF:010F EB12 JMP 0123 ; Address 123h

-u123
14CF:0123 8BFE MOV DI,SI ; Copy SI into DI
14CF:0125 B94F01 MOV CX,014F ; CX = 14fh bytes
14CF:0128 EBE8 JMP 0112 ; Jump to 112h

-u112
14CF:0112 AC LODSB ; LOaD a String of Bytes
14CF:0113 32C4 XOR AL,AH ; Store AH next to AL
14CF:0115 AA STOSB ; STOre a String of Bytes
14CF:0116 E2FA LOOP 0112 ; Decrypting...

Dump from 100h, after running over loop 112h, therefore decrypted:

-d100
14CF:0100 E8 05 00 90 EB 4D 90 1B-BE 2A 01 8A 26 07 01 EB .....M...*..&...
14CF:0110 12 90 AC 32 C4 AA E2 FA-B4 19 CD 21 8A F0 B4 0E ...2.......!....
14CF:0120 CD 21 C3 8B FE B9 4F 01-EB E8 4D 49 54 20 53 75 .!....O...MIT Su
14CF:0130 78 21 20 24 11 02 2A 2E-43 4F 4D 00 5B 41 6E 74 x! $..*.COM.[Ant
14CF:0140 69 2D 4D 49 54 5D 00 46-8C 72 73 D8 53 74 72 8C i-MIT].F.rs.Str.

For you the curious, virus was like this when encrypted:

-d100
14CF:0100 E8 05 00 90 EB 4D 90 1B-BE 2A 01 8A 26 07 01 EB .....M...*..&...
14CF:0110 12 90 AC 32 C4 AA E2 FA-B4 19 CD 21 8A F0 B4 0E ...2.......!....
14CF:0120 CD 21 C3 8B FE B9 4F 01-EB E8 56 52 4F 3B 48 6E .!....O...VRO;Hn
14CF:0130 63 3A 3B 3F 0A 19 31 35-58 54 56 1B 40 5A 75 6F c:;?..15XTV.@Zuo
14CF:0140 72 36 56 52 4F 46 1B 5D-97 69 68 C3 48 6F 69 97 r6VROF.].ih.Hoi.


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 7 VIRUS:ARARA.COM infected by Arara virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
G Garbage instructions. Contains code that seems to have no purpose
other than encryption or avoiding recognition by virus scanners.
@ Encountered instructions which are not likely to be generated by
an assembler, but by some code generator like a polymorphic virus.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

-u
14CF:0100 E91500 JMP 0118 ; Jump to address 118h
14CF:0103 9E SAHF

-u118
14CF:0118 90 NOP
14CF:0119 F8 CLC ; CLear Carry flag
14CF:011A BBC904 MOV BX,04C9 ; Get 4c9h in BX
14CF:011D 87CB XCHG CX,BX ; XCHanGe BX for CX
14CF:011F F8 CLC ; CLear Carry flag
14CF:0120 BE2B01 MOV SI,012B ; Start of decryption
14CF:0123 82048F ADD BYTE PTR [SI],8F ; ADD 8f bytes to
14CF:0126 90 NOP ; address 12bh (59h)
14CF:0127 F5 CMC ; CoMplement Carry flag
14CF:0128 46 INC SI ; INCrease by 1 SI
14CF:0129 E2F8 LOOP 0123 ; Decrypting...
14CF:012B*59* POP CX

Virus was like this when encrypted...

-d200
14CF:0200 25 8B 2B F1 71 3E 92 7F-90 C9 2C 70 6F F4 64 70 %.+.q>....,po.dp
14CF:0210 70 54 CF CB CA 29 71 C8-B1 3E 92 25 AF 3E 92 CA pT...)q..>.%.>..
14CF:0220 29 71 B4 B1 2B 8F 6E 3E-92 7F 90 7F 78 C7 34 CC )q..+.n>....x.4.
14CF:0230 B2 C3 B2 C3 B2 CE FC F7-4C 74 F7 51 FA F7 4C 74 ........Lt.Q..Lt

And now, decrypted, it's this way:

-d
14CF:0200 B4 1A BA 80 00 CD 21 0E-1F 58 BB FF FE 83 F3 FF ......!..X......
14CF:0210 FF E3 5E 5A 59 B8 00 57-40 CD 21 B4 3E CD 21 59 ..^ZY..W@.!.>.!Y
14CF:0220 B8 00 43 40 BA 1E FD CD-21 0E 1F 0E 07 56 C3 5B ..C@....!....V.[
14CF:0230 41 52 41 52 41 5D 8B 86-DB 03 86 E0 89 86 DB 03 ARARA]..........


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 8 VIRUS:ATOMANT.COM the ATOMANT.UNK1 virus or variant ³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
A Suspicious Memory Allocation. The program uses a non-standard
way to search for, and/or allocate memory.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
E Flexible Entry-point. The code seems to be designed to be linked
on any location within an executable file. Common for viruses.
L The program traps the loading of software. Might be a
virus that intercepts program load to infect the software.
U Undocumented interrupt/DOS call. The program might be just tricky
but can also be a virus using a non-standard way to detect itself.
Z EXE/COM determination. The program tries to check whether a file
is a COM or EXE file. Viruses need to do this to infect a program.
O Found code that can be used to overwrite/move a program in memory.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
1 Found instructions which require a 80186 processor or above.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

14CF:0100 E99F10 JMP 11A2 ; Jump to 11a2h
14CF:0103 0D0A4D OR AX,4D0A

-u11a2
14CF:11A2 55 PUSH BP ; Save BP
14CF:11A3 E80000 CALL 11A6 ; Call next address
14CF:11A6 5D POP BP ; Restore BP (delta offset)
14CF:11A7 51 PUSH CX ; Save CX
14CF:11A8 50 PUSH AX ; Save AX
14CF:11A9 2E CS:
14CF:11AA 8B46FA MOV AX,[BP-06] ; Get [BP-6] into AX
14CF:11AD 8BF5 MOV SI,BP ; MOVe BP into SI
14CF:11AF 83C618 ADD SI,+18 ; ADD 18h to SI
14CF:11B2 B94108 MOV CX,0841 ; Number of bytes to decrypt
14CF:11B5 2E CS:
14CF:11B6 3004 XOR [SI],AL ; Get AL in [SI]
14CF:11B8 2E CS:
14CF:11B9 0024 ADD [SI],AH ; ADD AH to [SI]
14CF:11BB 46 INC SI ; INCrease SI by 1
14CF:11BC E2F7 LOOP 11B5 ; Dcrypt from 11beh
14CF:11BE A5 MOVSW
14CF:11BF 334F33 XOR CX,[BX+33]

Part of the decrypted text...

14CF:1850 0D 0A 4D 43 20 48 61 6D-6D 65 72 20 72 61 70 2D ..MC Hammer rap-
14CF:1860 73 7A 74 A0 72 20 82 73-20 50 45 50 53 49 20 93 szt.r .s PEPSI .
14CF:1870 72 81 6C 74 2C 20 64 65-20 6D 6F 73 74 20 6B 69 r.lt, de most ki
14CF:1880 63 73 65 72 82 6C 74 81-6B 20 61 20 50 45 50 53 cser.lt.k a PEPS

How was it like when encrypted? Like this :-)

14CF:1850 B2 B1 F2 C8 A7 CF E6 12-12 EA 19 A7 19 E6 17 D2 ................
14CF:1860 18 01 1B 27 19 A7 09 18-A7 F7 CA F7 F8 CE A7 38 ...'...........8
14CF:1870 19 06 13 1B D3 A7 EB EA-A7 12 14 18 1B A7 10 EE ................
14CF:1880 E8 18 EA 19 09 13 1B 06-10 A7 E6 A7 F7 CA F7 F8 ................


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 9 VIRUS:AUS-369B.COM Found the AUSSIE.PARASITE.369 virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
F Suspicious file access. Might be able to infect a file.
S Contains a routine to search for executable (.COM or .EXE) files.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
E Flexible Entry-point. The code seems to be designed to be linked
on any location within an executable file. Common for viruses.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

-u
14CF:0100 E9D200 JMP 01D5 ; Jump to 1d5h

-u1d5
14CF:01D5 B9CD00 MOV CX,00CD ; No of bytes in CX
14CF:01D8 BE2301 MOV SI,0123 ; Address 123h in SI
14CF:01DB 03360101 ADD SI,[0101] ; ADD [101h] to SI
14CF:01DF 803401 XOR BYTE PTR [SI],01 ; MOVe 01 into [SI]
14CF:01E2 46 INC SI ; INCrease SI by 1
14CF:01E3 E2FA LOOP 01DF ; Decrypt from 1f6h...
14CF:01E5 BE3402 MOV SI,0234 ; Address 234h in SI
14CF:01E8 03360101 ADD SI,[0101] ; ADD [101h] to SI
14CF:01EC B93C00 MOV CX,003C ; No of bytes to decrypt
14CF:01EF 803401 XOR BYTE PTR [SI],01 ; MOVe 01 into SI
14CF:01F2 46 INC SI ; INCrease SI by 1
14CF:01F3 E2FA LOOP 01EF ; Decrypt from 306h

Decrypted text...

-d280
14CF:0280 89 D6 80 3C E3 75 3A EB-9D BA 0C 01 24 2A 2E 43 ...<.u:.....$*.C
14CF:0290 4F 4D 00 5B 41 75 73 73-69 65 20 50 61 72 61 73 OM.[Aussie Paras
14CF:02A0 69 74 65 20 76 49 52 55-53 20 20 76 2E 20 31 2E ite vIRUS v. 1.
14CF:02B0 31 5D 0D 5B 62 4C 41 4D-45 20 6F 54 48 45 52 53 1].[bLAME oTHERS
14CF:02C0 5D B8 00 57 CD 21 51 52-B9 CD 00 BE 23 01 03 36 ]..W.!QR....#..6

And encrypted...

-d280
14CF:0280 88 D7 81 3D E2 74 3B EA-9C BB 0D 00 25 2B 2F 42 ...=.t;.....%+/B
14CF:0290 4E 4C 01 5A 40 74 72 72-68 64 21 51 60 73 60 72 NL.Z@trrhd!Q`s`r
14CF:02A0 68 75 64 21 77 48 53 54-52 21 21 77 2F 21 30 2F hud!wHSTR!!w/!0/
14CF:02B0 30 5C 0C 5A 63 4D 40 4C-44 21 6E 55 49 44 53 52 0\.ZcM@LD!nUIDSR
14CF:02C0 5C B9 00 57 CD 21 51 52-B9 CD 00 BE 23 01 03 36 \..W.!QR....#..6


²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
³³³³³ 10 VIRUS:BETA0575.COM infected by Beta_Boys virus ³³³³³
²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
c No checksum / recovery information (Anti-Vir.Dat) available.
# Found a code decryption routine or debugger trap. This is common
for viruses but also for some copy-protected software.
E Flexible Entry-point. The code seems to be designed to be linked
on any location within an executable file. Common for viruses.
L The program traps the loading of software. Might be a
virus that intercepts program load to infect the software.
T Incorrect timestamp. Some viruses use this to mark infected files.
B Back to entry point. Contains code to re-start the program after
modifications at the entry-point are made. Very usual for viruses.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

-u100
14CF:0100 E90000 JMP 0103 ; Jump to 103h, a call
14CF:0103 E80100 CALL 0107 ; CALL address 107h

-u107
14CF:0107 5D POP BP ; Restore BP (delta offset)
14CF:0108 81ED0301 SUB BP,0103 ; SUBstract 103h to BP
14CF:010C 8D9E2001 LEA BX,[BP+0120] ; [BP+0120] to BX
14CF:0110 8D96A601 LEA DX,[BP+01A6] ; [BP+01a6] to DX
14CF:0114 3E DS:
14CF:0115 8A8E0301 MOV CL,[BP+0103] ; Encryption key to CL
14CF:0119 3BDA CMP BX,DX ; Is BX=DX ?
14CF:011B 7405 JZ 0122 ; If they are virus is
; decrypted
; If not, continue
14CF:011D 300F XOR [BX],CL ; Decrypt byte after byte
14CF:011F 43 INC BX ; INCrease BX by 1
14CF:0120 EBF7 JMP 0119 ; Jump to 119h to continue
14CF:0122 90 NOP
14CF:0123 9F LAHF
14CF:0124 8CAC139F MOV [SI+9F13],CS


Blade Runner/29A
Los Angeles, 2019

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT