about summary refs log tree commit diff
path: root/custom_mutators/symcc/test_examples
diff options
context:
space:
mode:
authorRumata888 <isennovskiy@gmail.com>2020-11-12 01:13:57 +0300
committerRumata888 <isennovskiy@gmail.com>2020-11-12 01:13:57 +0300
commit20a8a93fd193f7526f5e3d0cd1dfa43df9d2c4f6 (patch)
tree22a966878b62df1785880536b9f9724242055e42 /custom_mutators/symcc/test_examples
parent4c59c5234aec0469e4dd02561dbd84387bd53155 (diff)
downloadafl++-20a8a93fd193f7526f5e3d0cd1dfa43df9d2c4f6.tar.gz
Fixed symcc custom mutator
Diffstat (limited to 'custom_mutators/symcc/test_examples')
-rw-r--r--custom_mutators/symcc/test_examples/file_test.c27
-rw-r--r--custom_mutators/symcc/test_examples/stdin_test.c22
2 files changed, 49 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..25271788
--- /dev/null
+++ b/custom_mutators/symcc/test_examples/file_test.c
@@ -0,0 +1,27 @@
+#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..be87419b
--- /dev/null
+++ b/custom_mutators/symcc/test_examples/stdin_test.c
@@ -0,0 +1,22 @@
+#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;
+}