Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem DOS: unload driver

Ahoj lidičky,

komunikuju s jedním člověkem a dostali jsme se do fáze, že potřebuje v DOSu (MS DOS, ale mohl by být snad použit i FreeDOS) v jednu chvíli odstranit v paměti zavedenej ovladač, prostě cosi jako "unload" toho ovladače.

Vy staří harcovníci, neznáte něco takovýho?

Pavel

Předmět Autor Datum
Ten ovladac nema moznost odinstalovani ? Co je to za ovladac ? Bojim se, ze pokud je to nejaky syste…
Jan Fiala 04.09.2006 11:20
Jan Fiala
Jedná se ovladač USB v DOSu, kterej se musí zavést, z USB zařízení se načte pár souborů a pak se mus…
Pavel 04.09.2006 11:47
Pavel
Musi sa vyjadrit konkretnejsie. Vseobecna odpoved: edit config.sys a pred prislusny riadok napis REM…
MM.. 04.09.2006 11:37
MM..
Ne, to si nerozumíme, tady nejde o nenačtení ovladače, ale nejprve je zaveden do paměti a po nějaké…
Pavel 04.09.2006 11:46
Pavel
Já mám nějaké obdobné programy na DOSu u PDA, tuším, že se jmenují Mark.exe a Release.exe, ale vždy…
Paullus 04.09.2006 12:01
Paullus
Tak bohužel to není ono. Jak jsem pochopil, tyhle dva prográmky fungují toliko na odstraňování resid…
Paullus 04.09.2006 12:05
Paullus
Nevadí, ale děkuju za pomoc. Pavel
Pavel 04.09.2006 12:19
Pavel
A musí to být konkrétně přesně ten ovladač? Jinak bys mohl použít třeba DUSE USB Driver, ten umožňu…
host 04.09.2006 12:05
host
A musí to být konkrétně přesně ten ovladač? To já nevím, musím se zeptat. Ten člověk je němec a kom…
Pavel 04.09.2006 12:17
Pavel
Cha cháááá, to Ti můžu poradit aby jsi ten ovladač disassembloval programem sourcer (bacha je to z…
Máslo 04.09.2006 17:39
Máslo
Obávám se, žes mírně přecenil moje schopnosti, ale jako tip je to dobrý, zkusím mu to navrhnout (nev…
Pavel 04.09.2006 17:49
Pavel
Ten napad s DisAssemblerem je vyborny, ale mnohem jednodussi a casove nenarocne reseni je pouzit nek…
FReeZ 04.09.2006 17:53
FReeZ
Jak jsem psal, nepracuju na to já, ale komunikuju anglicky s němcem co se o tyhle věci zajímá. Pošlu…
Pavel 04.09.2006 18:07
Pavel
A kto napravi vektory prerusenia na ktore sa to zavesilo, prip. dalsie veci ktore si ten ovladac uro…
MM.. 04.09.2006 19:09
MM..
Tak teďs ho urazil. Pracuje na speciální věci, ale bez jeho souhlasu o tom nebudu mluvit. Pavel
Pavel 04.09.2006 19:22
Pavel
Heh, namiesto urazania by mohol robit veci poriadne. Poznam taketo problemy, myslis ze za mnou s tak…
MM.. 04.09.2006 19:50
MM..
Ten němec o kterým mluví se pokouší přemluvit aby pracovalo něco jako: zavede ovladač usb, vytvoří r…
Pavel 04.09.2006 20:39
Pavel
Ano, vyvadza ptakoviny :-? To nemoze dat grub do MBR toho z coho bootuje ten DOS? Resp. radsej to an…
MM.. 04.09.2006 20:46
MM..
No já do toho zas tolik nevidím, abych ti mohl odpovědět. Myslím ale, že jde právě o PC bez podpory…
Pavel 04.09.2006 21:01
Pavel
Ak chce robit take nieco musi dokonale vediet co robi. Najvacsi problem vidim v tom ze ak sa zacne b…
MM.. 04.09.2006 21:12
MM..
No klobouk dolů, tohle mi přijde jako zatraceně dobrá rada. Zkusím to přetlumočit :-) Pavel
Pavel 04.09.2006 21:31
Pavel
No, je to dost komplikovana zalezitost... Ja sam neviem ako funguje ten grub4dos, treba najprv nastu… poslední
MM.. 04.09.2006 21:43
MM..
TSR ovladače mívají i parametr na odstranění z paměti. Bývá to např. driver.exe /u Zkusil bych, je…
L-Core 04.09.2006 18:42
L-Core
Jo, to je fakt, některý měly implementovanej unload pomocí parametru /u. Dám mu vědět, díky. Pavel
Pavel 04.09.2006 18:47
Pavel
Potvrzuji unload parametrem /u, ale nevím zda to platí i v tomto případě pro ovladač. Já to používal…
Drc 04.09.2006 18:56
Drc
Sys nelze dobře odinstalovat, exe nebo com se odinstalit dá, až na případné změny v nastavení hdwr.…
JM 04.09.2006 20:06
JM

Já mám nějaké obdobné programy na DOSu u PDA, tuším, že se jmenují Mark.exe a Release.exe, ale vždy je potřeba spustit ten Mark.exe ještě před tím později unloadovaným programem. Jediným problémem je, že nevím, zda to funguje i na ovladače. Podívám se a dám Ti vědět.

Cha cháááá,

to Ti můžu poradit aby jsi ten ovladač disassembloval programem sourcer (bacha je to z r. 1990 :-D), hodil na to voko, připrogramoval funkci unloadingu, znova zkompiloval ... jak jednoduché.

http://data1.edisk.cz/stahni/13464/SR.ZIP_80.7kB.ht ml

Já tím kdysi (never more!) disassembloval nějakej rezidenťák na překlad kódování češtiny při tisku a upravoval pro specifické použití, zdrojáček je nádhera, dokocne okomentovanej ;-)),něco jako:

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;			       SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  
sub_4		proc	near
		push	ds
		push	es
		push	bx
		mov	bx,dx
		mov	ax,es
		cmp	ax,word ptr cs:data_7+2	; (705D:0140=705Dh)
		jne	loc_15			; Jump if not equal
		mov	dx,es:data_1e		; (0100:013E=3154h)
		mov	ds,es:data_2e		; (0100:0140=2036h)
		mov	ax,2517h
		int	21h			; DOS Services  ah=function 25h
						;  set intrpt vector al to ds:dx
		clc				; Clear carry flag
		mov	word ptr es:data_3e,0FFFFh	; (0100:0195=2046h)
		jmp	short loc_16		; (029A)
loc_15:
		stc				; Set carry flag
		mov	bx,3F9h
loc_16:
		mov	dx,bx
		pop	bx
		pop	es
		pop	ds
		retn
sub_4		endp

No tak konec srandy, že.

Ten napad s DisAssemblerem je vyborny, ale mnohem jednodussi a casove nenarocne reseni je pouzit nekterou ze starsich verzi Volkov Commanderu, v nem spustit ten ovladac, ktery se nacte do pameti a pokud ho bude potreba unloadovat, staci ve Volkovu pouzit ALT+F5 a sipkama si vybrat z nabidky jmeno toho ovladace, pote uz pouze ENTER a mozna ze to jeste bude chtit potvrzeni (YES), tim se ovladac spolehlive unloaduje, protoze Volkov ve starsich verzich vsechna TSRka nacita pomoci vlastniho handleru a uklada si offset i velikost, cili v podstate se jedna o primitivni hookovani DOSovych funkci, ktere by nemelo byt prilis slozite naprogramovat.

Takze pokud se tu nekdo z vas jeste stale v roce 2006 zabyva systemovym programovanim, muzete nakouknout do AtHelpu, SysManu, TechHelpu, nebo neceho podobneho a vytvorit si vlastni rezident, ktery se povesi na preruseni 21h a bude kontrolovat zda se neco chce ukoncit a zustat rezidentni (keep).

Pokud ano, tak naalokujeme par KB konvencni pameti a rezidentu vratime jeji offset a mozna i rozsah (dle potreby), ten nas programek muze napr. po stisknuti ALT+U unloadovat vse, co se od jeho spusteni nacetlo, vycistit pametovou oblast i uvolnit.

Asi jedina slozitejsi vec by v tomto pripade byla prace s konvencni pameti v DOSu, kterou uz si osobne prilis nepamatuji, hodne stesti pri hratkach s DOSem, nebo Volkovem =)

