Android应用很容易被反编译,为了保护源码,通常都会进行混淆、加固操作,以此来增加破解难度。国内提供加固服务的公司也不少,像梆梆、爱加密、360加固都是使用者比较多的服务。我们的应用从一开始就在使用360的免费加固服务,每次发版都要登录、上传、加固、下载、重签名等操作,戳来戳去实在是麻烦,尽管360提供了客户端工具,每次都要戳来戳去我还是不大愿意的,今天抽空根据360提供的客户端工具的手册,简单写了个自动登录、加固、重签名脚本,基于Python2。 - # 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拷贝至脚本同一目录,运行脚本即可,命令行会输出相关运行信息。
由于工程包含了360的工具包,比较大,可自行下载360工具包再拷贝Python脚本放至同一目录,作相应修改即可。
|