系列文章
注明:影响范围 Android所有版本
安装包签名
1、描述
每个Android应用程序想要安装运行,必须经过签名.所以开发者在发布安装包时,必须对安装包进行签名。签名信息中包含的组织信息,将便于用户识别安装包的真伪。部分手机杀毒软件也是基于签名信息进行查杀的,因此一个完整详细的签名信息,有助于提高用户分辨真伪安装包。
2、过程
使用签名工具或者jeb查看签名和证书信息,查看签名是否符合以下标准格式。CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)。
jarsigner -verify -verbose -certs xxx.apk
检测发现如下信息——不符合规定要求。
3、建议
将安装包进行签名并检测安装包签名的异常。
完善企业签名组织信息
在应用发布时使用企业签名对安装包进行签名
反编译保护
1、描述
Android应用程序是使用Java进行开发,运行于Java虚拟机(Dalvik)的应用程序,通过反编译工具可以很方便地得到Dalvik虚拟机所执行的Smali代码和Java代码。便可对Android应用程序进行分析,修改,重打包,若没有任何加固保护措施,应用程序的逻辑将完完整整地暴露给分析者。
2、过程
使用Jeb、AndroidKiller_v1.3.1等反汇编工具加载目标Apk,检测Apk是否经过混淆或者加固
经过检测发现情况如下:
代码没有经过混淆或者加固,攻击人员可以通过攻击反编译.直接在源码层次进行攻击。
3、建议
对客户端代码进行代码混淆
对客户端进行加壳加固处理
应用完整性校验
1、描述
由于Android系统固有的缺陷,Android应用分发渠道管理机制等问题,导致Android客户端程序很容易被反编译篡改/二次打包,经任意签名后可在各个渠道或论坛中发布,这不仅损害了开发者的知识产权,更可能威胁到用户的敏感信息及财产安全,因此对客户端自身进行完整性校验尤为必要。
2、过程
只用apktool工具解包然后在重新打包apk,检测apk能否正常使用
apktool d apk
apktool b dir -o out.apk
重签名apk
如果app没有对dex或者签名进行校验的话,可以随意修改smali代码和资源文件,比如可以修改图标。下图展示了把某证券类应用图片替换为手电筒应用。
更改之前:
来源:freebuf.com 2020-11-24 16:39:20 by: calmness
请登录后发表评论
注册