A kto napravi vektory prerusenia na ktore sa to zavesilo, prip. dalsie veci ktore si ten ovladac urobil v HW? (napr. taky emm386 prepne CPU do protected modu a pomeni milion dalsich veci s tym suvisiace).
Vektory preruseni by si sice mohol volkov nikde ulozit, ale ak ten ovladac nieco pomenil v HW to uz volkov neuprace.
Inac je rozdiel ovladac (*.sys) a klasicky rezident (*.com/*.exe), *.sys ak sa nemylim nespustis z beziaceho systemu, da sa dat len do config.sys.

Odporucam pouzit ovladac ktory sa vie korektne unloadovat alebo povedat nemcovi nech sa konecne spamata zo standardnej nemeckej naivity/blbosti... :-) Naco mu je ten ovladac? Ak to je len nejaky USB stick alebo co neda sa mu na to pouzit USB legacy support BIOSu?

Heh, namiesto urazania by mohol robit veci poriadne. Poznam taketo problemy, myslis ze za mnou s takymito vecami nechodia? Clovek az niekedy zasne co za katastrofy su schopni lepit v DOSe, namiesto toho aby urobili nieco poriadne.

P.S. nenapisal si ani v com konkretne je problem. Malo zakladnej RAM? Ak ano tak nacital ten ovladac do high memory (ak sa da) pouzitim LH?
Vseobecne je najlepsie ak sa rezident odinstaluje a uprace po sebe sam, ako uz bolo pisane vyssie/nizsie znovuspustenim s prislusnym parametrom.

P.S.2. narazal som aj na toto

z USB zařízení se načte pár souborů

- BIOSy zvyknu mat uz dnes legacy support pre USB storage (Edit: t.j. USB floppy, USB HDD, USB stick, USB CDROM, USB citacka pamatovych kariet, by bohla ist v DOSe aj bez specialnych USB ovladacov, zavisi ale od toho co vsetko z toho podporuje BIOS), takze som chcel tym prispevkom hore naznacit nech sa namiesto urazania pozre aj do BIOSu ci tam nahodou nema legacy support na disabled :-)

Ten němec o kterým mluví se pokouší přemluvit aby pracovalo něco jako: zavede ovladač usb, vytvoří ramdisk, do ramdisku načte spouštěcí soubory operačního systému, spustí Grub (grub4dos), a pokouší se z toho ramdisku nabootovat. Ale zřejmě (pokud jsem ho dobře pochopil) "se tam něco hádá" a vypadá to, že by pomohlo "unloadovat" ten driver pro usb z paměti. Tak a teď to posuď, jestli vyvádí ptákoviny.

Pavel

Ano, vyvadza ptakoviny :-? To nemoze dat grub do MBR toho z coho bootuje ten DOS? Resp. radsej to ani nechcem vediet :))
a) BIOS nema legacy support? (nepotreboval by ten USB ovladac. P.S. support pre USB sticky a floppy a CDROM byva v BIOSoch uz roky).
b) vyskusal nacitat tie subory s niecim co nie je na USB - nebude potrebovat ovladac USB, vtedy mu to funguje? (problem je naozaj USB ovladac?) Ja tam vidim tak trochu problemov viac...

P.S. ten RAM-disk dufam vytvara tym grubom, a ten OS co chce bootovat potom z RAMdisku, by mal pouzivat LEN int13h funkcie na pristup k disku, inac nebude schopny vidiet ten RAMdisk...

No já do toho zas tolik nevidím, abych ti mohl odpovědět. Myslím ale, že jde právě o PC bez podpory zsb v BIOSu (opakuji: myslím). Detaily momentálně nevím, budu s ním komunikovat až později. S tím int13hex už jsem kdysi taky cosi zahlídl, to mi něco vzdáleně připomíná.

Pavel

Ak chce robit take nieco musi dokonale vediet co robi. Najvacsi problem vidim v tom ze ak sa zacne bootovat ten novy OS cez grub, tak prevezme kontrolu nad RAM, a rezidenty co boli v DOSe mozu byt novym OS premazane, ale vektory preruseni stale ukazuju na nich. ten grub sa nejako ochrani inac by nemohol fungovat samotny grub, ale rezidenty ktore bezali v DOSe asi budu robit problem (to chce nastudovat poriadne dokumentaciu k tomu grub4dos ze co a ako presne funguje, aby vedel co moze a co nemoze).
Je mozne ze problem je v int13h (alebo aj v inych sluzbach) na ktorych je zaveseny ten USB ovladac, akonahle sa bootuje novy system a ak nahodou premaze usek pamati kde bol ten USB ovladac tak ten vektor prerusenia ukazuje doprazdna. Ak je ten USB ovladac .exe/.com tak nech skusi utility co uz pisali vyssie/nizsie, mohli by obnovit povodne vektory preruseni (na take ake boli pred nacitanim USB ovladaca), co by malo stacit (predpokladam ze v tom DOSe nema ziadne ine rezidenty), a skusit to. Vektor prerusenia sa da zmenit v DOSe aj rucne cez debug.exe (vektory prerusenia v realnom mode CPU zacinaju na adrese 0:0, 4byty na vektor).

P.S. ale v prvom rade odporucam pozriet si BIOS, a potom USB ovladac ktory sa vie sam odstranit, ak nejaky najde, aby pri odstranovani nastavil registre USB controllera aby neposielal vkuse IRQ na ktore nikto nebude reagovat, az sa USB ovladac odstrani...

No, je to dost komplikovana zalezitost... Ja sam neviem ako funguje ten grub4dos, treba najprv nastudovat dokumentaciu ku grub4dos ze ako to presne funguje, co ostane po nabootovani noveho OS, apod...
Potom ako som uz pisal najlepsie by bolo skusit nacitat tie subory do ramdisku z niecoho co nie je na USB (z diskety alebo HDD apod.), bez USB ovladaca, aby sa zistilo ci je problem len ten USB ovladac, alebo ci je problem niekde inde (napr. v tom aky OS potom bootuje - ci ten OS pouziva int13h, alebo ci sa snazi liezt na HW sam - v tom pripade si "odpili pod sebou konar" = nebude vediet citat svoje vlastne subory z RAMdisku)...

Zpět do poradny Odpovědět na původní otázku Nahoru