android 录音原始文件_5分钟短文 | Android证书生成,签名,验证,虽然难,但学一次就够了!...

引言

从Android演进开始,APK签名就已经成为Android的一部分,并且android要求所有Apks都必须先签名,然后才能将其安装在设备上。关于如何生成密钥以及如何签名的文章很多。一个Apk,但我们将从安全角度进行研究。在对Apk文件进行反编译或反向工程之后,应查看哪个文件,以获取有关最初对应用进行签名的开发人员的更多信息。

5eccf24ae8d2bf65101a9c025e5f4f03.png

反编译APK文件

解压缩文件或使用apktool后,取决于如何对文件进行反编译,如果解压缩文件,则文件结构将如下所示。

18bfcfbaf1164ef084acea67c4ce6d67.png

我们正在查看META-INF文件夹,

正在查看使用Apktool进行的反编译Apk,它在原始文件夹中包括有关开发人员的证书详细信息以及所使用的哈希算法的类型等,并检查META-INF文件夹。

当您当前仍位于META-INF文件夹中时,使用keytool检查证书。

keytool -printcert -file DROIDRDR.RSA 

根据证书别名的名称,从证书颁发之日和证书设置为过期起,您将看到所有者,国家/地区,颁发者,证书有效性的不同信息。

MD5,SHA1和SHA256中的证书指纹以及所使用的签名算法。

ac16b6304494ba4efe67734407fe6697.png

之前,我谈论了生成证书,让我们从安全角度来看它,在分析您从第三方网站下载的Android应用程序时,您可以反编译该应用程序并查看该证书并将其与原始应用程序进行比较,在使用的哈希算法上,如果应用程序可能已被修改或篡改,则将其进行比较,我不会在谈论分析APK文件,但可能会稍后。

生成Android证书

如果您反编译并重新编译android应用程序,则需要对应用程序进行签名,如果不签名,则该应用程序将不会安装在用户设备上。有多种生成证书的方法,但是,我们将介绍使用keytool生成证书的三种方法。

方法1:

打开您的终端:

keytool -genkey -v -keystore awwal -alias hafsa -keyalg RSA -keysize 2048 -validity 365

其中 awwal —是密钥库名称,hafsa是证书别名,使用后将被添加到META-INF文件夹-keysize 2048中,但是您可以使用4096大小,但是设备存在与此有关的问题或者。但仅使用2048,有效期为几天。

方法2:

使用可在此处下载的apk-signer.jar。这是用Java编写的GUI,可生成证书并进行签名一个APK文件。尽管Playstore中也有一个Android应用程序。

526da6acfc192fcacbcfaa02b4b1d26e.png

签署Android应用程序

在您已经生成了Android应用程序之后,我们将研究如何对应用程序进行签名,运行您的终端:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore awwal medium.apk hafsa

其中-sigalg是使用的签名算法,您可以使用MD5找到一些应用程序,但是在验证应用程序时使用SHA1,因为它将告诉您使用的哈希算法以及使用的算法的弱度。

密钥库— awwal是生成证书时使用的密钥库名称的名称,hafsa是证书的别名,而medium.apk是要签名的应用程序的名称。

注意:如果您使用MD5,则该应用程序将被视为未签名应用程序,因为用于签署应用程序的算法很弱。

验证Android应用程序

使用jarsigner验证应用程序,以查看资源签名列表以及具有keysize的哈希算法。

打开您的终端:

jarsigner -verify -verbose medium.apk

其中仅验证将显示它是签名还是未签名,并使用详细选项查看证书的完整详细信息。

或者,您可以使用Apk签名者来自动完成文件名验证应用。

写在最后

虽然上面我们使用的都是 java 工具链的东西,其实生成的 CERT.RSA 文件内,包含了公钥链,也完全可以使用 openssl 工具打印出 pubkey 证书文件,并可做进一步的指纹校验。

关键是生成签名的方法,这个对于使用不同的工具复现过程很关键。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...

尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的…

【XSY2472】string KMP 期望DP

题目大意 给定一个由且仅由字符H,T构成的字符串\(S\)。 ​  给定一个最初为空的字符串\(T\) ,每次随机地在\(T\)的末尾添加H或者T。 问当\(S\)为\(T\)的后缀时,在末尾添加字符的期望次数。 对\({10}^97\)取模 题解 设\(f_i\)为从\(i-1\)匹配…

go语言api源码中文版_Go语言学习——sync.map源码剖析

1.简介 最近看了下Sync包,详读了sync.map源码,感觉源码实现还是比较巧妙的,有不少可以学习的地方;在讲源码前,先看下sync.map的"历史",从网上搜资料,sync.map是Go语言在1.9版本才引入…

JDK自带的log-java.util.logging

