如何利用 signapk 签名签名工具

天极传媒:天极网全国分站
您现在的位置:
& >&JDK环境安装/APK-ROM打包签名教程
JDK环境安装/APK-ROM打包签名修改教程yesky 13:49
  一.工具包使用环境:XP、环境
  1,JDK:官方下载页面/technetwork//javase/downloads/index.html(点击Download JDK按钮),下载后直接全默认安装JDK 1.,最好默认C盘,如果在别的盘
  ,下面的路径自行对应修改。
  ,设置环境变量:JAVA_HOME、PATH、CLASSPATH
  JAVA_HOME:我的-&属性-&高级-&单击“环境变量”按钮-&单击“系统变量”区域的“新建”按钮-&在“变量名”文本框中输入JAVA_HOME,在“变量值”文本框中输入JDK的安装路径(列
  如C:\Program Files\Java\jdk1.6.0_24),单击确定
  PATH:在系统变量中查看PATH变量,如果存在PATH,则在最末尾多添加一个%JAVA_HOME%\(直接添加,连;也加上,无需加空格之类的,以下相同)。如果不存在,则新建变量PATH,设定
  变量值为:%JAVA_HOME%\
  CLASSPATH:在系统变量中查看CLASSPATH变量,如果存在CLASSPATH,则在最末尾添加%JAVA_HOME%lib\dt.%JAVA_HOME%\lib\tools.。如果不存在,则新建一个,设定变量值为:
  %JAVA_HOME%lib\dt.%JAVA_HOME%\lib\tools.
  ,完成以上步骤后,开始验证是否安装成功。运行CMD(开始,运行,输入cmd,回车),输入javac,回车,假如出现了一堆如何使用java的帮助,那就是已经安装成功了。如果没有显示
  java的帮助那么就重新设置环境变量,把AVA_HOME、PATH、CLASSPATH都删除掉,按2上的步骤重新建立即可。
  二.工具包使用说明
  本工具包利用现有APKTool反编译软件和signapk签名软件进行了整合,使APK格式的软件解包、打包和签名变的更方便和快捷,再也不用到目录里边去复制粘贴出来,或者拖拽和手动输入命令
  了!一切全部自动完成!将本工具解压在任意目录下。
  1、解包软件,将需要修改(汉化、精简等)的APK软件放置在软件包的根目录中,然后运行解包软件,需汉化的原始软件将自动放置到【原始软件备份】文件夹内里,解包后的资源自动放置
  在【汉化中的资源】里的同名文件夹内。
  2、修改软件,这个需要你亲自动手去完成。
  3、打包签名,运行打包签名,会自动将汉化过的资源进行打包并进行签名,签完名的软件自动放置在【已汉化签名的软件】文件夹内。
  另外:
  (1)、软件支持同时解包和打包签名多个软件;
  (2)、当对同一个软件进行多次解包和打包签名时,解包资源将会存放根目录,不会覆盖或跳过;
  (3)、已保留手动打包、解包和签名功能(apktool.bat & sign.bat);
  ()、【原始软件备份】、【汉化中的资源】、【已汉化签名的软件】不存在时可以自动建立;
  特别注意:不要改动软件包内文件和文件夹名称,否则软件将无法正常工作!!!也欢迎大家动手不断完善它!apktool 反编译之后重新编译的文件可能无法正常运行。如果你只是修改了语
  言文件,可以在重新编译以后,用压缩软件提取出 resources.arsc 文件,替换掉原软件中的同名文件。注意这个文件不要压缩(用 替换该文件的话,压缩方式选“存储”),否则
  可能有问题。也可以试试用原来的 apk 里面的 classes.dex 文件将新软件包里面的那个替换掉。这样一般可以运行。
&&& 签名工具下载:
(作者:Sunny_晴天责任编辑:郭星)
天极新媒体&最酷科技资讯扫码赢大奖
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
手机类型:三防手机
外观设计:直板式
主屏尺寸:3.7英寸
分辨率(像素):854×480
CPU厂商:德州仪器CPU
CPU型号:德州仪器 OMAP3610
触摸屏:支持
3G制式:WCDMA
操作系统:Android
后置摄像头像素:500万
MP3播放:支持
蓝牙通信:支持
WIFI功能:支持WIFI
WAPI功能:支持WAPI
GPS功能:支持
网上商城商品/规格/促销价格
整机数码游戏软件后使用快捷导航没有帐号?
只需一步,快速开始
查看: 1028|回复: 7
在线时间349 小时经验值566 最后登录注册时间帖子阅读权限60UID3583793
大学本科, 积分 566, 距离下一级还需 134 积分
TA的每日心情奋斗 02:23签到天数: 14 天[LV.3]偶尔看看II
G币308 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
本帖最后由 QQ1198398 于
18:34 编辑
请教signapk -w命令签名方法???
java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip UPDATE_signed.zip
怎么改这个命令//签名后有&&signed by SignApk
在线时间349 小时经验值566 最后登录注册时间帖子阅读权限60UID3583793
大学本科, 积分 566, 距离下一级还需 134 积分
TA的每日心情奋斗 02:23签到天数: 14 天[LV.3]偶尔看看II
G币308 最后登录注册时间
大大都睡觉了!!
在线时间349 小时经验值566 最后登录注册时间帖子阅读权限60UID3583793
大学本科, 积分 566, 距离下一级还需 134 积分
TA的每日心情奋斗 02:23签到天数: 14 天[LV.3]偶尔看看II
G币308 最后登录注册时间
回复 2# QQ1198398
顶下,沉了!
在线时间20 小时经验值15 最后登录注册时间帖子阅读权限20UID2816497
小学生, 积分 15, 距离下一级还需 35 积分
该用户从未签到
G币2 最后登录注册时间
java -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.zip UPDATE_signed.zip
在线时间2 小时经验值2108 最后登录注册时间帖子阅读权限90UID
硕士, 积分 2108, 距离下一级还需 392 积分
TA的每日心情慵懒 13:46签到天数: 47 天[LV.5]常住居民I
G币721 最后登录注册时间
自从顶了这帖后,机不死了,网速快了,电池也耐用了,流量也无限了,积分也涨了,山寨也正版了,感冒也好了,中奖次数也多了,精神也抖擞了,泡妞也顺利了,查查话费也多出了几百块,顶一顶才一秒钟,太值了
现在有些女孩子,整天微信、微博上和男人打情骂俏、勾勾搭搭,聊不了几句就开房,视感情如儿戏,一点也不自重。对于这样的女孩,我只想对她们说4个字:请来找我
在线时间0 小时经验值75 最后登录注册时间帖子阅读权限30UID
初中生, 积分 75, 距离下一级还需 25 积分
该用户从未签到
G币13 最后登录注册时间
在线时间0 小时经验值160 最后登录注册时间帖子阅读权限40UID
高中生, 积分 160, 距离下一级还需 40 积分
该用户从未签到
G币0 最后登录注册时间
看看这个吧
在线时间221 小时经验值668 最后登录注册时间帖子阅读权限60UID7103654
大学本科, 积分 667, 距离下一级还需 33 积分
TA的每日心情郁闷 11:17签到天数: 11 天[LV.3]偶尔看看II
G币282 最后登录注册时间
自从顶了这帖后,机不死了,网速快了,电池也耐用了,流量也无限了,积分也涨了,山寨也正版了,感冒也好了,中奖次数也多了,精神也抖擞了,泡妞也顺利了,查查话费也多出了几百块,顶一顶才一秒钟,太值了
Powered byAPK签名校验绕过 | WooYun知识库
APK签名校验绕过
0x01 Android签名机制
将APK重命名为zip文件,然后可以看到有个META-INF的文件夹,里面有三个文件,分别名为MANIFEST.MF、CERT.SF和CERT.RSA,这些就是使用signapk.jar生成的签名文件。
1、 MANIFEST.MF文件:
程序遍历update.apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个生成SHA1的数字签名信息,再用Base64进行编码。具体代码见这个方法:
private static Manifest addDigestsToManifest(JarFile jar)
关键代码是
for (JarEntry entry: byName.values()) {
String name = entry.getName();
if (!entry.isDirectory() && !name.equals(JarFile.MANIFEST_NAME) &&
!name.equals(CERT_SF_NAME) && !name.equals(CERT_RSA_NAME) &&
(stripPattern == null ||!stripPattern.matcher(name).matches())){
InputStream data = jar.getInputStream(entry);
while ((num = data.read(buffer)) & 0) {
md.update(buffer, 0, num);
Attributes attr =
if (input != null) attr = input.getAttributes(name);
attr = attr != null ? new Attributes(attr) : new Attributes();
attr.putValue("SHA1-Digest", base64.encode(md.digest()));
output.getEntries().put(name, attr);
之后将生成的签名写入MANIFEST.MF文件。关键代码如下:
Manifest manifest = addDigestsToManifest(inputJar);
je = new JarEntry(JarFile.MANIFEST_NAME);
je.setTime(timestamp);
outputJar.putNextEntry(je);
manifest.write(outputJar);
2、 生成CERT.SF文件:
对前一步生成的Manifest,使用SHA1-RSA算法,用私钥进行签名。关键代码如下:
Signature signature = Signature.getInstance("SHA1withRSA");
signature.initSign(privateKey);
je = new JarEntry(CERT_SF_NAME);
je.setTime(timestamp);
outputJar.putNextEntry(je);
writeSignatureFile(manifest,
new SignatureOutputStream(outputJar, signature));
3、 生成CERT.RSA文件:
生成MANIFEST.MF没有使用密钥信息,生成CERT.SF文件使用了私钥文件。那么我们可以很容易猜测到,CERT.RSA文件的生成肯定和公钥相关。 CERT.RSA文件中保存了公钥、所采用的加密算法等信息。核心代码如下:
je = new JarEntry(CERT_RSA_NAME);
je.setTime(timestamp);
outputJar.putNextEntry(je);
writeSignatureBlock(signature, publicKey, outputJar);
在程序中获取APK的签名时,通过signature方法进行获取,如下:
packageInfo = manager.getPackageInfo(pkgname,PackageManager.GET_SIGNATURES);
signatures = packageInfo.
for (Signature signature : signatures) {
builder.append(signature.toCharsString());
signature = builder.toString();
所以一般的程序就是在代码中通过判断signature的值,来判断APK是否被重新打包过。
0x02 签名绕过方式
在讲签名绕过的方式前,需要先明确DEX校验和签名校验:
1.将apk以压缩包的形式打开删除原签名后,再签名,安装能够正常打开,但是用IDE(即apk改之理,会自动反编译dex)工具二次打包,却出现非正常情况的,如:闪退/弹出非正版提示框。可以确定是dex文件的校验
2、将apk以压缩包的形式打开删除原签名再签名,安装之后打开异常的,则基本可以断定是签名检验。如果在断网的情况下同样是会出现异常,则是本地的签名检验;如果首先出现的是提示网络没有连接,则是服务器端的签名校验.
2.1.Java层校验
获取签名信息和验证的方法都写在android的java层。实例如下:
1、使用APKIDE反编译APK,不做任何操作,然后直接回编译,安装后运行,提示如下:
2、在APKIDE中搜索signatures(或者搜索错误提示),定位到签名验证的代码处。
3、此处就是获取签名的,然后找程序判断签名的地方,进行修改,如下图,if-nez是进行判断的地方,将ne修改为eq。即if-eqz v2, :cond_0。则程序就可以绕过本地的签名交易。
2.2.NDK校验
将关键代码放到so中,在底层获取签名信息并验证。因为获取和验证的方法都封闭在更安全的so库里面,能够起到一定意义上的保护作用。实例如下:
1、使用APKIDE反编译APK,不做任何操作,然后直接回编译,安装后运行,程序直接退出,无任何提示。
2、在APKIDE中搜索signatures(或者搜索错误提示),定位到签名验证的代码处。
3、使?用JD-GUI打开AppActivity,可以看到,此处是获取包名,然后进?行MD5计算。
4.在程序中搜索getSignature,发现并没有调?用此函数的地?方,猜测在so?文件中,搜索loadLibrary。
5.在代码中可以查找,可以找到调?用的是libcocos2dcpp.so
6.使?用IDA打开libcocos2dcpp.so,然后搜索getSiganture,找到调?用此函数的地方。
从代码中可以看到,此函数调?用了org.cocos2dx.cpp.AppActivity.getSignature
7、查看F5代码,发现此函数是判断签名的函数,然后我们双击此函数的调?者,部分代码如下。
8、从上图可以看出,只需要修改BEQ loc_11F754,让其不跳转到jjni——>error,就可以绕过签名校验。 查看HEX,使?010editor跳到0011F73E,修改D0为D1。成功绕过签名校验。
2.3.服务器验证
在android的java层获取签名信息,上传服务器在服务端进行签名然后返回验证结果。
如下图,网络验证时,如果网络没连接,一般都会提示错误。
既然是网络验证,肯定要把验证信息发送到服务端,然后进行验证,先看个简单的实例,下次会有个难度大的。
1、手机配置好抓包,然后抓包。第一种图是正常的APK的时候的数据包,第二个图是反编译的APK的数据包,通过对比,发现cookie中的public_key不一样,那么我们替换一下,发现可以正常使用APK的功能了。
2、将正确的public_key添加到APK中。打开反编译的代码,搜索signatures,定位到签名的代码。
可以看到,代码将signatures的值传递到V4中,然后传递到Utils->mPublicKey函数中,于是我们将正确的public_key传给V4。
然后重新打包,重新安装就可以了。
java层的校验很容易就可以破解掉,在so层实现校验相对来说分析会更难点,而网络验证,如果仅仅是字符串的比较,那么也很容易破解掉。
码子码的太累了。。
后面还有几篇正在写的文章,包括so分析等等。
摘抄: http://www.blogjava.net/zh-weir/archive//354663.html
碎银子打赏,作者好攒钱娶媳妇:
留下联系方式 有事请教
关于NDK校验
教教我教会100娶媳妇
不知为啥那么多文章说CERT.SF中用了RSA签名,不知误导了多少人,估计是被4.2之前的代码骗了。令外,无需查找签名检查逻辑和修改APK,通过修改系统/data/system/packages.xml文件中的APP签名信息就可绕过签名验证了,或者动态HOOK也OK
好文!!!!
不错的文章~ 但是并不能绕过selinux
鄙视的好。。如果造成干扰了,对不起。。
期待楼主后续的文章
原来楼主你引用别人的文字没有经过验证的,建议你去验证一下CERT.SF文件里面存放的到底是什么东西。
还想请教楼主一个问题,so文件里面是对哪部分校验了MD5呢?
楼主你确定生成CERT.SF文件使用了私钥?
IDA用这个插件修改文件比较方便。
IDA Patcher 1.2 by Peter Kacherginsky
/thread--1.html
(出处: 吾爱破解论坛)
不错!在so验证确实麻烦
感谢知乎授权页面模版SignApk签名工具 - 下载频道 - CSDN.NET
&&&&SignApk签名工具
&SignApk签名工具
安卓软件签名工具,不是编程高手也能让你可以更改自己喜欢的图标
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
SignApk签名工具
所需积分:1
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:

我要回帖

更多关于 signapk.jar 下载 的文章

 

随机推荐