当前位置: 首页 > 编程日记 > 正文

安装包安全测试

主要说明以下内容:
1、能否反编译代码
2、安装包是否签名
3、完整性校验
4、权限设置检查
 
反编译代码:移动应用发布出去后最终用户获得的是一个程序安装包,我们需要关注的是用户能否从这个安装包中获取项目的源代码,从安全方面考虑,程序开发人员是否会在程序源代码中硬编码一些敏感信息,如密码等。常用的反编译方法是使用dex2jar工具并结合jd-gui工具(java的反编译工具)查看源代码。(一般是正式发布的时候才看,测试环境代码混淆了日志不好查看)
 
1、下载dex2jar和JD-GUI,在参考资料中添加了这两个工具的百度网盘下载地址供读者下载使用
如何利用dex2jar反编译APK
2、找到我们准备测试用的apk,并将 后缀.apk改为.zip
如何利用dex2jar反编译APK
如何利用dex2jar反编译APK
3、将test.zip解压,并查看目录,找到classes.dex
如何利用dex2jar反编译APK
 
4、并将这个文件拷至dex2jar工具存放目录下
如何利用dex2jar反编译APK
 
5、打开控制台,使用cd指令进入到dex2jar工具存放的目录下,如图
如何利用dex2jar反编译APK
 
6、进入到dex2jar目录下后,输入“dex2jar.bat classes.dex”指令运行
执行完毕,查看dex2jar目录,会发现生成了classes.dex.dex2jar.jar文件
如何利用dex2jar反编译APK
 
7、上一步中生成的classes.dex.dex2jar.jar文件,可以通过JD-GUI工具直接打开查看jar文件中的代码
如何利用dex2jar反编译APK
被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):
 
安装包是否签名:IOS系统不必太考虑这些问题,因为IOS每一个App发布出来都有一个正式的发布证书来签名,发布到App Store 时,App Store会做校验,保证APP是合法的开发者发布出来的。对于Android来说,发布的渠道多样,没有此类权威检查,我们需要验证下签名使用的Key是否正确,以防被第三方应用恶意覆盖安装,我们可以使用一下命令检查:
jarsigner -verify -verbose -certs apk包路径
如果运行后,显示 jar已验证,说明签名校验成功
 
完整行校验:为确保安装在测试过程到发布过程中因为各种问题导致文件损坏,需要对安装包做完整性校验,通常做法是检查文件的MD5值,一般通过自动化测试校验.
还未写完,后续完善....

转载于:https://www.cnblogs.com/wysk/p/7510410.html

相关文章:

Java课程寒假之开发记账本软件(网页版)之二

一.实现基础功能之一(记账) 一个记账本最基础之一的功能就是记账,所以也是首先要解决的问题,我选择了上学期使用的MySQL数据库来对账本进行存储。 我选择记账的方法是分开记账,就是支出放在一个表,收入放在…

谷歌浏览器Google Chrome和Adobe Flash Plugins插件安装问题

最近在做CSS的多浏览器支持,于是安装上了谷歌浏览器Google Chrome浏览器,结果发现谷歌浏览器Google Chrome的确构造非常简单,精干,速度非常迅猛,比臃肿的IE8快多了,于是开始使用谷歌浏览器Google Chrome&am…

Wireshark实验 - 入门

# Wireshark实验 - 入门 **官方英文文档:[Wireshark_Intro_v6.0.pdf](Wireshark_Intro_v6.0.pdf)** **以下内容为笔者翻译:** *** ## Wireshark 实验: 入门 v6.0 **《计算机网络:自顶向下方法(第6版)》补充材料&…

观察者模式的经典应用(猫叫 烧开水)

Code 猫叫了 老鼠跑 主人惊醒 1/**//* 2 * 题目: 3 * 猫叫了,所有老鼠开始逃跑,主人被惊醒,请用OO的思想描绘此过程 4 * 1,老鼠跟主人是被动的 5 * 2,要考虑联动性与扩展性 6 */ 7using System; 8using Sys…

HTML学习笔记之基本介绍

超文本标记语言 (Hyper Text Markup Language,HTML)不是一种编程语言,而是一种标记语言,用一套标记标签描述网页 HTML 标记标签又被称为 HTML 标签(HTML Tag),它是由尖括号包围的关键词&#xf…

系统分析与设计 实验一用例模型

图书管理系统系统分析及用例图 图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,图书证中包含每一个借阅者的编号和个人信息。系统通过一个单独的程序为借阅者提供服务,不需要管理…

2017.9.12.语文

列夫尼古拉耶维奇托尔斯泰(Лев Николаевич Толстой,1828年9月9日-1910年11月20日)19世纪中期俄国批判现实主义作家、思想家、哲学家。 转载于:https://www.cnblogs.com/mldyz/p/7510750.html

一封会笑死人的校园情书

Kiss郝美丽: Sorry!我把Miss拼成了Kiss,一不小心吻了你,实在是对不起! 吾本良家子弟,正统少年,一向对美眉们保持一种昂首挺胸,目不斜视的高姿态,人送美名…

Java面试题之多线程同步和互斥有几种实现方法,都是什么?

线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另外一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源,每个线程访问时的排他性。当有若干个线程…

1)头结点,头指针,

http://blog.csdn.net/zhenyusoso/article/details/6092843 转载于:https://www.cnblogs.com/xiaoyoucai/p/7512001.html

软件测试实验--数据工厂DataFactory+MySQL数据构造

数据工厂---DataFactoryMySQL数据构造 显示成功,但测出来的是啥...

杀进程和取文件最近使用时间

unit uFTPclient; interface uses SysUtils,Windows,Tlhelp32; const FILE_CREATE_TIME0; //文件建立时间 FILE_MODIFY_TIME1; //修改时间 FILE_ACCESS_TIME2; //最后访问时间 type TFileTimes (ftLastAccess, ftLastWrite, ftCreation); //文件是否…

局域网常见问题

1.开启Guest用户 密码可以不设,这样可以只输入账号Guest,即可登录(互访)。但需要保证以下策略的开启。 点击“开始→运行”并输入“gpedit.msc”,打开组策略。依次点击“计算机配置→Windows设置→安全设置→本地策略→安全选项”&#xff0c…

visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧。 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新。 第二步,将visual studio -> 工具 -> 扩展和更新 ,安装完所有更…

软件测试--利用正交表设计测试用例

输入条件如下: 姓名:填、不填 性别:男、女 学历:小学、初中、高中、专科、本科、硕士、博士 等级:普通、VIP 用正交表设计测试用例 Allpairs安装及使用 输入数据时要用tab键,或者使用excel表格处理 测试用…

TensorFlow 实现分类操作的函数学习

函数:tf.nn.sigmoid_cross_entropy_with_logits(logits, targets, nameNone) 说明:此函数是计算logits经过sigmod函数后的交叉熵值(即互熵损失),能帮助你更好的进行分类操作。对于一个不相互独立的离散分类任务&#x…

【推荐】极限编程的十二大原则——小版本

小版本:用最少的代码工作量带来最大的业务价值。 这个原则是意思是为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈。但小版本把模块缩得很小,会影响软件的整体思路连贯&am…

抓取网络文件的URL地址作附件发送

最近公司的一个项目, 把网站的前后台分离到两个不同的服务器上(后台Server在公司内部网,前台Server在互联网了).前后台用户(分别称呼:客户,公司员工)所有的上传的文件必须要存放在前台的Server上,这样客户才能无障碍访问文件.那,客户登陆前台提出咨询问题之后,公司员工回复问题…

字符串类型String总结

1.String类: ①Java中,字符串是String类的对象; ②Java中,String是引用数据类型; ③可以通过使用String类提供的方法来完成对字符串的操作; ④创建一个字符串对象之后,将不能更改构成字符串的字…

C# Task注意事项

1、在Task中调用主线程控件 Task.Factory.StartNew(() > {}).ContinueWith(task > {this.Invoke(new Action(() > { MessageBox.Show(this, "执行完成"); })); }); 转载于:https://www.cnblogs.com/zhyue93/p/task1.html

CSS实现网页图片预加载

#preloadedImages {width:0px;height:0px;display:inline;background-image:url(path/to/image1.png);background-image:url(path/to/image2.png);background-image:url(path/to/image3.png);background-image:url(path/to/image4.png);background-image:url();}只要在HTML里加…

软件测试--利用组合覆盖法设计测试用例

输入条件如下: 姓名:填、不填 性别:男、女 学历:小学、初中、高中、专科、本科、硕士、博士 等级:普通、VIP PICT安装和使用

thinkpad 61系机器(T61 X61/X61S R61)休眠掉电问题解决办法

众多61系机器用户在待机状态下一晚上耗电10%-20%。去think服务站得到的帮助是换电池,换主板等实验性的办法均不能解决此问题。通过多次尝试,我找到了行之有效的办法与大家分享。 为满足Energy Star 4.0的标准,机器在休眠模式下,机器的一些功能,比如网络唤…

Linux必知必会的目录与启动过程

第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [rootznix ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 HWADDR00:0c:29:cb:69:ee TYPEEthernet UUID38ad33ab-3d2b-4183-bd84-ce1766236ddd ONBOOTyes NM_CONTRO…

Oracle10g.CentOS6安装

1、文件 Oracle 10g 下载地址_Linux下载_Linux公社-Linux系统门户网站.html(https://www.linuxidc.com/Linux/2012-02/55336.htm) ZC:这里的下载链接基本都失效了...但是,可以看到 每个版本对应的文件名是什么,然后再根…

GridView中HyperLinkField的链接使用JavaScript问题

本来写好的程序,突然增加需求说要点链接以后刷新父页面并弹出窗口,弹出可以直接用Target属性,在网上查了查,DataNavigateUrlFields并不支持JavaScript,在别人博客上还找到了后台绑定数据的方法,感觉改动太大…

软件测试实验--性能测试工具LoadRunner

HP Loadrunner12的下载和安装 LoadRunner12.x简易入门教程--(一)回放与录制 打不开网页, 有脚本,没有关联实例,显示成功。 LoadRunner12安装及基本使用

sql server性能分析--执行sql次数和逻辑次数

目前在做一个项目优化时,想通过数据库层分析sql server系统性能,查了一下网上代码,修改了一下标题和DMVs代码,以下代码可以用来分析系统运行一段时间后,那些语句是系统忙的sql语句。做为参考。 另类使用: 一…

PHP-----PHP程序设计基础教程----第四章数组

4.1 初识数组 4.1.1 什么是数组 数组是一个可以存储一组或者一系列数值的变量。在PHP中,数组中的元素分两部分,分别为键(Key)和值(Value)。其中,“键”为元素的识别名称,也被称为数组…

spark编程基础--2.2scala基础知识

:load 读写文件 for循环表达式 对循环的控制breakable 数据结构--数组 数据结构--元祖 数据结构--列表 Range 集合 - 可变的集合可以在原集合上进行添加、更新及删除元素。 - 不可变集合一旦被创建便不能被改变,添加、更新及删除操作返回的是新的集合&…