From dca245e6828c6de2195dff8efe8a38c6b45b7b4b Mon Sep 17 00:00:00 2001 From: howpwn Date: Fri, 20 Aug 2021 16:31:31 +0800 Subject: [PATCH 1/3] Fix LookupError LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs Ref: http://www.tastones.com/zh-tw/stackoverflow/python-language/incompatibilities-moving-from-python-2-to-python-3/encodedecode_to_hex_no_longer_available/ --- iosgrep.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/iosgrep.py b/iosgrep.py index 8360ad8..d08336e 100755 --- a/iosgrep.py +++ b/iosgrep.py @@ -1,5 +1,6 @@ #!/usr/bin/env python import sys, os, hashlib, re +from base64 import b64encode def Search_in_Data(keywordInData, pgname): print("# grep -ril -e '%s' %s :" %(keywordInData, pgname)) @@ -14,9 +15,9 @@ def Search_in_Data(keywordInData, pgname): print("---use plaintext to search---\n") Search_in_Data(keyword[:-1], packagename) print("---use hex to search---\n") - Search_in_Data(keyword[:-1].encode("hex"), packagename) + Search_in_Data(keyword[:-1].encode('utf-8').hex(), packagename) print("---use base64 to search---\n") - Search_in_Data(keyword[:-1].encode("base64").replace('\n', ''), packagename) + Search_in_Data(b64encode(keyword[:-1].encode('utf-8')).decode('ascii'), packagename) print("---use md5 to search---\n") Search_in_Data(hashlib.md5(keyword[:-1]).hexdigest(), packagename) print("---use sha1 to search---\n") From 05482042a272b9218df1835110a37bb65d1a3d6e Mon Sep 17 00:00:00 2001 From: howpwn Date: Fri, 20 Aug 2021 16:34:20 +0800 Subject: [PATCH 2/3] Fix TypeError TypeError: Unicode-objects must be encoded before hashing --- iosgrep.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iosgrep.py b/iosgrep.py index d08336e..7a70d04 100755 --- a/iosgrep.py +++ b/iosgrep.py @@ -19,9 +19,9 @@ def Search_in_Data(keywordInData, pgname): print("---use base64 to search---\n") Search_in_Data(b64encode(keyword[:-1].encode('utf-8')).decode('ascii'), packagename) print("---use md5 to search---\n") - Search_in_Data(hashlib.md5(keyword[:-1]).hexdigest(), packagename) + Search_in_Data(hashlib.md5(keyword[:-1].encode('utf-8')).hexdigest(), packagename) print("---use sha1 to search---\n") - Search_in_Data(hashlib.sha1(keyword[:-1]).hexdigest(), packagename) + Search_in_Data(hashlib.sha1(keyword[:-1].encode('utf-8')).hexdigest(), packagename) print("---use utf-8 to search---\n") Search_in_Data(repr(keyword[:-1]).replace("'",""), packagename) print("---use binary to search---\n") From 09b2f77032bc5676df2909aed7424af42bc66794 Mon Sep 17 00:00:00 2001 From: howpwn Date: Fri, 20 Aug 2021 16:36:29 +0800 Subject: [PATCH 3/3] Fix AttributeError AttributeError: 'str' object has no attribute 'decode' --- iosgrep.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iosgrep.py b/iosgrep.py index 7a70d04..fbe2b66 100755 --- a/iosgrep.py +++ b/iosgrep.py @@ -27,4 +27,4 @@ def Search_in_Data(keywordInData, pgname): print("---use binary to search---\n") Search_in_Data((' '.join(format(ord(x), 'b')for x in keyword[:-1]).replace(' ','\s')), packagename) print("---use unicode to search---") - Search_in_Data(repr(keyword[:-1].decode("utf-8")).replace("u", "", 1).replace("'", ""), packagename) + Search_in_Data(repr(keyword[:-1].encode("utf-8")).replace("b", "", 1).replace("'", ""), packagename)