Git Product home page Git Product logo

Comments (10)

DennyDai avatar DennyDai commented on May 30, 2024 1

Is there a way to just load an existing database, query information off it, and do not flush database content to disk?

No currently there is no way to do this, but I can add this maybe next week as it seems to be a pretty useful feature.

is there a way to initialize HeadlessIda without passing any binary paths provided there's a server running and we know the port

Yes, check Advanced Usage part in the README

from headless-ida.

DennyDai avatar DennyDai commented on May 30, 2024 1

Surely that load pre-existing features will be available on both local and server setup.

For the persistent server (user connects to the already opened ida instance) I guess I will not do it at least for now, which will make things lots easier. Humans are bad at remembering cleaning things up like remembering to close their remote ida instance after use. Considering lots of ida users are on floating licenses where occupying a license without actually using it is not really a good thing to do.

While the persistent server may not be the best thing to do, I do understand that sometimes people may want to save their analysis results for later use, I guess the right solution might be allowing dumping idb at any time. I think that feature is already available in IDAPython API, I will double check on it, if not I will implement the feature in the tool.

Update: Yes this feature is available through IDAPython API, check save_idb.py

from headless-ida.

DennyDai avatar DennyDai commented on May 30, 2024 1

Now you can load idb, just pass idb path instead of binary path when loading.
No change will be write back to the idb you've opened unless you manually call ida_loader.save_database("/path/to/db.idb") to overwrite.

from headless-ida.

Yakov5776 avatar Yakov5776 commented on May 30, 2024

No currently there is no way to do this, but I can add this maybe next week as it seems to be a pretty useful feature.

Looking forward! 👀

Yes, check Advanced Usage part in the README

I've seen that although I am unsure why this requires the path to binaries executable, assuming this interacts over the network is there something I am overlooking?

from headless-ida.

DennyDai avatar DennyDai commented on May 30, 2024

I've seen that although I am unsure why this requires the path to IDA's executable, is there something I am overlooking?

This tool is literally just a wrapper over ida as you must have already known, without ida it can't do any reverse engineering for you. And sure you don't have to specify the binary to be analyzed, you only need to do that when your CLIENT connects to it.

I feel there might be some misunderstanding in the readme, if you feel there is a better way to phrase it I can surely update it :)

from headless-ida.

Yakov5776 avatar Yakov5776 commented on May 30, 2024

I see, I was under the assumption that the server was already launched with an executable.
If we offer Advanced Usage, shouldn't we give the capability to the user to additionally connect without specifying an executable in this scenario?

from headless-ida.

DennyDai avatar DennyDai commented on May 30, 2024

If we offer Advanced Usage, shouldn't we give the capability to the user to additionally connect without specifying an executable in this scenario?

I don't feel this will be useful to anyone, if a user don't have a binary to analyze yet, they just don't need to connect to server. (Server will be always there, user can disconnect and reconnect anytime).

But if you do have a use case in mind, please provide more details about it.

from headless-ida.

Yakov5776 avatar Yakov5776 commented on May 30, 2024

I don't feel this will be useful to anyone, if a user don't have a binary to analyze yet

They do, but it was started with the server, not the client.
It makes more sense that the binary is passed at the same occurrence of where the helper script was passed.

(Server will be always there, user can disconnect and reconnect anytime).

You've mentioned a client could disconnect and reconnect at anytime; is there a reason we need to be specifying the executable each time?

from headless-ida.

DennyDai avatar DennyDai commented on May 30, 2024

You've mentioned a client could disconnect and reconnect at anytime; is there a reason we need to be specifying the executable each time?

I definitely should explain more on the readme I'm just bad at explaining things l guess.

Actually the binary will be gone once you disconnect. Every time a user connects, the tool will run a fresh ida instance, nothing will be persistent across different connections except the server itself.

from headless-ida.

Yakov5776 avatar Yakov5776 commented on May 30, 2024

Actually the binary will be gone once you disconnect. Every time a user connects, the tool will run a fresh ida instance, nothing will be persistent across different connections except the server itself.

I see, I guess there are use cases for both approaches.

would be nice to see the possibility of a persistent server, but as we discussed earlier, even loading a pre-existing database would be a nice feature.

Thank you for your amazing work!

from headless-ida.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.