-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dedupe Traits #60
Comments
If someone can link an executable that generate duplicates I will investigate about that |
Lines 518 to 527 in 0f84757
Looks like no check if addr is visited here, maybe why we getting dupes |
This check seems dont fix the issue, trying to put a 'guard' check after the element is get from the queue by the DecompilerWorker and check if is visited (this should not be visited) if we dont have an issue on address scheduling this bug is on TraitWorker |
@jbx81-1337 you may want to try checking out the branch |
@herrcore did we address this, this issue ongoing? |
Lines 229 to 257 in dd107c1
|
Seems AppendTrait is called multiple times for the same trait, i dont understand if is possible to trigger multiple conditional path in the section code provided by @c3rb3ru5d3d53c . I have tried to switch from 'if' to 'else if' but seems equal, my suggestion is to keep track of processed trait with AppendTrait in 'visited' map, set address as DECOMPILER_VISITED_APPENDED and remove the duplicated trait. |
Investigating this one now 😄 |
So I thought about this a decent amount, there are times where a jump instruction can be referenced multiple times, and I also notice that functions are not duplicated. As such, I think that this issue does stem from what you are saying. Now the hard part is to determine where to best implement code to solve that. We could implement an additional check perhaps to the method |
So believe I found the issue, we need to split |
Ok, I don't really understand where the issue is because I noticed that the duplicated traits are type=block, and in any case the actual code doesn't push the addr on the Worker queue if Is already visited, I also made some checks for older version of binlex and seems has the same bug |
Fix trait duplication
The text was updated successfully, but these errors were encountered: