Commit 56b81889 by sikang

update script

parent 661b0aaa
{
"//root":"project根目录",
"root" : "../..",
"//properties" : "gradle.properties路径",
"properties" : "../../gradle.properties",
"//lib_main":"所有加入混淆的library main目录,上面 'root' 配置下的相对路径",
"lib_main":[
"app/src/main",
"lib_base/src/main"
],
"//":"",
"":"",
"//":"",
"":"",
"//apk_path" : "要加固的apk位置",
"apk_path" : "要加固的apk位置",
"//jiagu_output" : "360加固输出路径",
"jiagu_output" : "/Users/connor/Documents/apks",
"//jiagu_account" : "360加固 账号",
"jiagu_account" : "15902141504",
"//jiagu_pwd" : "360加固 密码",
"jiagu_pwd" : "qwqw10010",
"//jiagu_jar" : "jiagu.jar路径",
"jiagu_jar" : "/Users/connor/Documents/resources/app/jiagubao/jiagu/jiagu.jar",
"//activities":"需要混淆的类名,匹配方式 endswith() ,如 加入Activity.java 则所有Activity结尾的类加入混淆",
"activities" : [
"Activity.java",
"Bean.java",
"Fragment.java",
"Receiver.java",
"CertifyActiviy.java",
"BaseApplication.java",
"ContactEntity.java",
"SmsEntity.java",
"ActivityCenter.java",
"Service.java",
"Collector.java",
"BannerMessageDto.java",
"BasicAck.java",
"InviteResult.java",
"LoanAppBeanFatherStatusLogs.java",
"LoanRange.java",
"PhotoInfo.java",
"IncomeMessageProto.java",
"ResponseErrorBody.java",
"RecordFilesResponse.java",
"TotalAmount.java",
"UserBankInfo.java",
"YWUser.java"
]
}
\ No newline at end of file
import json
#读取config.json配置
config_json = {}
with open("config.json", "r", encoding="utf-8") as fin:
config_json = json.loads(fin.read())
#加入properties配置
properties = Function().load_properties(config_json['properties'])
config = config_json.copy()
config.update(properties)
print(" 使用帮助 ")
print("1、activity类名混淆")
command = int(input("请输入指令编号:"))
if command == 1:
#配置参数 config.json - activities
\ No newline at end of file
......@@ -9,18 +9,21 @@ from tools.garble.manifest_grable import ManifestGarble
from tools.sdk_manager import SdkManager
import os
import shutil
import json
config_json = {}
with open("config.json", "r", encoding="utf-8") as fin:
config_json = json.loads(fin.read())
properties = Function().load_properties(config_json['properties'])
config = config_json.copy()
config.update(properties)
# properties 配置
config = Function().load_properties("../../gradle.properties")
config['root'] = "../.."
config['jks_path'] = "../../jks"
config['properties'] = "../../gradle.properties"
config['apk_path'] = "../../resGuardApks/%s_%s_release.apk" % (
config["corp_id"], config["app_name"].replace(" ", "_"))
config['jiagu_output'] = "/Users/connor/Documents/apks"
config['jiagu_account'] = "15902141504"
config['jiagu_pwd'] = "qwqw10010"
config['jiagu_jar'] = "/Users/connor/Documents/resources/app/jiagubao/jiagu/jiagu.jar"
print(" ")
......
......@@ -4,32 +4,7 @@ import string
import random
class ActivityGarble:
target = [
"Activity.java",
"Bean.java",
"Fragment.java",
"Receiver.java",
"CertifyActiviy.java",
"BaseApplication.java",
"ContactEntity.java",
"SmsEntity.java",
"ActivityCenter.java",
"Service.java",
"Collector.java",
"BannerMessageDto.java",
"BasicAck.java",
"InviteResult.java",
"LoanAppBeanFatherStatusLogs.java",
"LoanRange.java",
"PhotoInfo.java",
"IncomeMessageProto.java",
"ResponseErrorBody.java",
"RecordFilesResponse.java",
"TotalAmount.java",
"UserBankInfo.java",
"YWUser.java"
]
__config = {}
used_names = []
activity_mapping = {}
......@@ -68,7 +43,7 @@ class ActivityGarble:
directory = os.path.join(os.getcwd(), root)
for file in files:
is_activity = False
for file_name in self.target:
for file_name in self.__config['activities']:
if file.endswith(file_name):
is_activity = True
......@@ -91,28 +66,21 @@ class ActivityGarble:
#四大组件混淆
def activity_garble(self,config):
self.__config = config
#找到要混淆的java文件
print("find activity...")
self.__find_activities("%s/app/src/main"% config['root'])
self.__find_activities("%s/lib_base/src/main"% config['root'])
for main_dir in config['lib_main']:
self.__find_activities("%s/%s"% (config['root'],main_dir))
#开始混淆
print("start garble .java...")
self.__process_files("%s/app/src/main"% config['root'])
self.__process_files("%s/lib_base/src/main"% config['root'])
for main_dir in config['lib_main']:
self.__process_files("%s/%s"% (config['root'],main_dir))
#混淆AndroidManifest.xml
print("start garble 混淆AndroidManifest.xml ...")
manifest_path = os.path.join("%s/app/src/main/"% config['root'], "AndroidManifest.xml")
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")
for main_dir in config['lib_main']:
manifest_path = os.path.join("%s/%s"% (config['root'],main_dir), "AndroidManifest.xml")
self.__process_file_content(manifest_path,"AndroidManifest.xml")
print("done")
if __name__ == "__main__":
#project 根目录
config = {"root" : "../../../../"}
ActivityGarble().activity_garble(config)
\ No newline at end of file
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