-
Notifications
You must be signed in to change notification settings - Fork 115
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
IRSB VEX does not capture calls #37
Comments
Looks like you figured it out, since you closed it, but VEX only lifts a single basic block at a time - a call instruction is the end of a basic block so it's going to stop here. the IRSB you pasted is a little cut off - it should say that the "jumpkind" for this block is |
Yeah, actually just writing the issue helped me understand a lot :) Thanks for the prompt reply! |
@nimrodpar Does your approach work to get an entire function (from IDA) converted to vex? In other words, does it work to pass these "bytes" representing an entire function to pyvex? Or do I need to break up the IDA function in basic blocks? Does pyvex automatically break the "bytes" up into several IRSBs? |
@gitttt: from my experience if you give pyvex a stream of bytes, it will translate them up to the first jump (or 400 bytes, what comes first) so yeah, a good approach would be to get the blocks from IDA and translate them individually. Note that pyvex will still break the block if a call is encountered.. |
Hi, big fan here!
Trying to use the IRSB class directly to translate bytes (extracted from IDA) to VEX.
When i try to translate the following:
using
pyvex.IRSB(bytes, 0x0000000000400623, cle.archinfo.arch.ArchAMD64())
, i get the following VEX:Which i guess is consistent, up to the point of calls.
Any idea where them calls at? Thanks!
The text was updated successfully, but these errors were encountered: