x64dbg / x64dbgpy

Automating x64dbg using Python, Snapshots:
https://ci.appveyor.com/project/mrexodia/x64dbg-python/build/artifacts
MIT License
1.47k stars 70 forks source link

Breakpoint list #39

Open gynt opened 5 years ago

gynt commented 5 years ago

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.

ross-weir commented 4 years ago

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

gynt commented 4 years ago

@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.

mrexodia commented 4 years ago

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

On Tue, 12 Nov 2019 at 17:58, gynt notifications@github.com 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 .

gynt commented 4 years ago

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

mrexodia commented 4 years ago

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 notifications@github.com 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 .

herosi commented 4 years ago

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.

mrexodia commented 4 years ago

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

herosi commented 4 years ago

Wow, that's perfect!