awesome-llvm-security icon indicating copy to clipboard operation
awesome-llvm-security copied to clipboard

awesome llvm security [Welcome to PR]

Gitee license

awesome-llvm-security

Guide

  • https://llvm.org/docs
  • https://github.com/gmh5225/compiler-class

IDE Configuration

  • https://github.com/gmh5225/Clion-llvm_build [Clion]

OLLVM

  • https://github.com/obfuscator-llvm/obfuscator
  • https://github.com/isrc-cas/flounder
  • https://github.com/amimo/goron
  • https://github.com/emc2314/YANSOllvm
  • https://github.com/HikariObfuscator/Hikari
  • https://github.com/Lessica/HikariSummer
  • https://github.com/DeNA/DeClang
  • https://github.com/0x3f97/ollvm-12.x
  • https://github.com/kk-laoguo/ollvm-13
  • https://github.com/redheart923/ollvm-ext
  • https://github.com/o2e/OLLVM-9.0.1
  • https://github.com/wolfm/extended-gdop
  • https://github.com/bigBestWay/CodeObfs
  • https://github.com/SheLLVM/SheLLVM
  • https://github.com/amdx1254/capstone-design1-llvm-obfuscation
  • https://github.com/Deniskore/llvm
  • https://github.com/samdspeare/othread
  • https://github.com/NudistBeaaach/Chained-CFG-obfuscation-pass
  • https://github.com/veritas501/ToyObfuscator
  • https://github.com/tsarpaul/llvm-string-obfuscator
  • https://github.com/crvvdev/obfuscator
  • https://github.com/bluesadi/Pluto-Obfuscator
  • https://github.com/MaxXor/obfuscator-llvm
  • https://github.com/svv232/1nsanity
  • https://github.com/nlykkei/llvm-ir-obfuscation
  • https://github.com/scrt/avcleaner [Based Clang]
  • https://github.com/za233/LLVMMyPass
  • https://github.com/GoSSIP-SJTU/Armariris
  • https://github.com/heroims/obfuscator
  • https://github.com/HikariRebooted/HikariCore
  • https://github.com/tsarpaul/llvm-string-obfuscator
  • https://github.com/SsageParuders/SsagePass
  • https://github.com/eshard/obfuscator-llvm

MSVC Warbird

  • https://github.com/gmh5225/warbird-obfuscator
  • https://github.com/gmh5225/warbird-runtime
  • https://github.com/gmh5225/warbirdvm

LIFT

  • https://github.com/avast/retdec
  • https://github.com/lifting-bits/mcsema
  • https://github.com/LLVMParty/TicklingVMProtect
  • https://github.com/microsoft/llvm-mctoll
  • https://github.com/sh4m2hwz/triton_ast_llvm_ir_translator
  • https://github.com/aengelke/rellume
  • https://github.com/andybalholm/leaven [IR->GO]
  • https://github.com/JonathanSalwan/Triton/issues/1078
  • https://github.com/DCNick3/rusty-x86
  • https://github.com/nevillegrech/gigahorse-toolchain [EVM]
  • https://github.com/balayette/saphIR-project
  • https://github.com/JonathanSalwan/Triton/wiki
  • https://github.com/JonathanSalwan/Triton/issues/1085
  • https://github.com/JonathanSalwan/Triton/commit/0753a0c097fe637beb25b428ff2f0983f14f96d9
  • https://github.com/JonathanSalwan/Triton/commit/7af202df2064a6dc95d7fa4bd0dbe5635e5a44fa
  • https://github.com/JonathanSalwan/Triton/commit/4e42a22c7a4d970c81875f6474adf284187b452b
  • Triton:Dead Store Elimination
  • Triton:Solution of the Hack.lu 2021 OLLVM challenge
  • https://github.com/ergo720/lib86cpu
  • https://github.com/fvrmatteo/TritonASTLLVMIRTranslator
  • https://github.com/toor-de-force/Ghidra-to-LLVM
  • https://github.com/cbwang505/llvmanalyzer [Retdec Example]
  • https://github.com/GaloisInc/reopt
  • https://github.com/LLVMParty/UnsupportedInstructionsLiftingToLLVM
  • https://github.com/JuliaComputingOSS/llvm-cbe [C Backend]

libcxx

  • https://github.com/topjohnwu/libcxx [Without Exception and RTTI]

libunwind

  • https://github.com/nidefawl/slowstacktrace

Android Kernel

  • https://github.com/nathanchance/android-kernel-clang

trace

  • https://github.com/microsoft/spoor

JIT

  • https://github.com/spencertipping/jit-tutorial
  • https://github.com/hfinkel/llvm-project-cxxjit
  • https://github.com/vnmakarov/mir
  • https://discourse.llvm.org/t/write-jitlink-support-for-a-new-format-architecture/60322 [Jitlink]

Rust Manipulation

  • https://github.com/jauhien/iron-kaleidoscope [LLVM tutorial in Rust language]
  • https://github.com/maekawatoshiki/vicis
  • https://github.com/TheDan64/inkwell

Intermediate Representation

  • https://github.com/vnmakarov/mir

Monitor

  • https://github.com/trailofbits/monitoring_linux_events
  • https://github.com/AndHager/SysCallStubber

eBPF

  • https://github.com/elastic/bpfcov

WASM

  • https://github.com/leaningtech/cheerp-compiler

Dynamic Binary Instrumentation

  • https://github.com/aengelke/instrew
  • https://github.com/aengelke/binopt
  • https://github.com/QBDI/QBDI

Assembly Engine

  • https://github.com/gmh5225/LLVM-ASM-Engine-cheater

Symbolic Execution

  • https://github.com/insufficiently-caffeinated/caffeine
  • https://github.com/R-Fuzz/symsan

Runtime Check

  • https://github.com/danteisalive/llvm-typecheking

Mathematics related

  • https://github.com/vgvassilev/clad

Sanitizer

  • https://github.com/google/sanitizers

Static Analysis

  • https://github.com/secure-software-engineering/phasar
  • https://github.com/JohannesLiu/LLVM-Pass-Analysis-Collection
  • https://github.com/andreasfertig/cppinsights
  • https://github.com/SCRT/avcleaner
  • https://github.com/Ericsson/codechecker
  • https://github.com/franchiotta/taintchecker
  • https://github.com/mchalupa/dg
  • https://github.com/fadyosman/LLVMTaintAnalysis
  • https://github.com/llvm/llvm-project/commit/34a7387986a68835680a8b7bef0ea091d57d28b0 [Taint analysis]
  • https://github.com/joernio/joern
  • https://github.com/enochii/simple-pointer-analysis [Pointer analysis]
  • https://github.com/grievejia/andersen [Pointer analysis]
  • https://github.com/seahorn/clam
  • https://github.com/Veridise/Vanguard [Smart Contracts]
  • https://github.com/KDE/clazy [Qt]
  • https://github.com/GoSSIP-SJTU/TripleDoggy
  • https://github.com/seclab-ucr/SUTURE
  • https://github.com/viktormalik/diffkemp [Static analysis of Linux kernel]
  • Lightweight static analysis for many languages. Find bug variants with patterns that look like source code

Clang Build Analysis

  • https://github.com/aras-p/ClangBuildAnalyzer

Crash Analysis

  • https://github.com/cisco-open/llvm-crash-analyzer

DirectX Shader Compiler

  • https://github.com/EpicGames/DirectXShaderCompiler

