-
Notifications
You must be signed in to change notification settings - Fork 37
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
Win64 Calling Convention Semantics Support #129
Comments
Not yet, no. @SaifRushdHadad are you willing to work on this? |
Yes, I would be! I'm hesitant to start working on it because I cannot even uplift a skeleton x86 PE binary with MCSema lifting-bits/mcsema#740 |
Do you have Binary Ninja or IDA Pro? If so, I'd recommend focusing on lifting just with Anvill, as we're underway on a big refactor and it'll help. In the case of IDA, @alessandrogario made a nice GUI interface to connecting Anvill and Rellic together. |
I have both of them and I'll give using Rellic a shot as an alternative for the meantime. |
So the medium-term plan with McSema is to swap out most of it for Anvill, so that most of the actual lifting is being done by Anvill itself, and McSema is mostly about the various heuristics we apply to capture additional cross-references in our scripts, along with packaging up all that info into our CFG file format. Either way, if you want to use McSema with Win64, you're going to need to help us with Anvill Note that anvill can generally lift machine code to bitcode. The rough usage is something like this in IDA Pro:
|
We have the two following IDA plugins:
|
Do you mean IDAPython part? Or will there be any huge changes to the CFG protobuf format? I'm working on adding mcsema into my tool-chain and this really matters. |
In the short/medium term not much will change. In the long term we'll probably migrate away from that format, but always strive to have things as a single file. Thus, if your usage of mcsema relies on manually decoding the CFG yourself then this may present challenges. However, if your usage is more related to running the IDAPython scripts and then treating the file as an opaque blob that you copy around / pass to mcsema-lift then I don't anticipate issues. |
It does not appear that Anvill supports x64 PE files according to this issue on the Mcsema repository: lifting-bits/mcsema#720
Is there any internal effort going on to provide support for the Win64 calling convention semantics?
The text was updated successfully, but these errors were encountered: