-
Notifications
You must be signed in to change notification settings - Fork 136
Set only few bytes of the input as symbolic #39
Comments
Another fundamental question: Is it worth doing this? Have you an idea of the overhead of setting only e.g 10 bytes vs 500 bytes as symbolic? In the paper I read that QSYM solves only relevant constraints so maybe this is useless in terms of performance if I specify the interesting branches that must be considered (maybe using the AFL bitmap). |
Hi, Andrea. inline void makeExpr(ADDRINT addr) {
ExprRef e = g_expr_builder->createRead(off_++);
if(off_ not in symbolic_offsets) {
clearExprFromMem(addr);
}
else {
setExprToMem(addr, e);
}
} For fundamental question, yes, it is worth doing this. |
Ok ty, I didn't understand that the concrete memory is firstly copied and then marked as symbolic so just unmarking seems fine. Another question: As I understood from #4 I must compile the tool using an old GCC. Have you tried to compile it on Ubuntu 16 and then execute the pintool on a recent distro? There are kernel issues or it is just an ABI issue (I remember that libstdc++ should be provided by PIN so should be a compiler issue not related to libs). |
Actually, Ubuntu 16.04 also has ABI issue and we used hack for resolving that issue as you can see here. For latest kernel, it seems it has some compatibility issue in PIN. |
Ok seems that an old kernel is the only solution, ty for your time. |
Yes, I feel like qemu seems the best option. |
Hi,
I'm trying to set only few bytes in the input as symbolic.
My idea is to transform the makeExpr method in memory.h from
to something like this:
Can you give me an opinion about this? Do you think that is possible to use QSYM in this way?
I'm modifying the right part of the codebase?
Thanks :)
The text was updated successfully, but these errors were encountered: