<div dir="ltr"><div>LLVM IR represents higher level than assembler code, it keeps some names and it is easier to revert the IR to source code than a binary format.</div><div><br></div><div>The main task of LLVM IR is code generation. I don't think adding obfuscation has particular worth, those who need it can use tools and approaches specifically aimed at obfuscation. Even simple rename of identifiers in source code makes C/C++ file very difficult to analyze. In other cases one might use anti-debugger tricks or execution code in virtual machine. Everything depends on the level of obfuscation, it is impractical to make LLVM IR a tool for that.</div>
<div><br></div><div>Thanks,</div><div>--Serge</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/15 Wan, Xiaofei <span dir="ltr"><<a href="mailto:xiaofei.wan@intel.com" target="_blank">xiaofei.wan@intel.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">HI,<br>
<br>
I am interested in whether LLVM bit-code is ready for a distribution format(stored in software distribution package); is it easy to revert LLVM IR to C/C++ source code like Java byte code? My understanding is that.<br>
1. LLVM IR is more like assembly code, so it is not easy for reverse engineering.<br>
2. If it is easy for reverse engineering, does it mean it is not suitable for distribution format? Otherwise code obfuscation in IR level must be added.<br>
<br>
Thanks<br>
Wan Xiaofei<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Thanks,<br>--Serge<br>
</div>