withzombies / bnil-graph Goto Github PK
View Code? Open in Web Editor NEWA BinaryNinja plugin to graph a BNIL instruction tree
License: Apache License 2.0
A BinaryNinja plugin to graph a BNIL instruction tree
License: Apache License 2.0
I'm getting this error when generating the IL tree in certain functions, not sure why.
Traceback (most recent call last):
File "C:\binja\python\binaryninja\plugin.py", line 150, in _address_action
action(view_obj, addr)
File "C:\Users\User\AppData\Roaming\Binary Ninja\plugins\bnil-graph\__init__.py", line 183, in graph_bnil
graph_ils(bv, g, head, function, addr)
File "C:\Users\User\AppData\Roaming\Binary Ninja\plugins\bnil-graph\__init__.py", line 128, in graph_ils
for il in sorted(ils):
TypeError: '<' not supported between instances of 'LowLevelILInstruction' and 'LowLevelILInstruction'
It seems to happen to instructions in _start
in an ELF (the function that calls __libc_start_main)
With the introduction of the Binary Ninja Plugin Manager 2.0 we will be releasing a installation UI for all plugins in the community repository. Please check https://binary.ninja/2019/07/04/plugin-manager-2.0.html for the latest information about how to submit your plugin. If you no longer want your plugin in the repository please disregard this issue
In reverse engineering, dirty asm are very common, and manually matching a dirty assembly instruction is very cumbersome. Similarly, modifying many dirty assembly instruction is also very cumbersome.
If your plug-in can provide sample codes for matching assembly and modifying assembly, it will very helpful!
And as a beginner of python api, to be honest, it is difficult for me to figure out how to quickly get information about an assembly instruction. The only similar operation is to get the token of instructions, and in idapython, I can use idc.print_operand( ), GetDisam, print_insn_mnem and other functions directly obtain the operand or operand.
On certain instructions the follow error is triggered when generating instruction graph:
File "/home/user/binaryninja/plugins/../python/binaryninja/plugin.py", line 153, in _address_action
action(view_obj, addr)
File "/home/user/.binaryninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 269, in graph_bnil
graph_ils(bv, g, head, function, addr)
File "/home/user/.binaryninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 202, in graph_ils
for il in sorted(ils):
TypeError: '<' not supported between instances of 'HighLevelILInstruction' and 'HighLevelILInstruction'
I was about to replicate it on a x86-64 'call' instruction:
00008928 ff1572b60900 call qword [rel __libc_start_main@GOT]
I've been hitting this crash a lot recently:
Traceback (most recent call last):
File "/Applications/Binary Ninja.app/Contents/MacOS/plugins/../../Resources/python/binaryninja/plugin.py", line 129, in _address_action
action(view_obj, addr)
File "/Users/kyle/Library/Application Support/Binary Ninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 302, in graph_bnil
graph_ils(bv, g, head, function, addr)
File "/Users/kyle/Library/Application Support/Binary Ninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 224, in graph_ils
graph_il(g, head, il_type, il)
File "/Users/kyle/Library/Application Support/Binary Ninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 212, in graph_il
graph_il_insn(g, il_desc, il, "operation")
File "/Users/kyle/Library/Application Support/Binary Ninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 105, in graph_il_insn
edge_label, ty = il.ILOperations[il.operation][op_index]
IndexError: list index out of range
Seems to fail on any hlil that doesn't have operands ... noreturn
s, function calls with no parameters, etc
Hey, after opening Instruction graph from right click on tree view, I get this exception:
Traceback (most recent call last):
File "/home/enedil/data/code/binja/binaryninja/plugins/../python/binaryninja/plugin.py", line 153, in _address_action
action(view_obj, addr)
File "/home/enedil/.binaryninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 271, in graph_bnil
show_graph_report(bv, g, "Instruction Graph ({:#x})".format(addr))
File "/home/enedil/.binaryninja/repositories/community/plugins/withzombies_bnilgraph/__init__.py", line 58, in show_graph_report
patch = int(patch.split('-')[0])
ValueError: invalid literal for int() with base 10: '2170 Personal'
I'm don't know where this 2170 Personal
comes from, but might it be a type of licence? I'm using latest Binary Ninja on Linux.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.