58 Commits

Author SHA1 Message Date
Farzon Lotfi dfd4019945 Fix mcsema_disass docs link for get_cfg.py (#762) 2021-10-21 12:37:07 -04:00
Peter Goodman b0f7790f43 Sparc support (#709)
* Adds sparc support; formats files

* Update the readme and walkthrough

* Minor tweaks to readme/walkthrough

* Update ci.yml
2020-11-05 12:59:20 -05:00
JaeIL Ryu c9fd645c8a Update NavigatingTheCode.md (#639)
linefeed
1.2.3.4
||
v
1.
2.
3.
4.
2020-03-26 12:57:42 -04:00
JaeIL Ryu 712a6090fd Update CommandLineReference.md (#636)
mcsema-lift => mcsema-lift-${version}

when i build from source code. binary file name is mcsema-lift-4.0.
and command is mcsema-lift-4.0.
and i found "mcsema-lift-"+ version from many source codes.
2020-03-18 13:57:15 -04:00
Alessandro Gario 1a96bd3712 Update links and remotes to the new organization name (#598)
* Docs: Update links with the new organization name

* CI/Travis: Update remotes with the new organization name

* mcsema-disass: Update links with the new organization name

* Dockerfile: Update remotes with the new organization name
2019-10-27 12:56:23 -04:00
artemdinaburg f41a03c4a1 Add McSema logo to README (#438)
* Add mcsema logo to images

* Update README.md

Add the mcsema logo to the README
2018-08-02 11:56:50 -04:00
Peter Goodman 573f80bd11 Update DebuggingTips.md
Fix broken link.
2018-04-14 16:26:23 -04:00
Peter Goodman 9ba5019865 Update DebuggingTips.md
Update to use new names of command-line flags, gdb commmands, and `State` structure.
2018-04-14 16:24:45 -04:00
artemdinaburg 7a7dc48a16 Fix Integration Tests (#394)
* Remove old documentation
* Fix cmake lists to set C/CXX compiler first, to avoid infinite loops
* Fix pthread tests
* Add documentation
* Making ADA tests work with test generator
* Strip resulting binary for cpp_construtor so it works with .init/.fini
* Looser comparison for output validation
* Update test suite with Ubuntu 14.04 CFGs for travis-ci
2018-03-29 18:26:00 -04:00
Timothy Pearson cc9bb16731 Update documentation for new IDA licensees (#378) 2018-02-06 05:31:36 -05:00
kumarak 4c8387dc0e Issue 330 libc constructor crash (#335)
* Issue #330; --libc_constructor flag was producing the crashing bitcode for apache; Special case the constructor/destructor segment to lift them together as one GV;

* Testcase for the cpp constructor/destructor function

* Update test_suite generator start.py

* updated comments

* Update the comments about Issue#330, handle condition if the init_array and fini_array are not adjacent;

* Updated comments, remove non-utf character getting copied from the IDA;

* Updated command line reference

Added a brief description of the command line arguments `--libc_constructor` and `--libc_destructor`.

* review comment changes
2017-11-22 20:37:25 -05:00
Mike Myers f5cce245f7 Issue 281 update documentation (#327)
* Docs: add content, fix typos, fix formatting

* Rename doc file: Mcsema -> McSema

* Add a standard Contributing Guidelines doc

* Add remarks on verifying McSema, and unit tests
2017-11-15 22:23:42 -05:00
Peter Goodman d77167d8c8 Working on Issue #281 to update the documentation. 2017-10-16 15:40:02 -04:00
Peter Goodman 18abc11714 Added new --legacy_mode operation that tries to produce bitcode that is more similar to old bitcode. Also updates get_cfg.py to disassemble in such a way that mcsema2 will be able to support global variable recovery as though they were distinct segments 2017-08-16 23:06:53 -04:00
Dan Guido 3d44b45f5a Update UsingLibFuzzer.md 2017-03-21 22:29:23 -04:00
Dan Guido cab60feeb5 grammar 2017-03-21 22:28:45 -04:00
artemdinaburg b566ab9adb Runtime to lib (#199)
* Working on Issue #184. Sort of have the linux runtimes compiling to archives with CMake, though there are some issues with the test cases all breaking.

* Initial attempt at better windows bootstrap

* Lower build requirements to Win7 and VS2013

* Fix Linux runtime lib generation

* A tiny bit of cleanup before attempting to build Windows libraries

* Bootstrap with clang on Windows

* Win32 libs now building, still need to test Win64 and Linux

* Fix Linux build

* Fix bootstrap & build for Win64

* Update ls.cfg

* Update README.md

Updating Windows installation requirements

* Updating documentation to reflect new build command lines
2017-03-20 13:20:06 -04:00
Peter Goodman 895cfbd502 Completed the debugging tips document with a step-by-step walkthrough of a real bug and its fix. This commit also happens to fix ctvsi2ss for 64-bit operands. 2017-03-14 15:46:28 -04:00
Dan Guido 240e8acf91 Update UsingLibFuzzer.md 2017-03-14 08:28:20 -04:00
Peter Goodman 9ee7bec444 How to debug mcsema (#188)
* Generalizes two debugging features. The first, -add-breakpoints, adds instruction-specific 'breakpoint' function calls before every lifted instruction. The second, -add-reg-tracer, adds in a function that prints out the value of every general purpose register before each instruction execution.

* In-progress doc

* ...

* More of the debugging doc, some more images, a PIN tool to complement the new -add-reg-tracer option to mcsema-lift. Still a ways from being done though.
2017-03-13 22:09:45 -04:00
artemdinaburg 96b3210793 Update McsemaWalkthrough.md
* Update document to reflect recent bugfixes.
* Remove paths specific to my installation of mcsema
2017-03-13 15:41:46 -04:00
artemdinaburg d071b6da15 Remove old architecture docs (#183) 2017-03-13 13:07:26 -04:00
artemdinaburg d22a07aa3f Merge usecases into README (#185) 2017-03-13 13:07:18 -04:00
Garret Reece 5688f6443f + script to print DEF file (#170)
* + script to print DEF file
* + added documentation and linked it to the walkthrough
2017-03-10 15:18:20 -05:00
artemdinaburg 98cc56cdd1 Show how to use mcsema with libFuzzer (#176)
* Guide for using libFuzzer with mcsema
* Show where to find docs from the libFuzzer directory
* Updating global README
2017-03-10 14:16:17 -05:00
Garret Reece f0df1091dd Merge pull request #175 from trailofbits/usecase_documentation
Usecase documentation
2017-03-10 11:23:33 -06:00
Artem Dinaburg 4217892168 Update usecases 2017-03-10 11:38:19 -05:00
Garret Reece afc546cf35 + first pass at use cases documentation 2017-03-10 08:55:04 -06:00
Garret Reece f3da8dfbd6 + first pass at mcsema usecases 2017-03-09 13:49:16 -06:00
artemdinaburg 12c6929a4b Updating the 'Add An Instruction' docs (#169) 2017-03-09 12:49:24 -05:00
Peter Goodman 8fd9ea024d Life of an instruction document (#163)
* Life of an instruction document

* Resolves comments
2017-03-09 11:44:53 -05:00
artemdinaburg 0806b7d02c Update limitations (#168) 2017-03-09 10:02:33 -05:00
artemdinaburg e1bb83a80f Document walkthrough (#166)
* minor edits to walkthrough
2017-03-08 17:25:35 -05:00
Peter Goodman 62eba71105 Adding the document, and moved some more files around to make the xre… (#158)
* Adding the document, and moved some more files around to make the xrefs in the doc make sense

* Update readme

* try to make xref link paths work

* minor wording

* minor wording

* Addressed comments
2017-03-08 17:24:16 -05:00
Garret Reece 22ae23b07e Cut rotted documentation (#164)
* + cleaned out a bunch of dead documentation

* + added build instructions for Linux back in

* + oh yeah, the README has build instructions
2017-03-08 17:04:06 -05:00
artemdinaburg 613f667bef Add walkthrough document (#162) 2017-03-08 17:01:38 -05:00
artemdinaburg cb270ead21 Documentation of common errors (#154)
* Beging documenting common errors

* Adding more common errors

* Added another error type and possible fixes

* Fix some silliness about the latest error

* Documents the 'missing instruction' error

* Fix typo

* Document StoreInst assertion and fixes

* Fix wording

* More common error talk on segfaults
2017-03-07 15:33:28 -05:00
artemdinaburg 94824aff78 Document How To Add Integration Tests (#126)
* Integration Test Documentation

* Document how to add a new test to the integeration test framework
* Add the `switch` test as a part of the documentation process

* Missed some files

* Fixing documentation links

* Updating version info in Adding A New Test guide
2017-03-06 19:51:56 -05:00
Peter Goodman bcda6a120a Llvm38 (#112)
* - Upgrade to official llvm 3.8
- remove boost
- unify all cmake files into a single cmake file
- use official protobuf
- start factoring out x86-specific stuff to eventually make an arm port easier
- simplify the CLI; now use mcsema-lift, with -arch, -os, -cfg, -entrypoint, and -o. No more having to specify the target triple.
- moves source code slightly closer to our style guide

Note:
- lifted bitcode is not quite right in some cases, so this isn't a stable branch!
- TODO: re-add test cases to discover source of stability problems.

* Some minor fixes, one to make sure xmm regs in the state struct are properly aligned

* Added missing std defs for option parsing. This makes /bin/ls work properly :-)

* Remove old cmake files

* Minor changes to get_cfg.py and raiseX86.cpp in relation to those changes. Those changes don't fix anything, the purpose was to make symbol names for things match between python and cpp. E.g. get_cfg would name things like dta_0xf00, sub_0xf00, ext_... And it seems that it was dta_ instead of data_ for a reallly flaky and dumb reason but oh well. I also fixed a subtle bug related to saving and restoring of callee saved registers on elf 64. I have not made related changes to elf 32 or pe 32/64, though those may be necessary.

* Minor fix

* Adding mcsema-disass, which is a nice wrapper around get_cfg.py.

* Working on readme and cleaning out (currently) unused stuff from the repo

* Renaming mc-sema dir to mcsema

* new travis file

* Updates to bootstrap and build process

* Minor bootstrap fixes

* Well, don't have windows working yet but this is kind of progress I think

* Travis should work now

* Updating protobuf-cmake files so we can generate a VS2015 solution

* Removing and adding some choco packages from README

* Bootstrap now builds protobuf and generates protobuf files
LLVM should now be built on Windows

* Adding Win32 specific compiler options

* Renamed ConstantInt to CreateConstantInt to satisfy MSVC

* Build Release LLVM to not have linking conflicts of MD vs MDd

* Added some missing instructions

* Adding changes to generate runtimes

* Windows bootstrap works.
2017-02-23 13:23:31 -05:00
Peter Goodman 641cfef7e5 No boost (#88)
* Reformatting Annotation.cpp

* WIP

* Things build for me, but I need to do more extensive testing.

* Missing instruction

* Updated docs; got demos working, except demo17, which probably never ran.

* entry_pc can be 0; use -1 instead
2017-01-27 13:53:15 -05:00
Artem Dinaburg 72ea3345b1 Merge branch 'master' of github.com:trailofbits/mcsema into thttpd 2016-08-31 15:19:36 -04:00
Moshe Kaplan e56c62631e Correct typos in TOOLS.md 2016-06-09 14:03:11 -04:00
artemdinaburg 0defdf9b73 Update ARCHITECTURE.md
Fix typo
2016-05-26 12:48:08 -04:00
Artem Dinaburg 67aa11cb06 merging 2016-05-23 19:27:55 -04:00
Artem Dinaburg 314982abc4 Update documentation 2016-05-19 17:10:21 -04:00
Moshe Kaplan bda88659ab Correct typo in TOOLS.md 2016-04-20 17:56:00 -04:00
Artem Dinaburg 950c863903 Documentation updates 2015-04-04 00:51:30 -04:00
Dan Guido c2fd1e99b0 fix auto deploys 2015-01-30 18:41:16 -05:00
Artem Dinaburg 5d6635df9a Documentation updates; we now need C++11 2015-01-30 00:31:58 -05:00
mewmew a0215a170c docs: Fix a few typos. 2014-12-30 22:39:55 +01:00