Newsgroup: it.comp.programmare.win32
Titolo: Win 2k vuole comandarsela!!!

Ciao a tutti voi che leggere questo messaggio e ancora di + a chi saprà
aiutarmi!!! Ho problema che non credo sia facile da risolvere!!! Come faccio
a far tacere Windowz se voglio fare delle operazioni senza essere
disturbato???
Per esempio quando scrivo questa riga di asm sotto VC++:
__asm {
    mov al, 60h
}
perchè mi da l'errore di protezione???
Come posso eliminare per un pò il controllo??? Bene o male si può fare
altrimenti non si potrebbe più avere accesso al disco con i programmi
eseguibili dal prompt o anche accesso alla porta della tastiera!!!
Vi prego di aiutarmi è una cosa che mi affligge da parecchio tempo!!! Grazie
ancora... Lord Spawn

 perchè mi da l'errore di protezione???
Impossibile, evidentemente sono le operazioni successive che in seguito
a quel mov producono l'errore. Un qualsiasi programma e` composto da
centinaia di migliaia di istruzioni MOV...
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/

 eseguibili dal prompt o anche accesso alla porta della tastiera!!!
le app eseguite da console (per la console) girano in emulazione
--
ciao
..::[xaero]::..

 ha scritto nel messaggio
news:93am4o$9l8qa$1...@ID-51253.news.dfncis.de...


 ha scritto nel messaggio
news:93a7qb$cd1$1...@lacerta.tiscalinet.it...


 quindi non con mov...
Immaginavo fosse un problema del genere.. Niente da fare. GLi accessi
in/out non vengono digeriti da Win... Ci vogliono deglle apposite  
DLL...
-- 
News2000 1.5ß Version 
http://socket2000.8m.com

DLL...
umm dubito che delle DLL bastino a meno che non siano KM DLL... 
IN x,OUT x sono IOPL sensitive (EFLAGS->IOPL== 0 sia per win9x che in
NT/2k), la differenza fra Win9x ed NT/2k e' che x Win9x il GPF
l'handler "emula" l'accesso da UM all'I/O space per quelle porte che
non sono trapped da qualche I/O handlers (se possiedi SoftIce o
analogo KM debugger dai un'occhiata a TSS->IOMAP; nel DDK invece ai
VMM services Install_IO_Handler,etc.).. quindi in Win9x puoi
effetivamente usare IN x, OUT x da UM purche' qualche VxD non abbia
gia' trappato quella porta (i.e. 0x278,etc..) in tal caso o installi a
tua volta un I/O handler, oppure utilizzi/hooki i servizi del VxD
stesso. Per quel che riguarda l'accesso all'I/O space che si trova
nell'arena < 4Mb non ci sono problemi in quanto quest'area e' shared e
w/r .
In WinNt/2k invece l'accesso al I/O space ed IN/OUT sono
__giustamente__ interdetti in UM, quindi no way x utilizzarli
direttamente, salvo modificando il GPF handler di NT/2k, ricorrendo a
qualche NCI undocumented (NtSetSystemInformation + SYSINFOCLASS==16 e'
stata rimossa x 2k), modificando TSS (come fa totalio.sys cosa
__altamente_ sconsiglia xche' crea una falla enorme a livello di
sicurezza/stabilita'), oppure creandosi un KM driver con cui dialogare
via DeviceIoControl (imho la soluzione preferibile) o che modifichi
direttamente IOMAP x il tuo processo (come fa giveio.sys).
Cmq sia per chi non vuol far da se' (imho il modo migliore x
apprendere qualcosa...) esiste questo sorgente che svolge egregiamente
il suo compito: 
http://www.internals.com/utilities/winio.zip
Saluti,
 WalkerBoh

> le app eseguite da console (per la console) girano in emulazione
Emulazione di  cosa ? Non direi  che tutte le  applicazioni in console
girano in emulazione DOS...
\begin{echelon}
quiche North Korea cryptographic Kennedy PLO kibo nuclear Khaddafi
Albanian domestic disruption ammunition Panama SEAL Team 6 Ft. Meade
Mossad
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+

 girano in emulazione DOS...
giusto per rendere l'idea...
modalità protetta


 writes:
