nemerle 2543617930 Remove llvm as a build requirement | 8 年 前 | |
---|---|---|
3rd_party | 10 年 前 | |
CMakeScripts | 10 年 前 | |
common | 9 年 前 | |
include | 9 年 前 | |
prototypes | 10 年 前 | |
sigs | 10 年 前 | |
src | 8 年 前 | |
tests | 12 年 前 | |
tools | 9 年 前 | |
.gitignore | 12 年 前 | |
CMakeLists.txt | 8 年 前 | |
Readme.md | 10 年 前 | |
base_regression.sh | 9 年 前 | |
covproc.sh | 12 年 前 | |
full_regression.sh | 9 年 前 | |
regression_tester.rb | 10 年 前 | |
test_use_all.sh | 12 年 前 | |
test_use_base.sh | 12 年 前 | |
valgrind_base.sh | 12 年 前 | |
valgrind_tester | 12 年 前 |
I’ve fixed many issues in this codebase, among other things - memory reallocation during decompilation. To reflect those fixes, I’ve edited the original readme a bit.
Original readme:
dcc Distribution
The code provided in this distribution is © by their authors:
Cristina Cifuentes (most of dcc code)
Mike van Emmerik (signatures and prototype code)
Jeff Ledermann (some disassembly code)
and is provided «as is».
The following files are included in the dccoo.tar.gz distribution:
Note that the dcc_oo.exe program (in dcc32.zip) is a 32 bit program, so it won’t work under Windows 3.1. Also, it is a console mode program, meaning that it has to be run in the «Command Prompt» window (sometimes known as the «Dos Box»). It is not a GUI program.
The following files are included in the test.zip file: fibo, benchsho, benchlng, benchfn, benchmul, byteops, intops, longops, max, testlong, matrixmu, strlen, dhamp. The version of dcc included in this distribution (dccsrcoo.zip and dcc32.exe) is a bit better than the first release, but it is still broken in some cases, and we do not have the time to work in this project at present so we cannot provide any changes. Comments on individual files:
Our thanks to Gary Shaffstall for some debugging work. Current bugs are:
- there is a nasty problem whereby some arrays can get reallocated to
a new address, and some pointers can become invalid. This mainly
tends to happen to larger executable files. A major rewrite will
probably be required to fix this.
For more information refer to the thesis «Reverse Compilation Techniques» by Cristina Cifuentes, Queensland University of Technology, 1994, and the dcc home page:
http://www.it.uq.edu.au/groups/csm/dcc_readme.html
Please note that the executable version of dcc provided in this distribution does not necessarily match the source code provided, some changes were done without us keeping track of every change.
Using dcc
Here is a very brief summary of switches for dcc:
If dcc encounters illegal instructions, it will attempt to enter the so called interactive disassembler. The idea of this was to allow commands to fix the problem so that dcc could continue, but no such changes are implemented as yet. (Note: the Unix versions do not have the interactive disassembler). If you get into this, you can get out of it by pressing ^X (control-X). Once dcc has entered the interactive disassembler, however, there is little chance that it will recover and produce useful output.
If dcc loads the signature file dccxxx.sig, this means that it has not recognised the compiler library used. You can place the signatures in a different direcory to where you are working if you set the DCC environment variable to point to their path. Note that if dcc can’t find its signature files, it will be severely handicapped.