{"id":13546945,"url":"https://github.com/nforest/awesome-decompilation","last_synced_at":"2025-04-02T19:32:07.597Z","repository":{"id":40249643,"uuid":"129588860","full_name":"nforest/awesome-decompilation","owner":"nforest","description":"A curated list of awesome decompilation resources and projects.","archived":false,"fork":false,"pushed_at":"2023-11-09T12:48:36.000Z","size":31,"stargazers_count":608,"open_issues_count":1,"forks_count":52,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-03-23T21:01:42.518Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nforest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-04-15T07:54:36.000Z","updated_at":"2025-03-15T19:45:43.000Z","dependencies_parsed_at":"2024-01-15T00:45:17.172Z","dependency_job_id":null,"html_url":"https://github.com/nforest/awesome-decompilation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nforest%2Fawesome-decompilation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nforest%2Fawesome-decompilation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nforest%2Fawesome-decompilation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nforest%2Fawesome-decompilation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nforest","download_url":"https://codeload.github.com/nforest/awesome-decompilation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246880122,"owners_count":20848816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:00:48.577Z","updated_at":"2025-04-02T19:32:07.317Z","avatar_url":"https://github.com/nforest.png","language":null,"funding_links":[],"categories":["Others","安全相关","Other Lists","Links"],"sub_categories":["TeX Lists"],"readme":"# awesome-decompilation\n\nA curated list of awesome decompilation resources and projects.\n\n-----------------------------------------\n\n## Contents\n\n * [General Overview](#general-overview)\n * [Compilers](#compilers)\n * [Program Analysis](#program-analysis)\n * [Projects](#projects)\n * [Decompilation Pipeline](#decompilation-pipeline)\n   + [General](#general)\n   + [Intermediate Representation](#intermediate-representation)\n   + [Type Reconstruction](#type-reconstruction)\n   + [Control-Flow Reconstruction](#control-flow-reconstruction)\n   + [C++ Decompilation](#c-decompilation)\n   + [Identifier Recovery](#identifier-recovery)\n * [AI-based Decompilation](#ai-based-decompilation)\n * [Advanced Topics](#advanced-topics)\n   + [Search-Based Decompilation](#search-based-decompilation)\n   + [Binary-Source Matching](#binary-source-matching)\n\n-----------------------------------------\n\n## General Overview\n\n * [Reverse Compilation Techniques](http://www.phatcode.net/res/228/files/decompilation_thesis.pdf)\n\n * [Static Single Assignment for Decompilation](https://yurichev.com/mirrors/vanEmmerik_ssa.pdf)\n\n * [Retargetable Analysis of Machine Code](https://dspace.vutbr.cz/bitstream/handle/11012/63279/482.pdf)\n\n * [A Human-Centric Approach For Binary Code Decompilation](https://bonndoc.ulb.uni-bonn.de/xmlui/handle/20.500.11811/7517)\n\n## Compilers\n\n * [Compilers: Principles, Techniques, and Tools](https://www.amazon.com/dp/0321486811)\n\n * [Advanced Compiler Design and Implementation](https://www.amazon.com/dp/1558603204)\n\n## Program Analysis\n\n * [Principles of Program Analysis](http://www.imm.dtu.dk/~hrni/PPA/ppa.html)\n\n * [Data Flow Analysis: Theory and Practice](https://www.crcpress.com/Data-Flow-Analysis-Theory-and-Practice/Khedker-Sanyal-Sathe/p/book/9780849328800)\n\n## Projects\n\n * [Hex-Rays](https://www.hex-rays.com/products/decompiler/)\n\n * [Ghidra](https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Features/Decompiler)\n\n * [JEB](https://www.pnfsoftware.com/)\n\n * [retdec](https://retdec.com/)\n\n * [rev.ng-c](https://rev.ng/revngc-features.html)\n\n * [jsdec](https://github.com/rizinorg/jsdec)\n\n## Decompilation Pipeline\n\n### General\n\n * [Decompilers and beyond](https://www.hex-rays.com/products/ida/support/ppt/decompilers_and_beyond_white_paper.pdf)\n\n * [decomp](https://github.com/decomp/decomp)\n\n### Intermediate Representation\n\n * [LLVM](https://llvm.org/docs/LangRef.html)\n\n * [VEX](https://github.com/angr/vex/blob/master/pub/libvex_ir.h)\n\n * [Hex-Rays microcode](http://hex-rays.com/products/ida/support/ppt/recon2018.ppt)\n\n * [BAP](https://github.com/BinaryAnalysisPlatform/bap)\n\n * [REIL](https://github.com/Cr4sh/openreil)\n\n * [ESIL](https://radare.gitbooks.io/radare2book/content/disassembling/esil.html)\n\n * [LLIL](https://docs.binary.ninja/dev/bnil-llil/index.html)\n \n * [VTIL](https://github.com/vtil-project)\n\n### Type Reconstruction\n\n * [DIVINE: DIscovering Variables IN Executables](https://research.cs.wisc.edu/wpis/papers/vmcai07.invited.pdf)\n\n * [Improved Memory-Access Analysis for x86 Executables](http://research.cs.wisc.edu/wpis/papers/cc04.pdf)\n \n * [TIE: Principled Reverse Engineering of Types in Binary Programs](https://users.ece.cmu.edu/~aavgerin/papers/tie-ndss-2011.pdf)\n\n * [Polymorphic Type Inference for Machine Code](https://arxiv.org/abs/1603.05495)\n\n### Control-Flow Reconstruction\n\n * [No More Gotos: Decompilation Using Pattern-Independent Control-Flow Structuring and Semantics-Preserving Transformations](http://www.ndss-symposium.org/ndss2015/ndss-2015-programme/no-more-gotos-decompilation-using-pattern-independent-control-flow-structuring-and-semantics/)\n\n * [Helping Johnny to Analyze Malware](https://www.computer.org/csdl/proceedings/sp/2016/0824/00/0824a158.pdf)\n\n * [A Comb for Decompiled C Code](https://dl.acm.org/doi/10.1145/3320269.3384766)\n\n### C++ Decompilation\n\n * [SmartDec: Approaching C++ Decompilation](https://www.computer.org/csdl/proceedings/wcre/2011/1948/00/06079860.pdf)\n\n### Identifier Recovery\n\n * [Meaningful Variable Names for Decompiled Code: A Machine Translation Approach](https://cmustrudel.github.io/papers/icpc18decompilation.pdf)\n\n * [Debin: Predicting Debug Information in Stripped Binaries](https://files.sri.inf.ethz.ch/website/papers/ccs18-debin.pdf)\n\n * [DIRE: Decompiled Identifier Renaming Engine](https://github.com/CMUSTRUDEL/DIRE)\n\n## AI-based Decompilation\n\n * [Using Recurrent Neural Networks for Decompilation](http://www.cs.unm.edu/~eschulte/data/katz-saner-2018-preprint.pdf)\n\n * [Towards Neural Decompilation (2019)](https://arxiv.org/pdf/1905.08325.pdf)\n \n * [Coda: An End-to-End Neural Program Decompiler](https://proceedings.neurips.cc/paper/2019/file/093b60fd0557804c8ba0cbf1453da22f-Paper.pdf)\n\n * [N-Bref: a neural-based decompiler framework](https://github.com/facebookresearch/nbref)\n\n * [Neutron: an attention-based neural decompiler](https://link.springer.com/content/pdf/10.1186/s42400-021-00070-0.pdf)\n\n * [Beyond the C: Retargetable Decompilation using Neural Machine Translation](https://arxiv.org/abs/2212.08950)\n\n## Advanced Topics\n\n### Search-Based Decompilation\n\n * [Evolving Exact Decompilation](https://www.cs.unm.edu/~eschulte/data/bed.pdf)\n\n### Binary-Source Matching\n\n * [BinPro: A Tool for Binary Source Code Provenance](https://arxiv.org/pdf/1711.00830)\n\n * [Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection](https://arxiv.org/abs/1708.06525)\n\n * [CodeCMR: Cross-Modal Retrieval For Function-Level Binary Source Code Matching](https://keenlab.tencent.com/zh/whitepapers/neurips-2020-cameraready.pdf)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnforest%2Fawesome-decompilation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnforest%2Fawesome-decompilation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnforest%2Fawesome-decompilation/lists"}