x64dbgpy icon indicating copy to clipboard operation
x64dbgpy copied to clipboard

Breakpoint list

Open gynt opened this issue 5 years ago • 8 comments

Is there a way to access all breakpoints similar to GetList for labels? BPMAP* does not do the job, as there is no way to increment a pointer in Python.

gynt avatar Sep 02 '19 09:09 gynt

Maybe x64dbgpy.Breakpoint.list() will do what you're after.

ross-weir avatar Nov 11 '19 08:11 ross-weir

@ross-weir Thank you for thinking along! The function you suggested only returns breakpoints that are registered in the __breakpoints dictionary. I would like to have breakpoints that are set in x64dbg (in the database) when I launch a program, just like GetList does for labels.

gynt avatar Nov 12 '19 16:11 gynt

Do you want to just list them or also manipulate them?

On Tue, 12 Nov 2019 at 17:58, gynt [email protected] wrote:

@ross-weir https://github.com/ross-weir That only returns breakpoints that are registered in the __breakpoints dictionary. I want to have breakpoints that are set in x64dbg (in the database) when I launch a program.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/x64dbg/x64dbgpy/issues/39?email_source=notifications&email_token=AASYFGNI5VLCNWPI35QQWVTQTLODRA5CNFSM4IS3QF62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED26GLY#issuecomment-552985391, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASYFGNBAA6MDD7F7LXNBVDQTLODRANCNFSM4IS3QF6Q .

mrexodia avatar Nov 12 '19 17:11 mrexodia

Of course! For now, I found a workaround to manipulating breakpoints by calling commands (DirectExec).

I feel BPMAP was wrongly implemented for Python. Perhaps it can be implemented in the same way as for labels? I have no time to figure out how swig works (and exactly how x64dbg works) myself unfortunately.

https://github.com/x64dbg/x64dbgpy/blob/a264bfa27da27f8ef92e76ec13798102b284bd8e/swig/x64dbgpy/pluginsdk/_scriptapi/label.py

https://github.com/x64dbg/x64dbgpy/blob/a264bfa27da27f8ef92e76ec13798102b284bd8e/swig/_scriptapi_label.i

gynt avatar Nov 12 '19 17:11 gynt

It has not been implemented at all :) But it should be possible to do the same for labels.

On Tue, 12 Nov 2019 at 18:12, gynt [email protected] wrote:

Of course! For now, I found a workaround to manipulating breakpoints by calling commands (DirectExec).

I feel BPMAP was wrongly implemented for Python. Perhaps it can be implemented in the same way as for labels? I have no time to figure out how swig works (and exactly how x64dbg works) myself unfortunately.

https://github.com/x64dbg/x64dbgpy/blob/a264bfa27da27f8ef92e76ec13798102b284bd8e/swig/x64dbgpy/pluginsdk/_scriptapi/label.py

https://github.com/x64dbg/x64dbgpy/blob/a264bfa27da27f8ef92e76ec13798102b284bd8e/swig/_scriptapi_label.i

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/x64dbg/x64dbgpy/issues/39?email_source=notifications&email_token=AASYFGN2EP7YDBXGILFFDIDQTLPW5A5CNFSM4IS3QF62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED27Y3I#issuecomment-552991853, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASYFGJ65EKMSLPZYU2E6CTQTLPW5ANCNFSM4IS3QF6Q .

mrexodia avatar Nov 12 '19 17:11 mrexodia

Hi @gynt, If you want to just access BPMAP, you can use a function named DbgGetBpList that I have added recently. Although the pre-compiled binary doesn't exist yet, you can compile the latest code and use it.

herosi avatar Nov 17 '19 03:11 herosi

Latest binaries can always be found here: https://github.com/x64dbg/x64dbgpy/releases

mrexodia avatar Nov 17 '19 11:11 mrexodia

Wow, that's perfect!

herosi avatar Nov 17 '19 12:11 herosi