I would like to introduce one of these papers I read a long time ago..

Security Testing of Software on Embedded Devices Using x86 Platform.pdf


Click image for larger version  Name:	paper_title_for_collaborate16.png Views:	0 Size:	65.9 KB ID:	491
Click image for larger version  Name:	paper_tables_for_collaborate16.png Views:	0 Size:	34.4 KB ID:	489
Click image for larger version  Name:	paper_for_vex_ir_translate_to_llvm_ir.png Views:	0 Size:	111.4 KB ID:	490
GCC
has worked hard in a long computer history, but it seems to be the time to retire.
GCC's role is now gradually being replaced by CLANG.
CLANG uses a general purpose LLVM IR, not a VEX IR.
LLVM IR has become the standard due to its strong compatibility and versatility.
It's like
VHDL replaces Verilog, which has a long tradition.
Universal plug-in projects that use
LLVM IR are constantly being created and are very powerful.
If you can represent binary code using
LLVM IR, you can also convert binary code to Javascript or Python language.
A long time ago, there was an article about running
Unreal Engine developed in C++ on the web.
Do you remember?
It was a project called
emscripten and LLVM IR was the core technology.
When the project was first introduced, my neighborhood hackers weren't interested in
LLVM IR.
But I already confirmed the power of
LLVM IR at that time.
Since then I've kept interest in converting
Assembly Language to LLVM IR so far.
And even the
retdec tool has been developed today.
IR technology is also key to developing decompilers.
Now this paper is about converting that machine language into
LLVM IR.
If you want to study
LLVM IR, you may need a paper on how to convert VEX IR to LLVM IR.
Today there are many different ways to translate
machine language into LLVM IR.
Retdec tool is also very interesting, but this paper may be more interesting.
Anyway, not only do we want to build a
decompiler, but we also want to implement great analytical tools like angr.
So we need to check the value for
VEX IR.

This paper only presents the concepts and at the time of my reading there was no actual translator source code.
Although not relevant to this paper, I found the translator source code for this concept today.
So I wrote this article.

I haven't checked if this code is useful yet. I should study like you.


https://github.com/heyitsanthony/vexllvm.git