Add fuzzer pass to obfuscate constants.#2671
Merged
afd merged 3 commits intoKhronosGroup:masterfrom Jun 18, 2019
Merged
Conversation
alan-baker
requested changes
Jun 17, 2019
Adds a new transformation that can replace a constant with a uniform known to have the same value, and adds a fuzzer pass that (a) replaces a boolean with a comparison of literals (e.g. replacing "true" with "42 > 24"), and then (b) obfuscates the literals appearing in this comparison by replacing them with identically-valued uniforms, if available. The fuzzer_replayer test file has also been updated to allow initial facts to be provided, and to do error checking of the status results returned by the fuzzer and replayer components.
0d02e80 to
4d01be8
Compare
alan-baker
approved these changes
Jun 18, 2019
dneto0
pushed a commit
to dneto0/SPIRV-Tools
that referenced
this pull request
Sep 14, 2024
Roll third_party/glslang/ 9db7278..f9d08a2 (6 commits) KhronosGroup/glslang@9db7278...f9d08a2 $ git log 9db7278..f9d08a2 --date=short --no-merges --format='%ad %ae %s' 2019-06-18 cepheus Bump revision. 2019-06-17 cepheus AST/SPV: Fix KhronosGroup#930: translate uvec4 <-> uint64 for SubgroupGeMask et. al. 2019-06-18 cepheus Bump revision. 2019-06-17 cepheus SPV: Add a switch for favoring non-NaN operands in min, max, and clamp. 2019-06-17 cepheus Bump revision. 2019-02-17 jbolz Add Float16/Int8/Int16 capabilities for private variables and function parameters Roll third_party/googletest/ 176eccfb8..ee32b72e1 (12 commits) google/googletest@176eccf...ee32b72 $ git log 176eccfb8..ee32b72e1 --date=short --no-merges --format='%ad %ae %s' 2019-06-18 misterg Googletest export 2019-06-17 misterg Googletest export 2019-06-17 misterg Fixing CI break by going to bazel 0.26.1 2019-06-17 misterg Revert "testing, explicitly specify compiler" 2019-06-17 absl-team Googletest export 2019-06-17 misterg Googletest export 2019-06-17 misterg revert travis.yml, irrelevant 2019-06-17 misterg bazel 0.26.1 2019-06-17 misterg bazel 0.26.1 2019-06-17 misterg testing with bazel 0.26.1 2019-06-17 misterg testing with bazel 0.26.1 2019-06-17 misterg testing, explicitly specify compiler Roll third_party/spirv-cross/ 146dc453b..05ea05509 (2 commits) KhronosGroup/SPIRV-Cross@146dc45...05ea055 $ git log 146dc453b..05ea05509 --date=short --no-merges --format='%ad %ae %s' 2019-06-18 post Make sure args.msl22 is set in test_shaders.py. 2019-06-18 post MSL: Fix path check in test_shaders.py. Roll third_party/spirv-tools/ 59983a6..001e823 (5 commits) KhronosGroup/SPIRV-Tools@59983a6...001e823 $ git log 59983a6..001e823 --date=short --no-merges --format='%ad %ae %s' 2019-06-18 afdx Add fuzzer pass to obfuscate constants. (KhronosGroup#2671) 2019-06-17 33432579+alan-baker Handle volatile memory semantics in upgrade (KhronosGroup#2674) 2019-06-17 33432579+alan-baker Validate Volatile memory semantics bit (KhronosGroup#2672) 2019-06-17 33432579+alan-baker Disallow stores to UBOs (KhronosGroup#2651) 2019-06-17 dneto Another fix uint -> uint32_t (KhronosGroup#2676) Created with: roll-dep third_party/effcee third_party/glslang third_party/googletest third_party/re2 third_party/spirv-cross third_party/spirv-headers third_party/spirv-tools
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new transformation that can replace a constant with a uniform known to have the same value, and adds a fuzzer pass that (a) replaces a boolean with a comparison of literals (e.g. replacing "true" with "42 > 24"), and then (b) obfuscates the literals appearing in this comparison by replacing them with identically-valued uniforms, if available.
The fuzzer_replayer test file has also been updated to allow initial facts to be provided, and to do error checking of the status results returned by the fuzzer and replayer components.