配置: 默认情况下,每个 FileHandler 都是使用以下 LogManager 配置属性执行初始化的。如果没有定义属性(或者属性具有非法值),则使用指定的默认值。 java.util.logging.FileHandler.level 为 Handler 指定默认的级别(默…

js实现添加className

obj.className ; //设置为新的obj.className ;//在原来的后面加这个obj.classList.add(" "); //与第一个等价 <style>#side_btn {width: 15%;left: 0;bottom: 5%;}#side_nav {width: 25%;left: -34%;top: 15%;transition: left 1s;text-align: center;}.nav_…

怎么成为日上会员直邮_18个日上直邮问题汇总,可以参考一下哦

前段时间发的日上直邮的微头条和视频&#xff0c;很多朋友遇到一些不明白的地方&#xff0c;我把问题汇总了一下&#xff0c;统一回答一下哦其实因为疫情&#xff0c;很多免税店都在做活动&#xff0c;活动方式不太一样&#xff0c;有好多种&#xff0c;我跟大家分享的只是其中…

IT网址大全

图像处理 [素材]   在线作图[素材]   思缘设计论坛[素材]   ps联盟[素材]   ps学习网[素材]   ps教程论坛[素材]   ps爱好者[素材]   46ps[素材]   勤学网[素材]   艺术字体转换器[模板]   视达千图[模板]   千图网[模板]   千库网[模板]   包图网[模板]   摄图网…

python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!

二、高阶函数高级函数, 英文叫 Higher-order Function.那么什么是高阶函数呢?在说明什么是高阶函数之前, 我们需要对函数再做进一步的理解!2.1 函数的本质函数的本质是什么&#xff1f;函数和函数名到底是一种什么关系&#xff1f;在python中&#xff0c;一切皆对象&#xff0…

拿什么衡量能力?!

众所周知&#xff0c;计算机技术属于高科技的范畴&#xff0c;但不能说所有和计算机沾边的东西都可以称之为高科技&#xff0c;笔者前几天经历了一次面试&#xff0c;也许对于有的朋友来说&#xff0c;这样的经历司空见惯&#xff0c;但是我还是想一吐为快。 本人不才&#xff…

基于数据库的事务消息解决分布式事务方案

转载请注明出处&#xff1a;http://www.cnblogs.com/lizo/p/8516502.html 概述 当单库已不能支撑当前业务的时候&#xff0c;我们往往都考虑进行分库&#xff08;横向拆分或者纵向拆分&#xff09;。但分库有个无法回避的问题&#xff0c;就是事务问题。网上有很多分布式事务解…

websocket 发送给前端一个对象_前端WebSocket封装

场景1: 只有单个长链接&#xff0c;不要求保活class WebSocketClass {constructor() {this.instance null;this.connect();}static getInstance() {if (!this.instance) {this.instance new WebSocketClass();}return this.instance;}connect() {this.ws new WebSocket(ws:/…

POJ1683 Puzzlestan ——Floyd传递闭包+Dfs

好久没写Dfs了&#xff0c;拿来练手。 WA了一次&#xff0c;没有判断中间的情况…… 解法&#xff1a;先用Floyd传递闭包处理哪些点一定要在一起、哪些点一定不能在一起&#xff0c;六重循环。 然后深搜&#xff0c;res[i][j]表示1,i这个物品在j这一行的匹配物品列编号。 没有最…

中service层的作用_浅析Java中dto、dao、service、controller的四层结构

目前我所在的项目组采用的是SpringBoot框架&#xff0c;前端使用BootStrapjQuery。SpringBoot是BS开发框架之一&#xff0c;不用单独开启tomcat服务器&#xff0c;目前比较流行&#xff0c;一般开发大型项目时会将所有的功能细分为许多小模块&#xff0c;每个模块都有dto、dao、…

SCCM 2007系列教程之六使用组策略实现SCCM客户端

SCCM 2007 安装光盘上提供了名为 ConfigMgr2007Installation.adm 的组策略管理模板&#xff0c;可用于配置客户端计算机的安装属性。1、使用 Windows 组策略对象编辑器等编辑器来将管理模板 ConfigMgr2007Installation.adm 导入新的或现有的组策略对象。&#xff08;此文件可以…

强化学习

机器学习算法完整版见fenghaootong-github 强化学习原理&#xff08;RL&#xff09; RL与有监督学习、无监督学习的比较&#xff1a; 有监督的学习是从一个已经标记的训练集中进行学习&#xff0c;训练集中每一个样本的特征可以视为是对该situation的描述&#xff0c;而其labe…

python的tool模块_barktools-包含各种有用的python模块和脚本的包-Oscar Bark Modules Scripts...

作者:Oscar Bark### 作者邮箱:kurshid.ognianovprotonmail.com### 首页:https://github.com/BarkenBark/python-tools### 文档:None### 下载链接# barktoolsA collection of utilities I find useful. Yes.Modulesbase_utilsA collection of modules which only depend on the …

非常不错的Nodejs工具:http-console

http-console是一个用nodejs写的类似于CURL的第三方库文件. 可以很直观的发送http请求以及查看返回结果. 安装需求: 1, 安装nodejs 2, 安装npm 3, npm install http-console 我做了个简单的例子: 启动: http-console 127.0.0.1:3000 1, HTTP GET: http://127.0.0.1:3000/&g…

bzoj1058: [ZJOI2007]报表统计

哈哈set卡时过了。 set求前驱的方法&#xff1a;*--b.lower_bound(x) &#xff08;想想写了splay的肉老师就很愉悦啊&#xff09; 弄两个set&#xff0c;一个记录的是位置的值&#xff0c;一个是差值&#xff0c;MIN_SORT_GAP就很简单啊&#xff0c;插入的时候找前驱后继&#…

javascript对象包含哪些要素_重学JavaScript 对象

栏目为大家介绍JavaScript的对象&#xff0c;重新认识。这里我们继续学习两个比较重要的类型&#xff0c;就是 Object 和 Symbol。我们主要讲的是 Object&#xff0c;相对 Object 来说 Symbol 只是一个配角。关于对象这个概念大家非常早就会接触到了&#xff0c;其实人大概在 5…

【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!...

Himi 原创&#xff0c; 欢迎转载&#xff0c;转载请在明显处注明&#xff01; 谢谢。 原文地址&#xff1a;http://blog.csdn.net/xiaominghimi/article/details/6937097 终于在11月公司的游戏即将上线了&#xff0c;那么对于iOS游戏来说当今都是内置道具收费属于主流&#xf…