Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java Target Integration #536

Closed
arthurscchan opened this issue Oct 5, 2022 · 6 comments
Closed

Java Target Integration #536

arthurscchan opened this issue Oct 5, 2022 · 6 comments
Assignees

Comments

@arthurscchan
Copy link
Contributor

arthurscchan commented Oct 5, 2022

Integrate support for Java fuzzing.

The tentative steps:

  1. Add a set of java test cases with different classes, packages and library usage to demonstrate basic support for java projects.
  2. Add static call graph generator tools for the post-processing. Possible choice is SOOT
    https://soot-oss.github.io/soot/
  3. Add additional logic to process data from java-callgraph.
  4. Alteration of fuzz-introspector code to accept java call-graph structure with cross libraries and classes support
  5. Consider coverage report generator for Java code project, Possible choice are modified version of JCov or JaCoco https://github.com/jacoco/jacoco / https://github.com/openjdk/jcov
  6. Demonstrate full end-to-end coverage report and static call graph generation features
  7. Alteration of result from sub-modules to ensure if fit the needed input data structure for fuzz-introspector's further processing.
@arthurscchan
Copy link
Contributor Author

PR #537 aim to create base java testcases for step 1.

@arthurscchan
Copy link
Contributor Author

PR #539 aim to manage testcases and add build script for the test cases. It also import necessary jar library for the built and calling to java-callgraph.
Handling step 1 and 2 shown above.

@DavidKorczynski
Copy link
Contributor

In parallel with the callgraph we should look for the other program attributes fuzz introspector needs, such as information about:

  • instructions in a function
  • branches
  • basic blocks
  • source code lines
    etc.

It probably manifests a bit different in comparison to C/C++ so we may need to look for alternative and similar data points.

@arthurscchan
Copy link
Contributor Author

JVM coverage report integration has been done and it has been bridged with OSS-FUZZ. Next step will be testing and bug fixing. Some minor bug fixing will be solved in Issue #629.

@DavidKorczynski
Copy link
Contributor

Well done getting this through @arthurscchan -- super excited to see this.

@AdamKorcz
Copy link
Contributor

AdamKorcz commented Nov 24, 2022

Awesome stuff! @arthurscchan

DavidKorczynski added a commit to google/oss-fuzz that referenced this issue Dec 14, 2022
Adds introspector support for java builds. Most of this work is
referenced by way of
ossf/fuzz-introspector#536

Also bumps introspector, which comes with a fix for
ossf/fuzz-introspector#679

Signed-off-by: David Korczynski <[email protected]>
Navidem added a commit to google/oss-fuzz that referenced this issue Dec 18, 2022
Adds introspector support for java builds. Most of this work is
referenced by way of
ossf/fuzz-introspector#536

Also bumps introspector, which comes with a fix for
ossf/fuzz-introspector#679

Signed-off-by: David Korczynski <[email protected]>

Signed-off-by: David Korczynski <[email protected]>
Co-authored-by: Navidem <[email protected]>
eamonnmcmanus pushed a commit to eamonnmcmanus/oss-fuzz that referenced this issue Mar 15, 2023
Adds introspector support for java builds. Most of this work is
referenced by way of
ossf/fuzz-introspector#536

Also bumps introspector, which comes with a fix for
ossf/fuzz-introspector#679

Signed-off-by: David Korczynski <[email protected]>

Signed-off-by: David Korczynski <[email protected]>
Co-authored-by: Navidem <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants