https://github.com/fay59/fcd
An optimizing decompiler
https://github.com/fay59/fcd
clang decompiler elf llvm mach-o x86-64
Last synced: 6 months ago
JSON representation
An optimizing decompiler
- Host: GitHub
- URL: https://github.com/fay59/fcd
- Owner: fay59
- License: other
- Created: 2015-07-31T16:36:21.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2021-03-29T09:52:12.000Z (over 4 years ago)
- Last Synced: 2025-03-28T15:07:02.223Z (6 months ago)
- Topics: clang, decompiler, elf, llvm, mach-o, x86-64
- Language: C++
- Homepage: http://zneak.github.io/fcd
- Size: 5.16 MB
- Stars: 718
- Watchers: 51
- Forks: 66
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# fcd
[![Travis build status][3]][7]
**Fcd** is an LLVM-based native program optimizing decompiler, released under an LLVM-style license. It started as a bachelor's degree senior project and carries forward its initial development philosophy of getting results fast. As such, it was architectured to have low coupling between distinct decompilation phases and to be highly hackable.
Fcd uses a [unique technique][4] to reliably translate machine code to LLVM IR. Currently, it only supports x86_64. Disassembly uses [Capstone][2]. It implements [pattern-independent structuring][1] to provide a goto-free output.
Fcd allows you to [write custom optimization passes][6] to help solve odd jobs. It also [accepts header files][5] to discover function prototypes.
[1]: http://www.internetsociety.org/doc/no-more-gotos-decompilation-using-pattern-independent-control-flow-structuring-and-semantics
[2]: https://github.com/aquynh/capstone
[3]: https://travis-ci.org/zneak/fcd.svg?branch=master
[4]: http://zneak.github.io/fcd/2016/02/16/lifting-x86-code.html
[5]: http://zneak.github.io/fcd/2016/09/04/parsing-headers.html
[6]: http://zneak.github.io/fcd/2016/02/21/csaw-wyvern.html
[7]: https://travis-ci.org/zneak/fcd