DIY Compiler

  • https://github.com/ethereum/solidity
  • https://github.com/microsoft/checkedc-clang
  • https://github.com/tylerweston/ccc
  • https://github.com/greydevv/cpp-compiler
  • https://github.com/stardust95/TinyCompiler
  • https://github.com/drop-stones/Tiny-C
  • https://github.com/Kingtous/WebC-llvm-compiler
  • https://github.com/tamphi/CompilerDesign-LLVM
  • https://github.com/PLC-lang/rusty
  • https://github.com/henne90gen/Neon
  • https://github.com/tinygo-org/tinygo [GO]
  • https://github.com/ab25cq/comelang
  • https://github.com/sleirsgoevy/ps4-rop-8cc
  • https://github.com/egunnarsson/llfp
  • https://github.com/mirkosertic/Bytecoder [JAVA]
  • https://github.com/evanacox/honors-forum-project
  • https://github.com/rui314/chibicc
  • https://github.com/gmh5225/chibicc-riscv64
  • https://github.com/gmh5225/chibicc-riscv
  • https://github.com/Nicholas-Baron/little-lang
  • https://github.com/tj/luna
  • https://github.com/fanx-dev/fanx
  • https://github.com/PipeRift/rift
  • https://github.com/lotabout/write-a-C-interpreter
  • https://github.com/alinalihassan/Lesma
  • https://github.com/RoryBrennan1999/PythonCompiler
  • https://github.com/skvadrik/re2c [Lexer]
  • https://github.com/SimplyDanny/bitsy-llvm
  • https://github.com/mikelma/oktac
  • https://github.com/One-Language/One
  • https://github.com/adorad/adorad
  • https://github.com/jfecher/ante
  • https://github.com/arcsysu/SYsU-lang
  • https://github.com/skyzluo/CS143-Compilers-Stanford
  • https://github.com/TinyCC/tinycc [tcc]
  • https://github.com/rswier/c4 [c4]
  • https://github.com/EarlGray/c4 [c4 jit]
  • https://bellard.org/otcc [otcc-c4]
  • https://github.com/sand-lang/sand
  • https://github.com/fly-lang/fly
  • https://github.com/RainingComputers/ShnooTalk
  • https://github.com/spicelang/spice
  • https://github.com/Spencer-Comin/Fern
  • https://github.com/savi-lang/savi
  • https://github.com/artagnon/rhine
  • https://github.com/beefytech/Beef
  • https://github.com/ValeLang/Vale
  • https://github.com/NilFoundation/zkLLVM [zk]
  • https://github.com/MoritzGoeckel/MLang
  • https://github.com/SjVer/Evi-Lang
  • https://github.com/greydevv/mango-compiler
  • https://github.com/rems-project/sail
  • https://github.com/Fedjmike/mini-c [C]
  • https://github.com/SerenityOS/jakt
  • https://github.com/ziglang/zig
  • https://github.com/li-script/lightning
  • https://github.com/alinalihassan/Lesma
  • https://github.com/gmh5225/Tiny
  • https://github.com/carbon-language/carbon-lang
  • https://github.com/Omyyyy/pycom [python]
  • https://github.com/zero9178/Pylir [python]
  • https://github.com/rakudo/rakudo [Raku]
  • https://github.com/agraef/pure-lang
  • https://github.com/Xeouz/vire
  • https://github.com/Sokolmish/cw39
  • https://github.com/lethalbit/clank [A C++ Front-end based on LLVM's clang]
  • https://github.com/Juicestus/Capstone
  • https://github.com/ange-yaghi/piranha
  • https://github.com/leanprover/lean4
  • https://github.com/krispybyte/virtual-machine [A virtual machine with an included lexer]
  • https://github.com/glouw/c8c [compiler, assembler, and virtual machine]
  • https://github.com/NVIDIA/MDL-SDK [NVIDIA Material Definition Language SDK]

Clang Plugins

CIR

  • https://discourse.llvm.org/t/rfc-an-mlir-based-clang-ir-cir/63319
  • https://github.com/llvm/clangir
  • https://github.com/facebookincubator/clangir

MLIR

  • https://github.com/gmh5225/mlir-cf-pass [out-of-tree pass]

Clangd

  • https://github.com/clangd/vscode-clangd

LLD

  • https://github.com/llvm/llvm-project/commit/9dd2d50984f5b02e19d3576812dc9b09ddcc9483 [COFF]
  • https://github.com/llvm/llvm-project/commit/98bc304e9faded44f1d8988ffa4c5d8b50c759ec [COFF]

Transfer

  • https://github.com/sbip-sg/tsll
  • https://github.com/Acmodeus/O2M_LLVM

Bundler

  • https://github.com/oToToT/CppBundler

Security Features

  • https://github.com/llvm/llvm-project/commit/82af95029ec947fed8b9c516f04d4f217bd87930
  • https://github.com/llvm/llvm-project/issues/48474#issuecomment-1022431702

MSVC Features

  • https://github.com/llvm/llvm-project/commit/37d1d02200b9472082304c191f396f0489d00e05
  • https://github.com/llvm/llvm-project/commit/3e19ba36fca9fa0b6aba0de2767f26dfd463cb5a
  • https://reviews.llvm.org/D80344 [SEH]
  • https://reviews.llvm.org/D102817 [SEH]
  • https://github.com/MicrosoftDocs/cpp-docs/tree/main/docs/intrinsics [intrinsics]
  • https://github.com/llvm/llvm-project/commit/8cd8bd4a5ca702024b9df53a9c7984bb700488a0 [intrinsics]
  • https://github.com/llvm/llvm-project/commit/67d9276b16024bae66dfc2fcb739d947637b8c52

Optimization

  • https://discourse.llvm.org/t/rfc-cmov-vs-branch-optimization/6040
  • https://github.com/llvm/llvm-project/commit/0b7669f33331b7af157be4de02ab9dcbc2590dc2
  • https://github.com/llvm/llvm-project/commit/eb1ff70fc5fc166fa67dc1cfd5854fc6f51e0b17
  • https://github.com/llvm/llvm-project/commit/e03d216c28dfbda52afe7e1f6606cc5dafb3235e
  • https://github.com/llvm/llvm-project/commit/75c4a9270649020710ca86c00e4a89788661b067
  • https://github.com/llvm/llvm-project/commit/c1b9667148105d99f4792b46805b6a4d2aea4a6e
  • https://github.com/llvm/llvm-project/commit/940d7cd59f88d78af443091e75a33a39ce098fbe
  • https://github.com/wlingze/llvm_opt
  • https://github.com/llvm/llvm-project/commit/e3deb7d88b0cd6d15a7b5a345d94c37ff6262bb4
  • https://github.com/llvm/llvm-project/commit/2c4e38fa6f33d371f9169715f97046343095bba0
  • https://github.com/llvm/llvm-project/commit/4e4f839ac2a9002df504f1bed8383c2d7d72e86e
  • https://github.com/llvm/llvm-project/commit/0af3e6a22da2eda5021b5fad656d0b9db7702e0a
  • https://github.com/llvm/llvm-project/commit/c7ba5a9affbcabb0d05301e5417c203274667572
  • https://github.com/llvm/llvm-project/commit/b90478d4220ce5c13b8c8e613e23300cea2fd8b1
  • https://reviews.llvm.org/D122084
  • https://github.com/NewWorldComingSoon/llvm-msvc/commit/5fd945166862377be390948c9ab7dab2f47df217
  • https://github.com/llvm/llvm-project/commit/a5f637bcbb7d1e08ce637f113fc117c3f4b2b110
  • https://github.com/llvm/llvm-project/commit/ffe0cc82dbaecde4fd1bb2bca5c6aea59be698a6
  • https://github.com/NewWorldComingSoon/llvm-msvc/commit/ca33d74ca5cefdad929d5c2759f7d80faa6be539
  • https://github.com/kai-franz/dbds [Based DT]
  • https://github.com/d4rk-kn1gh7/llvm-optimization-pass

Testing Tools

  • https://godbolt.org/
  • https://github.com/llvm/llvm-test-suite
  • https://github.com/NewWorldComingSoon/llvm-msvc-build [Testing Windows Driver]
  • https://github.com/crosire/blink
  • https://github.com/ykfre/BsodSurvivor [Debugging Windows Driver]
  • https://github.com/LouisJenkinsCS/LLVM-Simple-GUI [View DT&CFG]
  • https://github.com/trailofbits/DomTreSat [Testing DT]
  • https://github.com/CAST-projects/Clang-ast-viewer
  • https://github.com/NewWorldComingSoon/UnknownField [Testing Obfuscated Field]
  • https://github.com/vaivaswatha/debugir [Debugging IR]
  • https://github.com/grotius-cnc/Qt_LLVM_App [Testing CPP2IR]

LLVM Tutorial

  • https://llvm.discourse.group/t/beginner-resources-documentation/5872 [LLVM Community]
  • https://github.com/mikeroyal/LLVM-Guide
  • https://github.com/banach-space/llvm-tutor
  • https://github.com/xiaoweiChen/Learn-LLVM-12
  • https://github.com/xiaoweiChen/LLVM-Techniques-Tips-and-Best-Practies
  • https://github.com/Enna1/LLVM-Clang-Study-Notes
  • https://github.com/duduWang20/llvmbooks
  • https://github.com/hunterzju/llvm-tutorial
  • https://github.com/KCreate/llvm-learning
  • https://github.com/danbev/learning-llvm
  • https://blog.csdn.net/wuhui_gdnt/article/details/61194221
  • https://blog.csdn.net/dreammeard/article/details/19493599 [LLVM Metadata]
  • https://blog.csdn.net/dreammeard/article/details/19827141 [LLVM DominatorTree]
  • https://www.youtube.com/watch?v=d1Y4EZOFfkQ [LLVM DominatorTree]
  • https://blog.csdn.net/weixin_46222091/article/details/105420409 [LLVM Callgraph]
  • https://github.com/Evian-Zhang/llvm-ir-tutorial [LLVM IR]
  • https://github.com/Virtual-Machine/llvm-tutorial-book
  • https://github.com/Virtual-Machine/ir-examples [LLVM IR]
  • https://github.com/ronnie88597/Notes/tree/f206fa9998b1f6288193cb40e667e32165cf9f2b/llvm
  • https://github.com/objwyh/Formatv [LLVM Formatv]
  • https://github.com/lahiri-phdworks/LLVM-Examples
  • https://github.com/michelou/llvm-examples/tree/master/examples
  • https://llvm.org/docs/MIRLangRef.html [LLVM MIR]
  • https://llvm.org/docs/PDB/index.html [LLVM PDB]
  • https://github.com/bigconvience/llvm-ir-in-action [LLVM IR Examples]
  • https://github.com/alexjung/Writing-an-LLVM-Pass-using-the-new-PassManager [New Pass]
  • https://github.com/Radon10043/LLVMDFGPass [LLVM DFG]
  • https://github.com/zslwyuan/LLVM-11-Tutorials
  • https://github.com/wuzhanglin/llvm-IR-examples [LLVM IR]

Clang Tutorial

  • https://github.com/banach-space/clang-tutor
  • https://github.com/ingve/awesome-clang
  • https://github.com/lahiri-phdworks/LLVM-Examples/tree/master/ClangAST
  • https://github.com/ronnie88597/Notes/tree/master/clang
  • https://github.com/lijiansong/clang-llvm-tutorial
  • https://blog.quarkslab.com/implementing-a-custom-directive-handler-in-clang.html
  • https://clang.llvm.org/docs/LibASTMatchersReference.html [AST Matcher]

CPP Tutorial

  • https://github.com/andreasfertig/programming-with-cpp20
  • https://github.com/AnthonyCalandra/modern-cpp-features
  • https://github.com/xiaoweiChen/CPP-Move-Semantics

Security Book

  • https://github.com/llsoftsec/llsoftsecbook

Compiler Book

  • http://www.craftinginterpreters.com/contents.html
  • https://github.com/GuoYaxiang/craftinginterpreters_zh
  • https://github.com/tuoxie007/play_with_llvm [CN]