Re: 1. Test


[ Antworten ] [ Ihre Antwort ] [ Forum www.iconsoft.de ]

Abgeschickt von A.K. am 30 Dezember, 2005 um 11:18:17

Antwort auf: Re: 1. Test von Sebastian am 22 Dezember, 2005 um 13:12:43:

Hi Seb,

:Dann hoff ich mal einfach drauf, dass alles planmäßig klappt und du im Urlaub ein bisschen zum Programmieren kommst. ;-)

Ich fahre jetzt erstmal für ne Woche weg und kann demnach auch nicht an den Rechner.


:Ansonsten hab ich mir aber trotzdem schon ein paar Gedanken gemacht. Wie wäre es wenn man die qb.exe garnet anrührt sondern einfach ein TSR-Programm schreibt welches den INT16-Call abfängt und dann vor der Tastenabfrage immer den anderen INT aufruft. Quasi als Überwachung. Das wäre glaube ich das einfachste.
: Hm, du hast viel mehr Ahnung davon als ich. Musst du wissen.
: Aber ist es nicht so, dass TSR Programme nicht korrekt unter Windows 2000/XP laufen, sondern ein MS-DOS spezifisches Feature sind und höchstens noch auf Win 95/98 ihren Dienst tun können? Oder hab ich das falsch in Erinnerung? Ich hab mich noch nie intensiver mit TSR-Programmen befasst.

Also bei TSR ist es ja so das es nur für die jeweilige dosbox läuft. Und ein TSR ist ja nichts anderes als Programm das zwar beendet ist aber noch aktiv im reservierten Speicher liegt.
Dann braucht man nur den INT16 "verbiegen" und schon gehts. Das hat auch nichts mit der jeweiligen Windowsversion zu tun. Das geht immer.

: Dieser 2f-Interruptaufruf ist halt insbesondere unter W2K/XP wichtig, damit die CPU Auslastung des DOS-Tasks (ntvdm) heruntergeht. Wenn ich auf W2k QB.EXE eine Zeit laufen lasse, wird die CPU durch die 100% Auslastung immer ziemlich heiß... :/

Jep, besonders bei W2K.

: NDISASM disassembliert die EXE übrigens auch und ich erhalte einen einige MB großen ASM Source. Der enthält am Anfang jeder Zeile das Offset und den Original-HEX-Code. Lässt man diese Zusatzinfos am Anfang von einem Quick'n'Dirty dafür programmierten Tool entfernen, bleiben die reinen Mnemonics. Aber der Code lässt sich dann nicht mehr mit dem beiliegenden NASM assemblieren - egal, ob ich die Registerveränderung und den Interrupt reintue oder nicht. :?

NASM erwartet ja ein bestimmtes format mit den Mnemonics. Aber hab mich mit NASM noch nie wirklich beschäftigt. Nehme immer debug.exe daher.

: Irgendwie müsste das ja so aussehen, wenn man die EXE an den INT 0x16 Stellen modifizieren würde:
: 1. AX sichern (vielleicht PUSH?)
: 2. mov ax, 0x1680
: 3. int 0x2F
: 4. AX wiederherstellen
: Oder?

PUSH AX
MOV AX,1680
INT 2F
POP AX

Ja, so wäre es richtig. Nur muß man evtl. daran denken das der INT 2F nicht nur AX verändert sondern auch andere Register. Aber das müßte man ausprobieren.
Aber wenn du in den Code einige Befehle dazusetzt mußt du daran denken die JMP's zu überprüfen. Denn die sind zwar relativ gehalten aber können sehr schnell nicht mehr stimmen.

: Viele Grüße!
: Sebastian

Ich wünsche dir und den anderen noch einen Guten Rutsch und viel Spaß im neuen Jahr.

MFG A.K.





Antworten:



Ihre Antwort

Name:
E-Mail:

Subject:

Text:

Optionale URL:
Link Titel:
Optionale Bild-URL:


[ Antworten ] [ Ihre Antwort ] [ Forum www.iconsoft.de ]