provide API for focusing an address without switching to the Binary Ninja window

Đang mở
#7,698 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
cpp, python
Lĩnh vực
api, desktop

Hướng nghiên cứu

Start with the BinaryView.navigate API and the Python call shown in the issue, then trace how it causes the Binary Ninja GUI window to receive focus. Done means an address can be navigated to without switching window focus, while the existing navigation behavior remains available; compare the requested behavior with the linked decomp2dbg and pwndbg use cases.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

What is the feature you'd like to have?
Provide an API for navigating to an address without switching to the Binary Ninja window. Currently when I run

bv.navigate(self.bv.view, addr)

(https://api.binary.ninja/binaryninja.binaryview-module.html#binaryninja.binaryview.BinaryView.navigate)
the correct address is jumped to, but my window manager switches to the window of the binary ninja gui. I don't want this to happen. A potential solution would be to provide an optional argument in navigate that does not focus the gui. IDA and Ghidra both support this.

Is your feature request related to a problem?
See https://github.com/mahaloz/decomp2dbg/issues/136 and https://github.com/pwndbg/pwndbg/pull/3401:

The usecase is that I want the focus_address() endpoint to be queried every time I step, so the decompiler is fully in sync with the debugger, but obviously this doesn't work if the decompiler steals window focus on every step.

decomp2dbg allows users to sync their debugging inside the CLI GDB with various decompiler backends. I am hooking into these plugins in pwndbg through XML RPC calls. I want the decompiler's cursor to be in sinc with the value of PC in the debugger during debugging. This is a nice QoL feature for the user because they can easly switch between the debugger and the decompiler and the decompilation is focused on right where they want it to be.

This works nicely for IDA and Ghidra, but doesn't work for Binary Ninja because it steals the window focus on every debugger step, making debugging with this cursor-syncing feature enabled impossible. It's a shame since binary ninja has the best plugin API among the decompilers, so having this feature would be really cool.

Alternatives
Having binja just not steal focus by default might also make sense, I don't know of a use-case that requires this focus switching.

Ngôn ngữ chính
C++
Star
1.3k
Fork
298
Merge trung bình
5 ngày 5 giờ
Pull request đã merge (30 ngày)
19

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Vector35/binaryninja-api

Tất cả issue của Vector35/binaryninja-api

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.