Ohjelman ajoa video muistissa.

Joskus pienenä tehtiin Win2000 ja XP näitä: eli ajettava ohjelma kopioitiin videomuistiin, jonka jälkeen käänsimme NMI:n ja kaikki keskeytykset kokonaan tietokoneesta pois päältä.

Windows ja kaikki RAM-muistissa tapahtuva toiminta pysähtyy, ainoastaan oma ohjelma toimii, koska näytönohjainkortti ajaa sen alueen muistin päivitystä (ei pääse virukset sotkemaan mitään).

Edellyttää tietysti että pitää myös kirjoittaa Privilege Level 0 -driveri, joka käynnistyy ilman tietokoneen restartointia suoraan, ja sallii kaikkien I/O porttien vapaan käytön, jolloin NMI:n sulkeminen käytöstä on mahdollista; pysäyttää kaikki keskeytykset ja muistin RAM päivitys.

Tietysti silloin joutuu kirjoittamaan hallintalaitteille omat pienet ajurinsa (näppäimistö lähinnä), käyttäen pelkästään I/O portteja.

Eli in/out -assemblykäskyt tulevat vain kysymykseen.
3228
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

NMI:n maskaaminen :) Tuossa on 2 erillistä I/O porttia, toinen on System Control Port, ja toinen mitä en nyt enää muista kun kauan aikaa kun tehnyt tuollaista:

Kumpikin pitää ohjelmoida uudelleen jotta RAM-muistin päivittäminen pysähtyy.

Mutta tosiaan pitää olla itse driveri ensin jolla on Privilege Level 0, eli Ring-0 driveri joka antaa oikeudet käyttää kaikkia I/O portteja vapaasti..

Äänestä

...Tuolta löytyy sitten sellaisia toimintoja: kuten välitön boottaus, kun käännät yhden bitin, ja samaten tuo mielenkiintoinen: NMI (Non-maskable Interrupt) Masking enable/disable, portit ovat: 91h ja 92h missä on.

Tuolta ensin pitää kääntä se maskaus enable-tilaan NMI:lle, sitten toisesta osoitteesta maskata se päälle, silloin pysähtyy RAM:n päivitys ;)

Äänestä
  • ..ja tuossa vaiheessa kun RAM on pois päältä, niin tietysti oman ohjelman pitää ajaa koodiaan video muistissa, ei vaikuta siihen, kaikki muut pysähtyvät täystin paitsi se oma ohjelma.

    Äänestä

Kommentoi aloitusta


harjoitustehtäväksi kirjoitti:

Joskus pienenä tehtiin Win2000 ja XP näitä: eli ajettava ohjelma kopioitiin videomuistiin, jonka jälkeen käänsimme NMI:n ja kaikki keskeytykset kokonaan tietokoneesta pois päältä.

Windows ja kaikki RAM-muistissa tapahtuva toiminta pysähtyy, ainoastaan oma ohjelma toimii, koska näytönohjainkortti ajaa sen alueen muistin päivitystä (ei pääse virukset sotkemaan mitään).

Edellyttää tietysti että pitää myös kirjoittaa Privilege Level 0 -driveri, joka käynnistyy ilman tietokoneen restartointia suoraan, ja sallii kaikkien I/O porttien vapaan käytön, jolloin NMI:n sulkeminen käytöstä on mahdollista; pysäyttää kaikki keskeytykset ja muistin RAM päivitys.

Tietysti silloin joutuu kirjoittamaan hallintalaitteille omat pienet ajurinsa (näppäimistö lähinnä), käyttäen pelkästään I/O portteja.

Eli in/out -assemblykäskyt tulevat vain kysymykseen.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu