作者:天凉好个秋骄阳_213 | 来源:互联网 | 2023-10-11 23:32
Android应用很容易被反编译,为了保护源码,通常都会进行混淆、加固操作,以此来增加破解难度。国内提供加固服务的公司也不少,像梆梆、爱加密、360加固都是使用者比较多的服务。我们的应用从一开始就在使
Android应用很容易被反编译,为了保护源码,通常都会进行混淆、加固操作,以此来增加破解难度。国内提供加固服务的公司也不少,像梆梆、爱加密、360加固都是使用者比较多的服务。我们的应用从一开始就在使用360的免费加固服务,每次发版都要登录、上传、加固、下载、重签名等操作,戳来戳去实在是麻烦,尽管360提供了客户端工具,每次都要戳来戳去我还是不大愿意的,今天抽空根据360提供的客户端工具的手册,简单写了个自动登录、加固、重签名脚本,基于Python2。
1 # coding=utf-8
2 import os
3 import subprocess
4
5 #base cmd
6 java = "java360"
7 cmd = '-jar'
8 jar = 'jiagu/jiagu.jar'
9 #login
10 cmd_login = '-login'
11 name = ''
12 pwd = ''
13 #sign
14 cmd_sign = '-importsign'
15 key_path = ''
16 key_pwd = ''
17 alise = ''
18 alise_pwd = ''
19 #jiagu
20 cmd_jiagu = '-jiagu'
21 apkTarget = ''
22 apkOutPutPath = ''
23 #autosign
24 cmd_autosign = '-autosign'
25 #showsign
26 cmd_showsign = '-showsign'
27
28 #get target apk and keystore
29 for file in os.listdir('.'):
30 if os.path.isfile(file):
31 extension = os.path.splitext(file)[1][1:]
32 if 'apk' in extension:
33 apkTarget = os.path.basename(file)
34 if "keystore" in extension:
35 key_path = os.path.basename(file)
36
37 apkOutPutPath = os.getcwd()
38
39 auto_login_cmd = [java,cmd,jar,cmd_login,name,pwd]
40 auto_importsign_cmd = [java,cmd,jar,cmd_sign,key_path,key_pwd,alise,alise_pwd]
41 auto_show_sign_cmd = [java,cmd,jar,cmd_showsign]
42 auto_jiagu_sign_cmd = [java,cmd,jar,cmd_jiagu,apkTarget,apkOutPutPath,cmd_autosign]
43
44 subprocess.call(auto_login_cmd)
45 subprocess.call(auto_importsign_cmd)
46 subprocess.call(auto_show_sign_cmd)
47 subprocess.call(auto_jiagu_sign_cmd)
line 11,12:
360账户密码
line 16,17,18
签名文件的三个秘钥(反正就是那三个
登录、导入签名秘钥只需执行一次,360会记录
此脚本需结合360提供的客户端工具中的命令行工具,其中的java执行程序是360修改的,为了方便调用复制一个命名为java360(貌似不能直接改,重签名操作需要360的java)
配置好以后将签名文件(*.keystore)和所要加固的APK拷贝至脚本同一目录,运行脚本即可,命令行会输出相关运行信息。
配置好的工程已放至Github:https://github.com/xlf2630/autoBuild
由于工程包含了360的工具包,比较大,可自行下载360工具包再拷贝Python脚本放至同一目录,作相应修改即可。