Von Win32 auf DOS Stack zugreifen

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Krüsty, Marwin

Beitragvon Marwin » Dienstag 12. Oktober 2004, 22:31

Hallo Nukacola,

ich habe mich mit der Debbuging-API nich nicht beschäftigt. Aber möglicherweise musst du die Werte der Stackregister auslesen, und dann mit der Win-API von dieser Adresse deine Werte auslesen.

Grüße, Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland

Beitragvon Nukacola » Mittwoch 13. Oktober 2004, 16:57

Hallo Marwin,

danke für deine Antwort auch wenn du mir damit nicht helfen konntest.
Ich hab es jetzt hinbekommen. Man muss einfach mit Hilfe der Debug API sich an den DOS-Prozess (DOS-Fenster emuliert durch NTVDM.exe)anhängen. Dann einfach die API-funktionen SetThreadContext und GET und schon kann man den stack ändern. Als Classname für die DOS-Box sollte man im übrigen "ConsoleWindowsClass" benutzen. Bin aber noch auf der Arbeit und hab noch nicht getestet ob alles geht. Da ich schon kurz diese kleine test App
geschrieben habe. Irgendwann muss ich ja auch mal arbeiten.

So könnt ja mal sagen falls ihr irgendwelche fehler seht..

Greetings Nukacola

Code: Alles auswählen
   

mov context.ContextFlags, CONTEXT_CONTROL

invoke GetThreadContext,DBEvent.u.CreateProcessInfo.hThread, addr context

         mov eax,context.regEbp
                        mov stackebp,eax
                        mov eax,context.regEsp
                        mov stackesp,eax          

invoke SetThreadContext,DBEvent.u.CreateProcessInfo.hThread, addr context

invoke MessageBox, 0, addr LoopSkipped, addr AppName, MB_OK+MB_ICONINFORMATION

Nukacola
Newbie
 
Beiträge: 3
Registriert: Mittwoch 13. Oktober 2004, 16:18


Zurück zu Windows-API

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag
  • Win32.hlp
    von Krüsty » Mittwoch 10. Dezember 2003, 20:13
    0 Antworten
    2887 Zugriffe
    Letzter Beitrag von Krüsty Neuester Beitrag
    Mittwoch 10. Dezember 2003, 20:13

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron