-
Notifications
You must be signed in to change notification settings - Fork 378
IRSB decode error for self-modifying code? #26
Comments
Above all, do you guys have any plan to open a forum to share knowledge? I find it very difficult to follow many different aspects of the symbolic execution. Besides it would be great to share some great techniques among researchers. Much appreciated, |
If you want angr to parse self-modifying code you need to initialize the project with |
On top of that, due to how angr works internally, your "check" function will only be called at the beginning of a basic block. The address you're looking for,
(if you want to learn more about VEX, check out https://github.com/angr/angr-doc/blob/master/ir.md) There are two things you can do: break at If you really need to break at that exact instruction, SimuVEX breakpoints are more granular, and let you break at specific instructions or whenever any conditions are met (i.e., some specific address being written to). You can read more about that at https://github.com/angr/angr-doc/blob/master/simuvex.md#breakpoints |
As for the forum, are you on #angr on freenode.net? That's the closest thing that we have at the moment... |
Thanks heaps. I'm on freenode.net now. I will ask questions there from now on. salls already helped me on a couple of things. Knowing find callback gets invoked at the BBL level helps! I'm trying to do some taint analysis aiming to identify the decryptor code and its associated encrypted block that gets decrypted. salls advised me to use 'TRACK_ACTION_HISTORY' for recording all taint info. Thanks! |
Hi Guys,
I am pretty new to angr. I think it's really cool. I wrote some basic code for testing a shellcode. The source is as follows:
The shellocode disassembly looks like this:
The shellcode XORs the obfuscated block of code starting at 0x401017. My test angr script should be able to stop right before jumping into the deobfuscated code at 0x401010, which allows me to inspect deobfuscated code. But instead I've got the following error paths.
Since there are only a couple of direct jumps till the 0x401010, angr shouldn't attempt to parse the obfuscated block (that contains gibberish-looking code before deobfuscation). But it appears that's what angr is doing there. I might be wrong. See more error details below.
Please find the shellcode in the zip (pw: infected). Any comment will be greatly appreciated.
shellcode.exe.zip
The text was updated successfully, but these errors were encountered: