Changing the EAX register with Python

Grant Edwards invalid at invalid.invalid
Fri Nov 19 17:32:21 CET 2010

On 2010-11-19, Tim Roberts <timr at> wrote:
> dutche <dutche at> wrote:

>> My project is to have a python program that loads a C program and
>> sets a breakpoint at some address, and then with this breakpoint I
>> change the EAX register and then continue the program execution.

> You will need to find a Linux application equivalent to PaiMei.  Your
> question is not "how can I change EAX", your question is "where can I
> find a Linux debugger that can be controlled from Python?"
> I don't know the answer to that.  gdb is quite powerful, and you can
> certainly control it by connecting to its stdin and stdout
> connections.

If you're going to do that, you want to run gdb in "machine interface"
mode, which makes it a lot easier to talk to programatically.  I've
not done it in Python, but it's easy enough in C, so in Python it
ought to be trivial:

If you don't want to write code to talk the gdb/mi "command language",
then another option is to use a library like libmigdb:

You can probably call the library functions using cytpes:

Grant Edwards               grant.b.edwards        Yow! Psychoanalysis??
                                  at               I thought this was a nude
                                rap session!!!

More information about the Python-list mailing list