[cfe-dev] Senior Development Project

Tim Pugh via cfe-dev cfe-dev at lists.llvm.org
Mon Nov 19 13:04:30 PST 2018


Good Afternoon Developers,

I'm currently working on educational senior project in computer science
attempting to randomize the layout of manually and automatically selected C
structures.

I'm currently trying to develop the manual randomization feature and
develop an automatic structure selection method (e.G. all function
pointers).

Some goals of the project:

1.) Full randomization: All structures marked with  "__randomize_layout"
have their field positions randomized, including bit fields.

2.) Best Effort: Limit randomization to cache-line (64 byte) size regions,
and keep adjacent bit-fields together.

3.) Automatic structure selection: Find structures that should be
automatically selected (for example, structures of entirely function
pointers), disabled with "__no_randomize_layout".

We will of course be working on regressions tests to check all corner cases
and include it in the implementation.

As the student team is new to this type of development, we hope to ask for
any documentation, guidance or items to be on the lookout for. We are
curious if a plugin may be capable of doing the listed goals, or within a
LLVM pass? How would we target struct layouts in the LLVM pass?

Any and all help would be very appreciated. We are in the beginning stages
of planning and look forward to any guidance.

All the best,

Tim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181119/82a62368/attachment.html>


More information about the cfe-dev mailing list