sinnernot
September 8th, 2005, 14:02
have several ollydbg plugins already done but I have a doubt and
kind of a problem with the function pausedex.
In general, in all the plugins I wrote I set a breakpoint using
Setbreakpointex at some point, and then, I handle the breakpoint at
Pausedex checking that reasonex == INT3_PPBREAK.
THe problem is i'm not sure exactly how to get out of Pausedex. I'm
using GO(0,0,STEP_RUN,0,0) but I'm having some problems.
it also seems strange to me that I have to do also a 'return' besides the GO()!!
eg:
Pausedx(...)
{
if( reasonex == PP_INT3BREAK) {
if( bp_addr == myaddress ) {
do_stuff..
}
}
// continue program execution
Go(0,0,STEP_RUN,0,0);
return 1;
}
is that the correct way to use GO? I don't think the function was
intended to be used like that, because I'm getting a lot of race
conditions and differents problems. Doing Go() and then returning
makes no sense to me, or maybe I'm missing something.
returnign 1 from Pausedex without the GO does not make the debugger
continue execution.
What I want to accomplish is to set a breakpoint, when the breakponit
is hit, I want to handle it in Pausedex and then let Ollydbg continue
execution of the program.
Using the method described above I can do it, and it is working, but
sometimes I get
very ugly race conditions and everything freezes.
Can you please help me?
Thank you!
kind of a problem with the function pausedex.
In general, in all the plugins I wrote I set a breakpoint using
Setbreakpointex at some point, and then, I handle the breakpoint at
Pausedex checking that reasonex == INT3_PPBREAK.
THe problem is i'm not sure exactly how to get out of Pausedex. I'm
using GO(0,0,STEP_RUN,0,0) but I'm having some problems.
it also seems strange to me that I have to do also a 'return' besides the GO()!!
eg:
Pausedx(...)
{
if( reasonex == PP_INT3BREAK) {
if( bp_addr == myaddress ) {
do_stuff..
}
}
// continue program execution
Go(0,0,STEP_RUN,0,0);
return 1;
}
is that the correct way to use GO? I don't think the function was
intended to be used like that, because I'm getting a lot of race
conditions and differents problems. Doing Go() and then returning
makes no sense to me, or maybe I'm missing something.
returnign 1 from Pausedex without the GO does not make the debugger
continue execution.
What I want to accomplish is to set a breakpoint, when the breakponit
is hit, I want to handle it in Pausedex and then let Ollydbg continue
execution of the program.
Using the method described above I can do it, and it is working, but
sometimes I get
very ugly race conditions and everything freezes.
Can you please help me?
Thank you!