x> giusto per rendere l'idea...
x> modalità protetta
Eh, appunto, non è vero.  Ho bash.exe che è un'applicazione con output
in console  che NON  è un'applicazione che  gira in modo  prottetto ma
come una qualsiasi applicazione a 32 bit...
\begin{echelon}
munitions Noriega strategic Semtex SDI spy kibo Legion of Doom
arrangements nuclear Ft. Bragg Cocaine Clinton Ft. Meade KGB


 umm dubito che delle DLL bastino a meno che non siano KM DLL... 
winio95.dll



«Se dio esiste, spero che abbia una scusa valida.»
(D. Pennac)

winio95.dll
non per essere polemico ma il thread di cosa parla? winNT/2k.. 
mi e' parso di essere stato chiaro nel precedente post: e' il GPF
handler ad emulare IN/OUT (nonche' altre istruzioni IOPL sensitive,
CLI,etc.)  per quelle porte che non sono trappate da un I/O handler
installato da windows stesso o da un VXD.
Ad ogni modo se hai esaminato il codice di quella dll vedrai che non
serve ad emulare IN/OUT ma per mappare come virtual (linear) address
(usando i servizi DPMI via VxdCall)  "visibile" nell'arena privata
l'I/O address che si trova sotto i 4MB.. ora senza che metta a
spiegare la ripartizione dell'address space in win9x, paging, etc..
non mi pare che questo sia in contraddizione con quello che ho
scritto.
Saluti, 
  Walker Boh

modalità protetta
non vorrei dire ma stai facendo un po' di confusione tra PM e V86 mode
e tra console e virtual dos machines (VDM)
tecnicamente  parlando (e semplificando) il V86 mode e' una sorta di
emulation layer al di sopra del PM, tant'e' che non solo convive ma
dipende da codice che gira in PM (int/exceptions handling,etc...)
quindi si puo' ben dire che NT/2k entra in PM al bootstrap e non ne
esce + (che poi il codice possa essere eseguito in PM 16/32 o V86 e'
altra questione: ma il RM, tolto Simulate_RM_Int,etc dell'host DPMI e'
un ricordo).
La console dei comandi utilizza i service del subsys win32 e questi  a
loro volta quelli del kernel di NT/2k (codice che gira in PM 32 nella
VM di sistema), mentre la(e) VDM e' a sua volta un processo (NTVDM)
che presiede all'emulazione l'ambiente DOS (in V86 mode) .E'
CreateProcess a decidere che subsys/ambiente l'eseguibile richiede
(DOS,POSIX, OS/2 o  win32 console e GUI)  ed lanciare per esempio
NTVDM.EXE nel caso non esista gia' una VDM o sia stato specificato che
debba essere eseguito in una VDM separata.
Insomma senza continuare in disquisizioni piu' o meno noiose il
concetto fondamentale e'  che bisogna stare attenti a non confondere
la console di winNT/2k con le VMD  (il cui output tra l'altro viene di
fatto viene rediretto verso una console win32).
Saluti,
 Walker Boh

 non per essere polemico ma il thread di cosa parla? winNT/2k.. 
Hai ragione.


Hai ragione.
Tnx,
ma no problem, non ne avevo fatto di certo una questione drammatica
=)

> come una qualsiasi applicazione a 32 bit...
F> Già, però tutti i prog. DOS girano in emulazione.
Ma un programma in console non necessariamente è dos, ora comprendo cosa
intendevi. Ovvero "programmi dos che usano istruzioni tipo in e out".
Quanto alla signature, beh i  blocchi echelon e avviso fanno parte del
body del messaggio...
\begin{echelon}
Ortega SDI radar genetic World Trade Center Peking plutonium strategic
Panama explosion fissionable cryptographic Ft. Bragg Delta Force
terrorist
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
--


Walker Boh ha scritto:

Nessun problema. Mi ronzava per la testa che si parlasse di NT ma 
rileggendo il messaggio originale non capivo come mi fosse venuta in 
mente tale idea... Poi quando me l'hai fatto notare ho dato 
un'occhiata mettendo a fuoco il subject e ho capito perchč c'era quel
dubbio che mi ronzava in testa... ;D
