Skip to content

Instantly share code, notes, and snippets.

@dbwodlf3
Last active July 20, 2020 08:55
Show Gist options
  • Select an option

  • Save dbwodlf3/8a7d419b2253ed3f7ddefb0fee50711a to your computer and use it in GitHub Desktop.

Select an option

Save dbwodlf3/8a7d419b2253ed3f7ddefb0fee50711a to your computer and use it in GitHub Desktop.
McSema Simple Example 00.
usr@local:~$ clang HelloWorld.c -target x86_64-unknown-linux-gnu -o HelloWorld.amd64.out

usr@local:~$ mcsema-disass --disassembler /opt/ida-7.1/idat64 --binary HelloWorld.amd64.out --entrypoint main --os linux --arch amd64 --log_file HelloWorld.amd64.cfg.log --output HelloWorld.amd64.cfg

usr@local:~$ mcsema-lift-9.0 --cfg HelloWorld.amd64.cfg --arch amd64 --os linux --output HelloWorld.amd64.lifted.bc
E20200720 15:54:15.707824 22655 Function.cpp:353] Cannot find target of instruction at 4003ec; the static target 4003f0 is not associated with a lifted subroutine, and it does not have a known call target.

usr@local:~$ clang -o HelloWorld.amd64.lifted.out HelloWorld.amd64.lifted.bc /usr/local/lib/libmcsema_rt64-9.0.a
usr@local:~$ ./HelloWorld.amd64.lifted.out
Hello World
usr@local:~$ remill-lift-9.0 --arch amd64 --bytes 90 --ir_out /dev/stdout
#include <stdio.h>
int main(){
printf("Hello World.");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment