第二章 实践app安全

1、pull一个apk文件

[sdk安装路径]\tools\android create avd -n new1 -t 1(这是系统镜像id)

[sdk安装路径]\tools\emulator -avd new1 -no-boot-anim    (之后便是等待虚拟机启动)

[sdk安装路径]\platform-tools\abd pull /system/app/Contacts.apk  (因为是在avd之外操作的,所以要先确认一下Contacts.ap文件是否存在)

2、在apk中有一个META-INF文件夹,这里面有三个文件MANIFEST.MF、CERT.RSA、CERT.SF

MANIFEST.MF: 这个文件声明了资源,与CERT.SF文件非常相似

CERT.RSA: 这个文件公钥证书。 (格式是PKCS#7)

CERT.SF: 这个文件包含了app中的所有资源文件,它负责对app进行签名,其中含有JAR指定的密码学意义上的签名。

用java语言获取CERT.RSA文件中的内容代码如下:

byte[] ss = getFileBytes("c:\\CERT.RSA");
<span style="font-family: Arial, Helvetica, sans-serif;">PKCS7 p7 = new PKCS7(ss);</span>

3、对apk进行重新签名

在进行重新签名之前,在apk文件中删掉META-INF文件夹

1.首先建立一个keystore。(keytool工具在安装JDK时也同时安装上了)

keytool -genkey -v -keystore [keystore名称] -alias [密钥的别名] -keyalg RSA -keysize 2048 -validity [有效天数]

2.用新的密钥存储器去对app签名

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [你的keystore名字] [你的.apk文件] [你密钥的别名]

执行完之后apk文件终会加入META-INF的文件夹。

3.验证app签名

jarsigner -verify -verbose [你的apk文件存放路径]

4、apktool工具的安装和使用

1.首先下载两个文件apktool1.5.2.tar.bz2、apktool-install-windows-r05-ibot.tar.bz2,将其解压后放在sdk安装路径下platform-tools目录下的同一个目录中(如apktool)

2.搞定之后,测试一下/[apktool]所在目录]/apktool -help

3.用apktool提取apk所有文件

[apktool]所在目录]/apktool d -f -s Contacts.apk decode(这个decode指定了解压后存放的路径)

5、通过ADB与activity管理器交互

1.pm list package                       列出已安装的activity列表

2.am start [包名]运行指定的activity

其中am start还有一大堆参数,这里不写了,具体需要查看文档。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值