实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

移动安全-验证签名防止应用程序被篡改实验

发布日期:2024-03-05    作者:张旭     来源:     点击:

 

 

验证签名防止应用程序被篡改实验

一、实验目的

了解验证 apk 的签名的过程,检查应用程序是否被篡改。

二、实验环境与设备

系统:Windows Sever 2012 R2

其他:adt-bundle-windows, Eclipse, keytool

虚拟仿真环境拓扑如图1

9CC8

1

三、实验内容

1.通过 android ADT生成签名 apk

打开 eclipse,在 eclipse 启动时的选择 workspace 窗口中选择桌面 FirstApp bak 文件夹。

undefined

2

右键 FirstApp 项日文件夹,选择【Android Tools】选项卡里的【Export Signed Application Package】选项。

B652

3

然后选择打包的项目,选择好【FirstApp】后并且点击【Next】按钮。

undefined

4

选择【Creat new keystore】选项,即创建一个新的签名文件,其中keytore储存了密匙和证书。

undefined

5

然后填写相关信息,其中【Location】为签名文件保存路径与文件名,【Password】为签名库的密钥,【Confirm】为确认签名库的密钥,这里密码输入的是123456,填写完成后点击【Next】按钮。

undefined

6

生成签名文件,继续填写相关信息,其中【Alias】为签名文件的别称,【Password】为签名件密钥,【Confirm】为签名文件确认密钥,【Validity】为签名文件的有效期,【First and Last Name】为合法人的姓名,【Organizational Unit】为公司部门,【Organization】为公司,【CityorLocality】为所在的地方或城市,【State or Province】为所在洲或省,【Country code】为国家编号,填写完成后点击【Next】按钮。

选择带签名文件包的保存路径,这里也选择c盘根目录,然后点击【Finish】按钮完成。

打开c盘目录,在目录空白处按下Shift键并点击鼠标右键选择【在此处打开命令窗口(W)】。

首先查找apk里的rsa文件,输入jar tf FirstApp.apk |findstr RSA的命令,得到META-INF/CERT.RSA

undefined

7

然后需要从apk中解压rsa文件,继续输入命令jar xf FirstApp.apk META-INF/CERT.RSA

为了获取签名的fingerprints,输入命令keytool -printcert -file META-INF/CERT.RSA,得到了签名的信息,有所有者、发布者、有效期、证书指纹等。

undefined

8

2.验证重打包的 aPp 签名

在桌面上有一个名为 FirstApp signed.apk 的文件,是使用其他签名文件签名的 FirstApp 程序在桌面打开 cmd终端。

首先查找 apk 里的 rsa 文件,输入 jar tf FirstApp signed.apk |findstr RsA 的命令,得到 META-INF/ZS KEYS 7 T.RSA然后需要从 apk 中解压 rsa 文件。继续输入命令 jar xf FirstApp signed.apk META-INF/ZS KEYST.RSA

执行命令结束后就在桌面生成了 META-INF 文件夹。

获取签名的 fingenprints,输入命令 keytool -printcert -fle META-INF/ZS KEYST.RSA,得到了签名的信息有所有者、发布者、有效期、证书指纹等。

undefined

9

两个 apk 是否同签名,比较签名的 MD5 码或 SHA1 码或者其他信息,一样就是没有经过篡改的,反之,就是的签名被篡改过。

这两个 app 的签名有明显的不同,所以肯定是经过重打包或重签名的。

上一条:人工智能与大数据-产生式系统实验 下一条:移动安全-使用APKTool反编译APK实验

关闭