Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Code auditing productivity multiplier.
Basic Info
Statistics
- Stars: 452
- Watchers: 21
- Forks: 27
- Open Issues: 120
- Releases: 75
Topics
Metadata Files
README.md
Multiplier finds more bugs faster
Multiplier provides precise and comprehensive code understanding capabilities. It does so by saving build artifacts into a database, and then making them persistently accessible using a C++ or Python API.
Multiplier emphasizes the ability to uniquely identify all entities in a build process, including individual tokens, AST nodes, and intermediate representations. With Multiplier, an analyst can identify code patterns of interest over one of the representations, and then accurately relay results back to humans in a readable form, or to follow-on scripts via entity IDs.
Multiplier's APIs are extensive, and often provide as-good or better-than compiler-level quality information, but linked at a whole-program granularity. We like to say that with its APIs, you can get everywhere from anywhere.
- About
- How do other indexers work, and why the normal way of indexing code is insufficient for C/C++
- Why Multiplier? What analysis challenges does Multiplier solve?
- Usage
- Writeups
- Included Python tools
- Included C++ tools
- Find function calls inside macro argument lists
- Find possible divergent representations
- Find uses of
copy_to_userin the Linux kernel that overwrite flexible array members - Find data structures containing self-referential pointers, such as linked lists and trees
- Find "sketchy" casts flowing to function arguments and to return sites
- Extract an entity, e.g. a function, and all of its dependencies into a file
- Highlight a specific entity within its surrounding code
- Highlight all references to an entity
- Print a call graph
- Print the reference graph
- Print a graph relating source code, macros, parsed tokens, and AST nodes
- Print the taint graph given a taint source, and treating memory dereferences as taint sinks
- Included utilities
License
This research was developed with funding from the Defense Advanced Research Projects Agency (DARPA). The views, opinions and/or findings expressed are those of the author and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.
Distribution Statement "A" (Approved for Public Release, Distribution Unlimited).
Owner
- Name: Trail of Bits
- Login: trailofbits
- Kind: organization
- Email: opensource@trailofbits.com
- Location: New York, New York
- Website: https://www.trailofbits.com
- Twitter: trailofbits
- Repositories: 125
- Profile: https://github.com/trailofbits
More code: binary lifters @lifting-bits, blockchain @crytic, forks @trail-of-forks
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Multiplier
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Peter
family-names: Goodman
email: peter.goodman@gmail.com
affiliation: Trail of Bits
- given-names: Akshay
family-names: Kumar
email: iit.akshay@gmail.com
affiliation: Trail of Bits
repository-code: 'https://github.com/trailofbits/multiplier'
abstract: >-
Multiplier provides precise and comprehensive code
understanding capabilities. It does so by saving build
artifacts into a database, and then making them
persistently accessible using a C++ or Python API.
Multiplier emphasizes the ability to unique identify all
entities in a build process, including individual tokens,
AST nodes, and intermediate representations. With
Multiplier, an analyst can identify code patterns of
interest over one of the representations, and then
accurately relay results back to humans in a readable
form, or to follow-on scripts via entity IDs.
Multiplier's APIs are extensive, and often provide as-good
or better-than compiler-level quality information, but
linked at a whole-program granularity. We like to say that
with its APIs, you can get everywhere from anywhere.
keywords:
- c
- c++
- clang
- compiler
- index
- analysis
- intermediate representation
- ast
- abstract syntax tree
- parsing
license: Apache-2.0
GitHub Events
Total
- Create event: 3
- Issues event: 1
- Release event: 2
- Watch event: 31
- Issue comment event: 13
- Push event: 3
- Pull request review event: 4
- Pull request review comment event: 3
- Pull request event: 4
- Fork event: 2
Last Year
- Create event: 3
- Issues event: 1
- Release event: 2
- Watch event: 31
- Issue comment event: 13
- Push event: 3
- Pull request review event: 4
- Pull request review comment event: 3
- Pull request event: 4
- Fork event: 2
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Peter Goodman | p****n@g****m | 489 |
| kumarak | i****y@g****m | 47 |
| Francesco Bertolaccini | f****i@t****m | 22 |
| andreas | a****s@w****m | 8 |
| Máté Kukri | km@m****z | 8 |
| alan | 1****x | 5 |
| William Tan | 1****7 | 5 |
| James Olds | o****j | 4 |
| Sonya | 6****r | 2 |
| Alessandro Gario | 5****o | 2 |
| Jordan Moore | l****6@p****m | 1 |
| Ikko Eltociear Ashimine | e****r@g****m | 1 |
| Henrich Lauko | x****o@m****z | 1 |
| Eric Kilmer | e****r@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 101
- Total pull requests: 104
- Average time to close issues: 3 months
- Average time to close pull requests: 12 days
- Total issue authors: 8
- Total pull request authors: 12
- Average comments per issue: 1.09
- Average comments per pull request: 0.25
- Merged pull requests: 91
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 9
- Average time to close issues: N/A
- Average time to close pull requests: 6 days
- Issue authors: 1
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.89
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- pgoodman (79)
- alessandrogario (6)
- wunused (5)
- kumarak (4)
- Ninja3047 (1)
- bdemick (1)
- PrachiP29 (1)
- bsdb0y (1)
Pull Request Authors
- pgoodman (37)
- alessandrogario (24)
- kumarak (20)
- frabert (5)
- ex0dus-0x (5)
- wunused (4)
- oldsj (3)
- ndauten (2)
- Ninja3047 (2)
- bsdb0y (2)
- ekilmer (1)
- eltociear (1)
- lockbox (1)
- xlauko (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- trail-of-forks/actions-setup-cmake master composite
- ${IMAGE} latest build