aboutsummaryrefslogtreecommitdiff
path: root/utils/autodict_ql/strcmp-strings.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/autodict_ql/strcmp-strings.py')
-rw-r--r--utils/autodict_ql/strcmp-strings.py64
1 files changed, 42 insertions, 22 deletions
diff --git a/utils/autodict_ql/strcmp-strings.py b/utils/autodict_ql/strcmp-strings.py
index 88128dbb..9c2520c9 100644
--- a/utils/autodict_ql/strcmp-strings.py
+++ b/utils/autodict_ql/strcmp-strings.py
@@ -5,7 +5,7 @@
import os
import string
-import binascii
+import binascii
import codecs
import errno
import struct
@@ -13,6 +13,7 @@ import argparse
import re
from binascii import unhexlify
+
def ensure_dir(dir):
try:
os.makedirs(dir)
@@ -20,44 +21,63 @@ def ensure_dir(dir):
if e.errno != errno.EEXIST:
raise
+
def parse_args():
- parser = argparse.ArgumentParser(description=(
- "Helper - Specify input file analysis and output folder to save corpus for strings in the overall project --------------------------------------------------------------------------- Example usage : python2 thisfile.py outdir str.txt" ))
- parser.add_argument("corpdir",
- help="The path to the corpus directory to generate strings.")
- parser.add_argument("infile",
- help="Specify file output of codeql analysis - ex. ooo-atr.txt, analysis take place on this file, example : python2 thisfile.py outdir strings.txt")
+ parser = argparse.ArgumentParser(
+ description=(
+ "Helper - Specify input file analysis and output folder to save corpus for strings in the overall project --------------------------------------------------------------------------- Example usage : python2 thisfile.py outdir str.txt"
+ )
+ )
+ parser.add_argument(
+ "corpdir", help="The path to the corpus directory to generate strings."
+ )
+ parser.add_argument(
+ "infile",
+ help="Specify file output of codeql analysis - ex. ooo-atr.txt, analysis take place on this file, example : python2 thisfile.py outdir strings.txt",
+ )
return parser.parse_args()
def do_string_analysis(corpdir, infile1):
- with open(infile1, "r") as f1:
- lines = f1.readlines()[1:]
- f1.close()
+ with open(infile1, "r") as f1:
+ lines = f1.readlines()[1:]
+ f1.close()
new_lst1 = []
n = 1
for i, num1 in enumerate(lines):
if i != 0:
new_lst1.append(num1)
- #print("num : %s" % num1)
+ # print("num : %s" % num1)
str11 = str(num1)
- str11 = str11.replace("|","")
- str11 = str11.replace("\n","")
+ str11 = str11.replace("|", "")
+ str11 = str11.replace("\n", "")
str11 = str11.lstrip()
str11 = str11.rstrip()
str11 = str(str11)
- if ((" " in str11 ) or (")" in str11) or ("(" in str11) or ("<" in str11) or (">" in str11)) :
+ if (
+ (" " in str11)
+ or (")" in str11)
+ or ("(" in str11)
+ or ("<" in str11)
+ or (">" in str11)
+ ):
print("Space / Paranthesis String : %s" % str11)
- else :
- with open(corpdir+'/strcmp-str{0}'.format(n), 'w') as file:
- file.write(str11)
- print("AFL++ Autodict-QL by Microsvuln : Writing Token : %s" % str11)
- n=n+1
+ else:
+ with open(corpdir + "/strcmp-str{0}".format(n), "w") as file:
+ file.write(str11)
+ print(
+ "AFL++ Autodict-QL by Microsvuln : Writing Token : %s"
+ % str11
+ )
+ n = n + 1
+
def main():
- args = parse_args()
+ args = parse_args()
ensure_dir(args.corpdir)
do_string_analysis(args.corpdir, args.infile)
-if __name__ == '__main__':
- main() \ No newline at end of file
+
+
+if __name__ == "__main__":
+ main()