I am trying to use mc-sema to translate X86/X86_64 machine instructions
to LLVM IR.
In my machine code, function pointers are used, but it seems that mc-sema
is not able to handle this situation very well.
I tried to compile my c source code to X86 and X86_64 machine code,
in case of X86, it seems that the bitcode can be generated successfully,
but if I tried to link the bit code against some driver C code, although
the executable can be generated, but the generated executable can not
be run at all.
In case of X86_64, the process stops at converting the cfg file to bit code.
I have attached the source files, commands and map files that I used in
my test(you can just put the .tgz file under the root of mcsema and untar it there then the files
I used will be placed in mc-sema/tests and mc-sema/tests/x86_64, the commands are included in
demo_funcpointer.sh). I would be greatly appreciated if you can spare some time
to figure out what was wrong with it.
Thanks.
PS: my work is heavily dependent on mc-sema, some internal design
of bin_descend and cfg_to_bc will be greatly helpful to me.