Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > int 78h


Автор: Zigmund 29.10.2002, 21:52
Здрасть.
Кто-нить знает что за функции int 78h:
ah=3bh, ah=21h, ah=1ah

все вызовы такие:
mov     ah,3Bh
mov     dx,1CC4h
int     78h

спасибо.

Автор: Chingachguk 30.10.2002, 00:09
Извини, а может ты перепутал с int 7B(Ральф Браун):

Цитата

INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
DS:DX -> parameter block (see #03844)
Return: parameter block updated
...
---functions 19h, 1Ah---
0Ch WORD "rtype"
0Eh WORD count
10h DWORD -> field buffer
14h WORD length of following buffer
16h DWORD -> output buffer
...
---function 21h---
0Ch DWORD -> master password
10h WORD "securityflag"


В моем Брауне насчет 78 ничего такого нет...

А трассировка что дает ?

Автор: Chingachguk 30.10.2002, 00:16
Собственно, вот чего она дает:

 mov  ah,3Bh
 mov  dx,1CC4h
 int  78h
; => заходим в Int 78h, и ... переходим в 0000:0000 !
; Непонятно...
; Далее следует:

push   sp
add    al,[bp+di-31D5]
add    [bp+di+162B],ax
add    [bx+di+0B],dh
xlat
add    [bp+di+652B],ax
add    al,70
add    [si-01],dl
add    al,dh
or     [bx+si-1000],al
outsw
out    dx,ax
...

Собственно, явный бред - это не код. то, что винда дала зайти в вектор, говорит о том, что это не ее...

ИМХО, драйвер зовется какой-то. И его обычно нет.

Дело было в win98.

Автор: Zigmund 30.10.2002, 02:55
по всей видимости эти функции как-то связаны с работой
brun40.exe (Qbasic 4.0)...
есть соображения?

Автор: Baa 30.10.2002, 12:06
Int78 Family
These are memory resident harmless viruses. They hook INT 21h and write themselves to the and of COM files. While installing they store the original INT 21h address to the address of INT 78h vector, and then while infecting the files they use int 78h calls instead of INT 21h. These viruses do not manifest themselves.

Автор: Chingachguk 30.10.2002, 17:29
Вряд ли. Нафиг вирусам самим себя детектировать по ДВУМ регистрам ? Обычно делают так:

mov cx,0ABCDh
int xx
cmp cx,DCBAh
jz  @@OurInTown

А перенаправление 21->78 (или я видел 13->78) не подразумевает передачи параметров в регистрах ... И зачем вирю от 21-вектора функции 3b, 1A и 21 ?

to Zigmund: а что ты вообще делаешь, что даже подозреваешь даже несчастный Qbasic ? ;)

Автор: Zigmund 30.10.2002, 17:44
Да не подозреваю я его :)
Просто так и есть... ковыряю старую рухлядь (89год!) и хочу заставить ее работать... (очень надо!)... Она работала с ключем аппаратным, а теперячи ключ погарел
:(
обход ключа нашел, а вот расчеты она теперь ведет неправильно :( видимо задействует чего-то от него...

вот и говорю, что есть run-time'a BRUN40.EXE (это QB4) и подозреваю, что именно она имеет дело с такими нестандартными прерываниями... а док по ентому делу найти никак не могу :(

...даже искал декомпилер :).... вроде есть но очень дорогой
-> http://members.aol.com/mspring810/private/index.htm

Автор: Chingachguk 30.10.2002, 19:23
Так это ключ защиты проги или ключ расшифровки данных ?
Если данных, то его надо подбирать ?
Что она делает (расчитывает) ?

Автор: Zigmund 30.10.2002, 19:51
89год! тогда данные еще не шифровали аппаратными ключами! :) по крайней мере эта фирма...

система дизайна для вязальной машины (286, 2 монитора + плоттер! :)
есть резидент, который вешается на 13h, 10h, 16h ... только на 10h в функцио ah=0h встроена проверка наличия ключа. (для изображения на 2-м мониторе (на 1-м меню) путем общения с LPT2 ;)

все.

а другой модуль (расчета узоров и сохранения их на дискету) с 10H не работает (IMHO)... вот такие пироги :)

практически если хотча помочь - пиши в мыло.
спасибо за общение.

Автор: Алексей 5.11.2002, 03:52
Скорее всего это ошибка disassembler'а, возможно disassembler преобразовал
машинный код в это прерывание (int 78h) из текста
(например: Error487 db 'xxx').

Автор: gbpltw 10.11.2002, 14:09
Код

Int 78

AutoCAD Device Interface - PLOTTER - SEND COMMAND

AX = function
0001h begin plot
BX = file level
0000h ASCII file
0001h binary file
0002h AutoCAD DXB file
0003h installed ADI driver
0002h end plot (close plotter)
0003h move (pen up)
BX = new X position
CX = new Y position
0004h move (pen down)
BX = new X position
CX = new Y position
0005h select pen
BX = pen number
0006h select drawing speed
BX = drawing speed N
0007h select line style
BX = line style N
0008h raise pen
0009h abort plot
Return:AX = 0000h (may be used for driver status in future releases)

See Also: INT 79"AutoCAD" - INT 7A/AX=0001h"AutoCAD" - INT 7B/AX=8001h"AutoCAD"

Где-то тут проскакивало слово плоттер.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)