If you would like to contribute code to DynamoRIO, we do not require a formal contributor license agreement or transfer of copyright. Contributions are implicitly assumed to be offered under terms of DynamoRIO's license.
If you would like to contribute an individual source code change to DynamoRIO by having an existing developer commit it, submit a patch following our Code Review process for non-project members.
If you would like to become a project member and contribute directly, please contact us. Normally you would first submit a few small patches as a non-member to demonstrate your work. When you become a member, by accepting write access to the repository you will also be implicitly agreeing to abide by all policies and conventions of the DynamoRIO project. This includes agreeing to submit all changes to at least one other project member for code review and to abide by reasonable requests for modifications to your proposed changes.
To contribute a new client framework or set of client utility routines, consider adding a new DynamoRIO Extension. A DynamoRIO Extension is a shared or static library that is packaged with DynamoRIO for easy use by clients. Its sources live in the DynamoRIO repository in the ext/ directory, and its documentation is included as a section in the DynamoRIO documentation.
Please look over our guidelines, including Workflow, Code Reviews, Code Content, and Code Style, before writing new DynamoRIO code. (In particular: do not force push to a branch shared in a pull request!)
See the Dr. Memory project list, which includes DynamoRIO-specific projects. Also search the issue tracker for the "help wanted" and "good first issue" labels.