Skip to content
  1. Feb 04, 2018
  2. Feb 03, 2018
  3. Sep 13, 2017
  4. Aug 15, 2017
  5. Aug 02, 2017
  6. Aug 01, 2017
  7. Jun 27, 2017
  8. Jun 23, 2017
  9. Apr 23, 2017
    • Alessandro Gario's avatar
      A graphical plugin for IDA (#246) · 8d99610e
      Alessandro Gario authored
      * IDA GUI: Initial commit (mockup).
      
      * IDA GUI: added OS/arch detection and entry point list selection.
      
      * IDA GUI: the entry point list should not contains exported functions.
      
      * IDA GUI: Renamed 'Entry point list' -> "Function list". Logo improvements.
      
      The logo is now present in two variants: dark and normal. The
      most suitable one is selected based on the user theme.
      
      * IDA GUI: The 'Export list' page has been implemented.
      
      * IDA GUI: Implemented the accesser methods into the page widgets.
      
      * IDA GUI: Added a call to the get_cfg.py scripts. Added support for symbol definitions.
      
      * IDA GUI: Function names can now be added/removed with a double click.
      
      * IDA GUI: Added support for standard definition files.
      
      * IDA GUI: Added project information on the right hand side of the logo.
      
      * IDA GUI: Use a more appropriate link color for dark themes.
      
      * IDA GUI: The "Export list" page should not contain data symbols.
      
      * IDA GUI: get_cfg.py reverted (24988f9d). Added a new function for the GUI.
      8d99610e
    • Alessandro Gario's avatar
      Check the entry points before lifting. Add a CFG function listing option. (#247) · 7d4e2b09
      Alessandro Gario authored
      * Check the entry points before lifting. Add a CFG function listing option.
      
       o Make sure that the specified entry points exists
         in the supplied CFG file before lifting the code.
       o Allow the user to list the functions that have
         been saved in the CFG file (--list-cfg-functions).
      
      * Fixed several memory leaks (see details).
      
       o The deserialized (protobuf) data was not being
         released.
       o The LLVM context was not being released, leaking
         resources for which it had ownership.
       o The NativeModule object was not being released.
      
      * Command line options fix (see details).
      
      The OutputFilename command line parameter can't be
      empty because it is initialized to stdout by default
      (see llvm::cl::init("-"). The is-empty check has been
      removed because initializing it to an empty string
      breaks the tests because they expect to grab the output
      by redirecting the stdout stream.
      
      * Use the correct list when searching for entry points.
      7d4e2b09
  10. Apr 21, 2017
  11. Apr 16, 2017
  12. Apr 14, 2017
  13. Apr 13, 2017
  14. Apr 12, 2017
    • artemdinaburg's avatar
      Travis-CI Support for MacOS (#233) · 74563ba8
      artemdinaburg authored
      * Attempt travis for osx
      
      * Fixing travis.yml
      
      * Update travis
      
      * hack around not having realpath in the beginning
      
      * Attempting osx fix
      
      * attempt to work around broken osx things
      
      * Use clang/clang++ instead of clang-3.8/clang++-3.8 on osx
      
      * Attempt to better find protobuf on osx
      
      * Use -H with pip
      
      * brew install protobuf
      
      * proto 2.6 on mac
      
      * Attempted hackery
      
      * Yet another try
      74563ba8
  15. Apr 11, 2017
    • Joshua Cranmer's avatar
      Implement an inline assembly fallback for unsupported instructions. (#232) · 2ec9ee23
      Joshua Cranmer authored
      This won't support all cases (256-bit and 512-bit instructions for sure), but
      this should allow for correctness on unknown instructions, even if the generated
      output will cause the optimizers to throw their hands up in the air.
      
      The test is somewhat flaky since it passes 16 arguments into printf after the
      the printf string, which seems to be more than mcsema expects. It also requires
      particular compilation flags to get the aes instructions to compile and run
      (that means you need Intel Westmere or newer or AMD Bulldozer or newer).
      
      I used AES for the test case since I figured no one would ever bother
      implementing an instruction lifter for these instructions unless it were part
      of a generalized intrinsic uplifting technique.
      2ec9ee23
    • Alessandro Gario's avatar
    • artemdinaburg's avatar
      More windows fixes (#230) · 76ea458e
      artemdinaburg authored
      * More windows fixes
      
      * Escape CMAKE_BINARY_PATH also
      * win32 => windows for mcsema-lift expected arch, to match mcsema-disass
      * Fix data and underscores for externals
      * IDA 6.7 compatibility in get_cfg.py
      
      * Fix __crtSetUnhandledExceptionFilter declaration
      
      * Do not mangle items provided via -entrypoint
      
      * Simplify CMakeLists and Windows bootstrap
      
      * Integration tests run on Windows
      
      * Run mcsema-lift tests on Windows
      
      * Fix linux
      
      * Fix Module path in CMakeLists
      
      * Another attempt at fixing Linux build
      76ea458e
  16. Apr 05, 2017
    • artemdinaburg's avatar
      Windows fixes to get mcsema-disass working (#226) · c9dcc1d9
      artemdinaburg authored
      * Windows fixes to get mcsema-disass working
      
      * Install protobuf, protoc, and python-protobuf from source
      * Quote IDA path to handle paths with spaces and shell=True
      * Set SystemRoot in env so IDAPython can still run
      * Add entries to windows.txt to handle a HelloWorld release build
      
      * Simplify protobuf finding for win32 and not win32
      
      * Fix linux
      c9dcc1d9
  17. Apr 04, 2017
    • Alessandro Gario's avatar
      The disassembler script (get_cfg.py) can now be run manually. (#227) · 24988f9d
      Alessandro Gario authored
      * The disassembler script (get_cfg.py) can now be run manually.
      
      The disassembler script can now be run manually from
      IDA Pro (File, Script file...). The 'ida_kernwin.cvar.batch'
      variable is used to determine whether IDA Pro is being run
      in batch mode or not.
      
      * Use the function under the cursor as starting entry point
      24988f9d
  18. Apr 03, 2017
    • Alessandro Gario's avatar
      CMake: automatically generate protobuf files when configuring the project. (#224) · bfb00846
      Alessandro Gario authored
      * CMake: automatically generate protobuf files when configuring the project.
      
      Moved some functionality from the bootstrap.sh file to the CMake
      project.
      
       o The protobuf file generation has been embedded inside the main
         CMakeLists.txt. CMake will now automatically rebuild those files
         when it detects a change in the header files.
       o The CFG_pb2.py file is now copied with an INSTALL directive.
       o Generated files are now outside the build directory.
      
      * Windows bootstrap: update the 'generated' folder path
      
      * Windows doesn't have 'protoc' executable in the PATH; use the absolute path.
      
      * Fixed a couple of variable names.
      bfb00846
    • artemdinaburg's avatar
      Small bootstrap fixes (#225) · 89b18bdd
      artemdinaburg authored
      * Since MacOS and Linux got merged, we no longer need bootstrap.osx.sh
      * Do not build generated drivers for Linux and Windows on MacOS, since
        they are unusable on the platform
      89b18bdd
    • Josh Soref's avatar
      Spelling fixes (#223) · 28666afc
      Josh Soref authored
      * spelling: access
      
      * spelling: argument
      
      * spelling: application
      
      * spelling: comparison
      
      * spelling: designed
      
      * spelling: detected
      
      * spelling: difference
      
      * spelling: duplicate
      
      * spelling: features
      
      * spelling: following
      
      * spelling: immediate
      
      * spelling: implementing
      
      * spelling: incomplete
      
      * spelling: modification
      
      * spelling: needed
      
      * spelling: convention
      
      * spelling: offset
      
      * spelling: opaque
      
      * spelling: preventing
      
      * spelling: popped
      
      * spelling: portion
      
      * spelling: possible
      
      * spelling: position
      
      * spelling: permission
      
      * spelling: probably
      
      * spelling: recursive
      
      * spelling: reference
      
      * spelling: retrieve
      
      * spelling: silently
      
      * spelling: something
      
      * spelling: tables
      
      * spelling: terminate
      28666afc
  19. Apr 02, 2017
  20. Apr 01, 2017
    • Alessandro Gario's avatar
      Unify the bootstrap shellscripts into one. Add support to Arch Linux, Ubuntu and OSX. (#221) · 23c3aa50
      Alessandro Gario authored
      * Unify the bootstrap shellscripts into one. Add support to Arch Linux, Ubuntu and OSX.
      
       o Added a couple of sanity checks to avoid breaking the script
         when something goes wrong (i.e.: when you get a broken llvm
         src tarball).
       o Always attempt to continue if the required packages could not
         be installed, informing the user to make sure that the needed
         libraries are correctly installed.
       o The bootstrap.osx.sh steps have been merged.
      
      * The bootstrap script failed to build when it was not able to find the third-party/llvm/llvm_version file.
      
      This error is triggered when building from a "third-party/llvm"
      folder extracted with the previous version of the shellscript,
      because the llvm_version file is missing.
      23c3aa50
    • Peter Goodman's avatar
      Accumulates prefix bytes into the set of instruction bytes, and tries… (#213) · 6db5ec08
      Peter Goodman authored
      * Accumulates prefix bytes into the set of instruction bytes, and tries to reduce the amount of instruction decoding done.
      
      * Indentation fixes. Removed some REP recognition stuff in the script. Fixed up an isConditionalBranch that was still using ea. Fixed up an issue where the instruction bytes weren't converted into a string.
      
      * Mark __assert_fail as not returning
      6db5ec08