-
Notifications
You must be signed in to change notification settings - Fork 120
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
vtable assignment #34
Comments
Thanks again for testing the tool and providing the encouragement. We will look at the issues you pointed out - unless you or someone else can beat us by providing a patch to address these issues :-) |
Btw, of course the actual virtual call to foo does not work yet. But that's probably known. |
Yes, you are right. There are a host of extremely interesting C++ idioms to be abstracted (raised) to LLVM IR level once we get a chance to focus on raising C++ binaries. |
PoC: Trass3r@47e61ec @_ZTV4Base = weak dso_local global [5 x i64] [i64 0, i64 0, i64 4198742, i64 4198744, i64 4198750]
%1 = getelementptr inbounds [5 x i64], [5 x i64]* @_ZTV4Base, i32 0, i32 2
%2 = inttoptr i64 %RDI to i64**
store i64* %1, i64** %2, align 8 Basically works but would require something more sophisticated to avoid false positives and the table entries would have to be converted into actual function pointers. |
Related: 6f71623 |
With the #33 patch it's possible to lift a simple C++ program involving vtables.
But other than that it works fine and produces nice output, kudos!
The text was updated successfully, but these errors were encountered: