AI prompts
base on Code auditing productivity multiplier. # _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](docs/other-indexers.md), and why the normal way of indexing code is insufficient for C/C++
* [Why Multiplier?](docs/why-multiplier.md) What analysis challenges does Multiplier solve?
* Usage
* [Getting and building the code](docs/BUILD.md)
* [Installing a pre-built release](docs/INSTALLING.md)
* [How to index a codebase](docs/INDEXING.md)
* Writeups
* [regreSSHion OpenSSH variant analysis](docs/openssh-variant-analysis.md)
* [PHP variant analysis](docs/php-variant-analysis.md)
* Included Python tools
* [Web-based code browser for browsing code from a database](docs/web-browser.md)
* [Group functions by type](docs/group-functions.md)
* Included C++ tools
* [Find function calls inside macro argument lists](docs/mx-find-calls-in-macro-expansions.md)
* [Find possible divergent representations](docs/mx-find-divergent-candidates.md)
* [Find uses of `copy_to_user` in the Linux kernel that overwrite flexible array members](docs/mx-find-flexible-user-copies.md)
* [Find data structures containing self-referential pointers, such as linked lists and trees](docs/mx-find-linked-structures.md)
* [Find "sketchy" casts flowing to function arguments and to return sites](docs/mx-find-sketchy-casts.md)
* [Extract an entity, e.g. a function, and all of its dependencies into a file](docs/mx-harness.md)
* [Highlight a specific entity within its surrounding code](docs/mx-highlight-entity.md)
* [Highlight all references to an entity](docs/mx-highlight-references.md)
* [Print a call graph](docs/mx-print-call-graph.md)
* [Print the reference graph](docs/mx-print-reference-graph.md)
* [Print a graph relating source code, macros, parsed tokens, and AST nodes](docs/mx-print-token-graph.md)
* [Print the taint graph given a taint source, and treating memory dereferences as taint sinks](docs/mx-taint-entity.md)
* Included utilities
* [Find entities in the database given a symbol name](docs/mx-find-symbol.md)
* [List all indexed files](docs/mx-list-files.md)
* [List all indexed functions](docs/mx-list-functions.md)
* [List all indexed macros](docs/mx-list-macros.md)
* [List all redeclarations of a given entity](docs/mx-list-redeclarations.md)
* [List all indexed structures/unions/classes/enums](docs/mx-list-structures.md)
* [List all indexed variables](docs/mx-list-variables.md)
* [Search the code with regular expressions](docs/mx-regex-query.md)
# 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).
", Assign "at most 3 tags" to the expected json: {"id":"11389","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"