[llvm-dev] Transfer information IR to binary

Wehrli Johan via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 22 06:45:53 PST 2016


I will try to explain better what I do.

The main goal behind this is to verify that a part of code is not modified by someone else (it is an integrity check).

To do this, I create in IR a function who take 2 parameters, a begin and an end value.

This function perform an hash over the code area (from begin to end) and return it.

At first, I don’t know the addresses and the hash value so I put random value (it is an integer 64 bits).

The function look like uint32_t isModified(uint64_t* begin, uint64_t* end).

Once the compilation is over, I need to update the begin address, end address and the hash value.

When I say the compilation is over, I mean the clang driver has finished all of his action (compiling, linking, etc.).

Greetings,

Johan


> On 22 Feb 2016, at 15:04, mats petersson <mats at planetcatfish.com> wrote:
> 
> What kind of constant: type, value and how is it created?
> 
> You can make public symbols that you can extract in a linker script to a special section.
> 
> Or perhaps you want some metadata that a special late state (machine instr) pass is extracting and adding.
> 
> The "best" solution really depends on what you are trying to achieve overall and what kind of data you are working with.
> 
> --
> Mats
> 
> On 22 February 2016 at 13:04, Wehrli Johan via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> Hi,
> 
> I want to know if it is possible to pass information from IR to the final binary (like a constant value)?
> 
> I have a module pass in IR who make some transformation and, once the compilation is finished, I need to apply a post-processing.
> 
> The post-processing need information from the IR part.
> 
> Greetings,
> 
> Johan
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160222/dab6e7f8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160222/dab6e7f8/attachment.sig>


More information about the llvm-dev mailing list