Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light
kerneldebug? gewone app debug?
api's voor debugging?
[ Voor 16% gewijzigd door PipoDeClown op 12-05-2004 11:56 ]
God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.
Is allemaal mogelijk. Probeer maar eens een leuke zoekquery op Google, want dit topic gaat met zo'n magere topic start nergens over.Wilde schreef op 12 mei 2004 @ 11:48:
Ik ben de laatste tijd bezig om een eigen debuggertje te schrijven. Nou ben ik benieuwd of het mogenlijk is om:
Mijn code te 'triggeren' op het moment dat de EIP op een bepaalde geheugenlokatie is binnen een proces en dan de registers uitlezen.
Die bepaalde plek waarop getriggerd wordt(EIP) wil ik dus vooraf bepalen
Iemand enig idee hoe dit gaat of welke api's ik hiervoor moet gebruiken ?
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Doe eens wat meer info aub?
Ik schrijf in Delphi7 onder WinXP. Ik wil een debuggertje gaan schrijven.
Stel we hebben de applicatie mijnenveger.
Ik kan met de ReadProcessMemory en Writeprocessmemory naar het geheugenblok van dit proces(mijnenveger) schrijven. Dit betekend dus dat ik de code van mijnenveger kan uitlezen en kopieeren naar een eigen stuk geheugen. Dit kan ik zichtbaar maken natuurlijk door het zelf te disassemblen.
Op dat moment heb ik dus de code van mijnenveger voor me'n neus. Echter ik weet nog niet wat de EIP is. Ik weet dus niet waar de processor op het moment van uitlezen precies was in de code van mijnenveger.
Als ik dus op het moment van de 'break' de op dat moment geldende registers kan uitlezen (EIP maar ook eax, ebx etc etc) weet ik veel meer over de status van de processor op het moment dat je 'breaked'. Dit is essentieel om me'n debuggertje te laten werken.
Hoop dat dit wat duidelijker is ??
Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light
- Het is dus niet de bedoeling dat me'n debuggertje het hele proces mijnenveger stopt (ala Softice).
Ik wil alleen weten wat de inhoud van de registers is op een bepaald moment. Dus als ik voor EIP bv 12345 invul dan wil ik weten wat de registers zijn op het moment dat de eip positie 12345 bereikt in Mijnenveger.
Dit is niet Delphi specifiek, misschien zijn er API's voor maar ik kan 't (op msdn) niet echt vinden
Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light
1
2
3
4
5
6
| int eax_reg;
asm
{
mov eax_reg, eax;
} |
doen.
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.
En een breakpoint plaatsen doe je door een INT3 instructie neer te zetten op het adres waar de breakpoint moet staan
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Nee de uitleg van me'n probleem heeft msdn niet. Bedankt voor de links, maar ik ga zelf nog wel ff aan 't uitzoeken
Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
euhmWilde schreef op 12 mei 2004 @ 19:23:
Ja ik weet wel hoe je een breakpoint in code in moet voegen..
Nee de uitleg van me'n probleem heeft msdn niet. Bedankt voor de links, maar ik ga zelf nog wel ff aan 't uitzoeken
Blijkbaar dus nietWilde schreef op 12 mei 2004 @ 11:48:
Die bepaalde plek waarop getriggerd wordt(EIP) wil ik dus vooraf bepalen
Iemand enig idee hoe dit gaat of welke api's ik hiervoor moet gebruiken ?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.