-
Notifications
You must be signed in to change notification settings - Fork 214
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
Block has wrong return value if it is reused by cascading math beforehand #6175
Comments
@VisualEhrmanntraut Any chance you can share the binary? Sorry that I am not connecting the dots |
@xusheng6 No, sorry, but I can share any further information needed. Just tell me what you need. |
Sure, that is totally fine. Can you show me the LLIL and MLIL as well? I am having some difficulty understanding what is going on |
@xusheng6 Here, |
So it seems to me the switch-case is using
where does the 0xb0007 come from? |
essentially what this function does is convert a version number to an enumerator |
OK I now see how it works. Where is the |
The code uses cascaded subtractions to take values off the incoming r8 register, and return rax values based on that. It seems we somehow screw up the return value tracking |
@xusheng6 eax, afaict |
Also @VisualEhrmanntraut , what about other cases after the one which should return 0x2? I see there should be quite a few more of them. Do we deal with it correctly? |
@xusheng6 All of them seem correct except two, the "2" one and this |
I understand what is happening, but do not know why it is happening. Will need someone else to look into it |
I think this may be a duplicate of this issue: #6101 |
Hm, maybe. I didn't really know what to look for when creating the issue (or look through 1.5k issues). |
Version and Platform (required):
Bug Description:
See below:
Result:
Expected Behavior:
Should be
return 2
The text was updated successfully, but these errors were encountered: