Comments (5)
Hi there!
Thanks for your report. A similar issue seems to occur in b/151242195 . See there for more details.
TL;DR - this is likely or heuristic for detecting non-returning functions.
The heuristic is implemented around here:
Line 92 in a156e27
Another related issue is b/151859042.
As optimizations become more aggressive, we seem to trigger this case more often than I would like.
While this is working as intended, the intention is by now at least outdated ;-) -- marking this as a bug.
If you have good ideas on how to improve the heuristic, I'm all ears :-)
from binexport.
Also happens in IDA 7.4 and BinExport 11. Both BinDiff 5 and 6.
Another workaround might be to use the Ghidra exporter (also in this repo or in the release version of BinDiff 6). That one does not have the heuristic and relies exclusively on the disassembler to figure out non-returning functions.
from binexport.
Thanks, the workaround with -OBinExportX86NoReturnHeuristic:FALSE helped me alot!
Sorry, I do not know how to improve the heuristic. But why not let IDA figure out how to deal with non-returning functions? Similar to Ghidra :)
from binexport.
[...]
Sorry, I do not know how to improve the heuristic. But why not let IDA figure out how to deal with non-returning functions? Similar to Ghidra :)
Yeah that will likely be the solution. The heuristic is there in the first place, because BinExport is basically a full disassembler and only uses IDA Pro to provide hints where the initial entry points are (and as instruction decoder).
from binexport.
BinDiff 7 sets -OBinExportX86NoReturnHeuristic:FALSE
by default. We should still propagate any "No Return" attribute that a disassembler sets.
from binexport.
Related Issues (20)
- Binary Ninja: diverging instructions not being treated as such HOT 1
- quadratic blowup in export size due to tail call elimination
- No support for newer Ghidra versions HOT 8
- Binexport 12 for Ghidra 10.2 (doesn't support 10.2.2?) HOT 6
- building with cmake - errors HOT 3
- Typo in README HOT 1
- cmake: GIT_TAG and GIT_SHALLOW are incompatible with commit hashes HOT 1
- Wtf
- Better support for latest binary ninja builds? HOT 7
- Issue with BinExport for Binary Ninja HOT 14
- IDA Pro 7.7 Bindiff secondary file export failed HOT 1
- Ghidra extension build fails HOT 3
- Create a registry of architecture/ISA names
- Different CFG determination HOT 1
- build fails for latest xcode on macos HOT 2
- Ghidra plugin sometimes generates broken BinExport files HOT 2
- allow for specific BN API repo commit hash
- automatically regenerate_api_stubs when building for BN
- how to specify the location of .binexport file in cmd line ? HOT 1
- Binary Ninja: TYPE_SWITCH xrefs are backwards HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from binexport.