diff options
author | van Hauser <vh@thc.org> | 2020-11-17 10:13:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-17 10:13:57 +0100 |
commit | 99c783821f23d39da4f770147bf8d78ea1781cee (patch) | |
tree | db1390ee88eb12f0a8f0f21ba18ad0daf239c319 /custom_mutators/symcc/test_examples | |
parent | 1cc637a0a05a043a223f69fb9661ecc3d5597d23 (diff) | |
parent | 9d22c8a02ca9043e62c250a32d5affdaeab11dcd (diff) | |
download | afl++-99c783821f23d39da4f770147bf8d78ea1781cee.tar.gz |
Merge pull request #601 from Rumata888/fixing_symcc
Fixing symcc custom mutator
Diffstat (limited to 'custom_mutators/symcc/test_examples')
-rw-r--r-- | custom_mutators/symcc/test_examples/file_test.c | 36 | ||||
-rw-r--r-- | custom_mutators/symcc/test_examples/stdin_test.c | 28 |
2 files changed, 64 insertions, 0 deletions
diff --git a/custom_mutators/symcc/test_examples/file_test.c b/custom_mutators/symcc/test_examples/file_test.c new file mode 100644 index 00000000..f2b92986 --- /dev/null +++ b/custom_mutators/symcc/test_examples/file_test.c @@ -0,0 +1,36 @@ +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> + +int main(int argc, char **argv) { + + if (argc < 2) { + + printf("Need a file argument\n"); + return 1; + + } + + int fd = open(argv[1], O_RDONLY); + if (fd < 0) { + + printf("Couldn't open file\n"); + return 1; + + } + + uint32_t value = 0; + + read(fd, &value, sizeof(value)); + close(fd); + + value = value ^ 0xffffffff; + if (value == 0x11223344) printf("Value one\n"); + if (value == 0x44332211) printf("Value two\n"); + if (value != 0x0) printf("Not zero\n"); + return 0; + +} + diff --git a/custom_mutators/symcc/test_examples/stdin_test.c b/custom_mutators/symcc/test_examples/stdin_test.c new file mode 100644 index 00000000..3acfc523 --- /dev/null +++ b/custom_mutators/symcc/test_examples/stdin_test.c @@ -0,0 +1,28 @@ +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <unistd.h> + +int main(int argc, char **argv) { + + char input_buffer[16]; + uint32_t comparisonValue; + size_t bytesRead; + bytesRead = read(STDIN_FILENO, input_buffer, sizeof(input_buffer)); + if (bytesRead < 0) exit(-1); + comparisonValue = *(uint32_t *)input_buffer; + comparisonValue = comparisonValue ^ 0xff112233; + if (comparisonValue == 0x66554493) { + + printf("First value\n"); + + } else { + + if (comparisonValue == 0x84444415) printf("Second value\n"); + + } + + return 0; + +} + |