Comments (4)
Just for the record - we updated python-idb to support all 5.x-7.5 IDA Pro versions of IDB, covered with tests. The latest release (0.7.1) is available on PyPI: https://pypi.org/project/python-idb/
from karta.
Karta consists of 2 phases:
- Analysis - Creating a .json configuration from the compiled .o/.obj files
- Matching - Matching the functions in the binary, and showing the matching results in the UI
python-idb won't help the analysis phase, as there is no .idb file in this case. And in the matching phase we need some UI/GUI from the disassembler in order to show the results.
Instead, we chose to define a disassembler-api, see docs here: https://karta.readthedocs.io/en/latest/disassembler.html
Any disassembler that extends this API will be supported by Karta, and indeed support for radare2 is almost finished already, currently being developed by megabeets.
from karta.
On second thought, automation using python-idb could be useful. For example for automatically identifying the used open sources in a large data-set of binaries.
As I have no prior experience with the python-idb library, I suggest you'll implement it using the disassembler-api. If you encounter any trouble with the implementation, ping me for help. In addition, you could wait to the radare2 disassembler api example that should be published in the near future.
from karta.
I tried to add a "semi-disassembler" API for python-idb, but it doesn't seem mature enough to be worth the effort of implementing the missing parts.
First, python-idb only parses existing .idb files, meaning that it can't be used to create config file for compiled open sources.
Second, it is a CLI based utility, meaning that the GUI API for the user's input (configs directory, "Is Windows Binary") should be passed in an alternative way, affecting the entire project, and not simply under a "disassembler" implementation.
Third, while presenting the matching results could be an stdout printout, applying these matches to the .idb is impossible, again because it is a RO API to the .idb file.
And despite all of the above, I tried to implement an API so it will work at least for the karta_identifier.py
but I gave up when I saw the following:
- sark isn't supported, so I will need to convert it all with python-idb API for basic utilities
- ida_search isn't supported, so immediate search (used heavily by Karta) should be replaced somehow
- I couldn't access the path of the input .idb file, required for creating the output file for the identifier script
At the current moment, due to the scarce functionality that is offered by this "semi" disassembler, I fail to see the value of breaking my teeth on adding this support. As I said before, feel free to implement this support and send a pull request. After all you have way better knowledge of python-idb than I have.
from karta.
Related Issues (20)
- The latest sklearn doesn't support Python2.7 HOT 3
- thumbs_up_ELF crashing on ARM binary HOT 2
- KeyError when adding support for Libpcap 1.8.1 HOT 1
- ValueError when adding support for Libgcrypt 1.8.4 HOT 4
- unable to recognize zlib and openssl in so file HOT 1
- installation problem (IDA 7.4 Python 3.8 @ Windows 10) HOT 3
- Create a community collection of configuration and identifiers HOT 5
- Better handle faulty dependencies HOT 1
- Running ThumbsUp on raw firmware binaries HOT 9
- IOError: [Errno 13] Permission denied even though all file permissions are enabled HOT 2
- A problem on adding support for a new open source HOT 2
- A problem in isAnchor function. HOT 1
- Thumbs Up on Broadcom Wi-Fi RAM State Snapshots HOT 1
- x86/x64 Karta/Thumbs Up support HOT 1
- problem running karta scripts in IDA 7.4 HOT 3
- Installation dependency error HOT 1
- 'year' variable referenced before assignment in libjpeg.py,line:34 HOT 3
- Issue regarding setup.py
- the problem of karta_identifier.py HOT 1
- [13/08/2022 09:07:54] - Karta - WARNING: Found multiple instances of "libpng" - multiple instances are not supported right now [13/08/2022 09:08:02] - Karta - WARNING: Found multiple instances of "zlib" - multiple instances are not supported right now
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 karta.