-
I was cleaning up some functions that were falsely matched by signature scanning earlier, and by the time I was done, I saw some curious warnings in the log:
(There are multiple locations.) Navigating to that area of the binary, I see: There seems to be a weird gap here. Reading some bytes via the Python console shows that there's clearly code in the gap: >>> bv.read(0x140ca069d, 50)
b'\xcc\xcc\xccH\x83\xec8\xf3\x0f\x10!3\xc0\x0f)t$ \x0f(\xcc\xf3\x0f\x10q\x04\xf3\x0fY\n\x0f(\xc6\xf3\x0fYB\x10\x0f)|$\x10\xf3\x0f\x10y\x14\xf3\x0f' I don't really know what's happened here or what a blacklisted function is - I can't find anything in the documentation elaborating on it. What can I do to fix up this issue? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 6 replies
-
In the specific case of the image you've provided, those I assume, because I see a bunch of For your other question, I believe a "blacklisted function" is what happens when a user function is removed. I believe we do this so auto-analysis doesn't try to re-create the function on future passes, but I'm not sure. If you (or someone else - the blacklist gets stored in the database) had previously tried to make that a function, but then removed it, I believe that would be the expected result. If not, I'm not too sure what's going on and might need additional context. |
Beta Was this translation helpful? Give feedback.
In the specific case of the image you've provided, those
\xcc
bytes are being skipped because, according to Binary Ninja, there's no way to get control flow to execute those bytes (because of thereturn
just before them). Other disassemblers might still disassemble them as code because they're in atext
section, but many compilers will interleave code and data as an optimization, so we assume those bytes are data or padding.I assume, because I see a bunch of
rax
's and things, this is an x64 executable. The\xcc
bytes are probably padding and intended to cause aSIGTRAP
during execution if they're ever executed? So, without any additional context, I believe it's reasonable for Binary Ninj…