Как передать в прогу параметры
Вопрос: как в нее передать параметр /u
;GameFucker! v2.00release (c) ViciouSCoDeR 1998
;
; Ребутит комп при попытке установки любого графического режима...
; Так что в гамесы не поиграют ламмеры =8)
;
.MODEL Tiny
.CODE
Org 100h
include maclib.pcl
start:
jmp short Init ;Инсталлируем TSR
Int10h:
cmp ax,0311h ;Мож мы уже в памяти
jne NotInMem
xchg ah,al
iret
NotInMem:
cmp ah,0 ;Установка режима?
jne Orig10h
cmp al,3 ;Текстовый?
jbe Orig10h
int 19h ;Reboot
Orig10h:
DB 0eah ;Ломимся на ориг.
Int_10h DD 0 ;обработчик...
Init:
mov ax,0311h ;В памяти мы уже?
int 10h
cmp ax,1103h
je InMem ;Ага...в ней =8)
mov ah,9
lea dx,msgTsrOK
int 21h
mov ax,3510h ;Узнаем адресс
int 21h ;оригинального
mov WORD PTR Int_10h,bx ;обработчика
mov WORD PTR Int_10h+2,es
mov ax,2510h ;Установим свой
lea dx,Int10h
int 21h
lea dx,Init ;TSR!
int 27h
InMem: ;Ага...в памяти!
; mov si,82h ;Анинсталлим?
mov al,cs_el[1]
cmp al,'u'
jne Par
; cmp WORD PTR [si],'u/'
; jne Par
beep 1
push ds ;=8) Это понятно...
mov ax,3510h ;Узнаем сег:смещ
int 21h ;нашей резидентной
mov dx,es:[bx+14h] ;проги.А теперь кла-
mov ds,es:[bx+16h] ;дем в ds:dx адресс
mov ax,2510h ;оригинального обра-
;ботчика 10-ого инта
;и устанавливаем его.
int 21h ;Берем это из пере-
mov ah,49h ;менной Int_10h из
int 21h ;*РЕЗИДЕHТА*...Осво-
pop ds ;бождаем память...
mov ah,9 ;
lea dx,msgRemOK ;
int 21h
int 20h
Par:
mov ah,9
lea dx,msgInMem
int 21h
int 20h
cs_el db ?
msgTsrOK DB 'GameFucker! v2.00 (c) ViciouSCoDeR 1998',13,10,13,10,7
DB "GameFucker! successfully loaded.....Lammers can't play games =8)$"
msgInMem DB 13,10,7,'GameFucker! v2.00 is already loaded...',13,10
DB 'Use key /u to uninstall...',7,36
msgRemOK DB 13,10,'GameFucker! v2.00 successfully removed from memory...',7,36
end start
Цитата:
Originally posted by Altermann
Эта резидентная прога после второго вызова говорит, что она уже в памяти. Используйте /u для удаления. Как только не пробовал передавать параметры - не удаляется.
Вопрос: как в нее передать параметр /u
;GameFucker! v2.00release (c) ViciouSCoDeR 1998
;
; Ребутит комп при попытке установки любого графического режима...
; Так что в гамесы не поиграют ламмеры =8)
;
.MODEL Tiny
.CODE
Org 100h
include maclib.pcl
start:
jmp short Init ;Инсталлируем TSR
Int10h:
cmp ax,0311h ;Мож мы уже в памяти
jne NotInMem
xchg ah,al
iret
NotInMem:
cmp ah,0 ;Установка режима?
jne Orig10h
cmp al,3 ;Текстовый?
jbe Orig10h
int 19h ;Reboot
Orig10h:
DB 0eah ;Ломимся на ориг.
Int_10h DD 0 ;обработчик...
Init:
mov ax,0311h ;В памяти мы уже?
int 10h
cmp ax,1103h
je InMem ;Ага...в ней =8)
mov ah,9
lea dx,msgTsrOK
int 21h
mov ax,3510h ;Узнаем адресс
int 21h ;оригинального
mov WORD PTR Int_10h,bx ;обработчика
mov WORD PTR Int_10h+2,es
mov ax,2510h ;Установим свой
lea dx,Int10h
int 21h
lea dx,Init ;TSR!
int 27h
InMem: ;Ага...в памяти!
; mov si,82h ;Анинсталлим?
mov al,cs_el[1]
cmp al,'u'
jne Par
; cmp WORD PTR [si],'u/'
; jne Par
beep 1
push ds ;=8) Это понятно...
mov ax,3510h ;Узнаем сег:смещ
int 21h ;нашей резидентной
mov dx,es:[bx+14h] ;проги.А теперь кла-
mov ds,es:[bx+16h] ;дем в ds:dx адресс
mov ax,2510h ;оригинального обра-
;ботчика 10-ого инта
;и устанавливаем его.
int 21h ;Берем это из пере-
mov ah,49h ;менной Int_10h из
int 21h ;*РЕЗИДЕHТА*...Осво-
pop ds ;бождаем память...
mov ah,9 ;
lea dx,msgRemOK ;
int 21h
int 20h
Par:
mov ah,9
lea dx,msgInMem
int 21h
int 20h
cs_el db ?
msgTsrOK DB 'GameFucker! v2.00 (c) ViciouSCoDeR 1998',13,10,13,10,7
DB "GameFucker! successfully loaded.....Lammers can't play games =8)$"
msgInMem DB 13,10,7,'GameFucker! v2.00 is already loaded...',13,10
DB 'Use key /u to uninstall...',7,36
msgRemOK DB 13,10,'GameFucker! v2.00 successfully removed from memory...',7,36
end start
Эта резидентная прога после второго вызова говорит, что она уже в памяти. Используйте /u для удаления. Как только не пробовал передавать параметры - не удаляется.
Вопрос: как в нее передать параметр /u
;GameFucker! v2.00release (c) ViciouSCoDeR 1998
;
; Ребутит комп при попытке установки любого графического режима...
; Так что в гамесы не поиграют ламмеры =8)
;
.MODEL Tiny
.CODE
Org 100h
include maclib.pcl
start:
jmp short Init ;Инсталлируем TSR
Int10h:
cmp ax,0311h ;Мож мы уже в памяти
jne NotInMem
xchg ah,al
iret
NotInMem:
cmp ah,0 ;Установка режима?
jne Orig10h
cmp al,3 ;Текстовый?
jbe Orig10h
int 19h ;Reboot
Orig10h:
DB 0eah ;Ломимся на ориг.
Int_10h DD 0 ;обработчик...
Init:
mov ax,0311h ;В памяти мы уже?
int 10h
cmp ax,1103h
je InMem ;Ага...в ней =8)
mov ah,9
lea dx,msgTsrOK
int 21h
mov ax,3510h ;Узнаем адресс
int 21h ;оригинального
mov WORD PTR Int_10h,bx ;обработчика
mov WORD PTR Int_10h+2,es
mov ax,2510h ;Установим свой
lea dx,Int10h
int 21h
lea dx,Init ;TSR!
int 27h
InMem: ;Ага...в памяти!
; mov si,82h ;Анинсталлим?
mov al,cs_el[1]
cmp al,'u'
jne Par
; cmp WORD PTR [si],'u/'
; jne Par
beep 1
push ds ;=8) Это понятно...
mov ax,3510h ;Узнаем сег:смещ
int 21h ;нашей резидентной
mov dx,es:[bx+14h] ;проги.А теперь кла-
mov ds,es:[bx+16h] ;дем в ds:dx адресс
mov ax,2510h ;оригинального обра-
;ботчика 10-ого инта
;и устанавливаем его.
int 21h ;Берем это из пере-
mov ah,49h ;менной Int_10h из
int 21h ;*РЕЗИДЕHТА*...Осво-
pop ds ;бождаем память...
mov ah,9 ;
lea dx,msgRemOK ;
int 21h
int 20h
Par:
mov ah,9
lea dx,msgInMem
int 21h
int 20h
cs_el db ?
msgTsrOK DB 'GameFucker! v2.00 (c) ViciouSCoDeR 1998',13,10,13,10,7
DB "GameFucker! successfully loaded.....Lammers can't play games =8)$"
msgInMem DB 13,10,7,'GameFucker! v2.00 is already loaded...',13,10
DB 'Use key /u to uninstall...',7,36
msgRemOK DB 13,10,'GameFucker! v2.00 successfully removed from memory...',7,36
end start
Одно из решений: подорви функцию 4Bh (EXEC) и при выловЛи попытки запуска тойже *.exe - деинстал~ резидент.