Commit 7e003684 by sikang

update script

parent 9a7e2ee7
...@@ -17,17 +17,15 @@ class PackageGarble: ...@@ -17,17 +17,15 @@ class PackageGarble:
return "%s_%s"%(random_str1,random_str2) return "%s_%s"%(random_str1,random_str2)
# 替换文件内容 # 替换文件内容
def __process_file_content(self, path, file_name): def __process_file_content(self, path, file_name):
# print("processing content: %s..."%path) # print("processing content: %s..."%path)
with open(path, "rt") as fin: with open(path, "rt") as fin:
file_content = fin.read() file_content = fin.read()
# replace the file content based on mangle settings # 必须先替换长路径
for (src, dst) in self.pkg_mapping.items(): keys = sorted(self.pkg_mapping.keys(),
separator = [ key=lambda i: len(i.split(".")), reverse=True)
" ", ".", "\"", "{", "}", "(", ")", "[", "]", "<", ">", ":", ";", ","] for pkg in self.pkg_mapping.keys():
for sep in separator: file_content = file_content.replace(pkg, self.pkg_mapping[pkg])
file_content = file_content.replace(src + sep, dst + sep)
ext = os.path.splitext(file_name)[1] ext = os.path.splitext(file_name)[1]
if ext == '.java': if ext == '.java':
...@@ -99,38 +97,36 @@ class PackageGarble: ...@@ -99,38 +97,36 @@ class PackageGarble:
for root, dirs, files in os.walk(path): for root, dirs, files in os.walk(path):
directory = os.path.join(os.getcwd(), root) directory = os.path.join(os.getcwd(), root)
for file in files: for file in files:
if file.endswith(".java"): if file.endswith(".java") or file.endswith(".kt") or file.endswith(".xml"):
self.__process_file_content( self.__process_file_content(
os.path.join(directory, file), file) os.path.join(directory, file), file)
# 四大组件混淆 # 四大组件混淆
def pkg_garble(self, config): def pkg_garble(self, config):
# 遍历包 print("find pkgs...")
print("find activity...") #生成混淆字典
self.__find_pkgs("%s/app/src/main/java" % config['root']) self.__find_pkgs("%s/app/src/main/java" % config['root'])
self.__find_pkgs("%s/lib_base/src/main/java" % config['root']) self.__find_pkgs("%s/lib_base/src/main/java" % config['root'])
keys = sorted(self.pkg_mapping.keys(), # keys = sorted(self.pkg_mapping.keys(),
key=lambda i: len(i.split(".")), reverse=True) # key=lambda i: len(i.split(".")), reverse=True)
for key in keys: # for key in keys:
print(key+" -> " + self.pkg_mapping[key]) # print(key+" -> " + self.pkg_mapping[key])
#重命名路径
self.__rename_pkg("%s/app/src/main/java" % config['root']) self.__rename_pkg("%s/app/src/main/java" % config['root'])
self.__rename_pkg("%s/lib_base/src/main/java" % config['root']) self.__rename_pkg("%s/lib_base/src/main/java" % config['root'])
# self.__find_pkgs("%s/lib_base/src/main/java"% config['root'])
# #开始混淆
# print("start garble .java...") #先删除3级以下路径(例如com com.common),避免干扰到三方SDK
# self.__process_files("%s/app/src/main"% config['root']) for (key,value) in self.pkg_mapping.items():
# self.__process_files("%s/lib_base/src/main"% config['root']) path_level = len(key.split("."))
if path_level < 3:
self.pkg_mapping.pop(key)
# #混淆AndroidManifest.xml #全局替换
# print("start garble 混淆AndroidManifest.xml ...") self.__process_files("%s/app/src/main" % config['root'])
# manifest_path = os.path.join("%s/app/src/main/"% config['root'], "AndroidManifest.xml") self.__process_files("%s/lib_base/src/main" % config['root'])
# self.__process_file_content(manifest_path,"AndroidManifest.xml")
# lib_manifest_path = os.path.join("%s/lib_base/src/main/"% config['root'], "AndroidManifest.xml")
# self.__process_file_content(lib_manifest_path,"AndroidManifest.xml")
print("done") print("done")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment