joxeankoret / diaphora

Diaphora, the most advanced Free and Open Source program diffing tool.
http://diaphora.re
GNU Affero General Public License v3.0
3.62k stars 373 forks source link

Suggestion Regarding Slow Parsing Speed in IDA #298

Closed gameworld2007 closed 6 months ago

gameworld2007 commented 6 months ago

Could we possibly copy multiple .i64 and .bin files, open multiple instances of IDA, and then perform cluster analysis? Would this potentially increase the processing speed?

joxeankoret commented 6 months ago

If you are referring to exporting multiple databases, yes, it's possible and it's what I do, for example, with the testing suite. If you are referring to parallelize the export process, I'm afraid that won't work.

gameworld2007 commented 6 months ago

I mean, duplicating multiple instances of IDA to let Diaphora work with multiple processes, speeding up the analysis results. ida process 1 =》 0-10w ida process 2 =》 10-20w ida process 3 =》 30-40w

joxeankoret commented 6 months ago

Do you refer to the exporting or the diffing process? Because the diffing process is already parallelized (using threads), and the exporting process, considering that IDA can only open one single instance of a database and IDA APIs aren't multithreading, cannot be parallelized except by doing ugly workarounds like duplicating the same database a number of times, exporting ranges of functions, and then integrating results from each analysis into a single final SQL database. If what you are referring to is this last scenario, sorry, I won't implement it. If it's not, please tell me and I will explore it.

gameworld2007 commented 6 months ago

thanks