柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布
柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布
由于JAVA和Android的平台型,所以APP很容易被反编译,这对于我们开发者来说,是一个不想要的结果,对于用户来说,就是一个噩耗,而安全性,一直是我们关注的焦点,今天,我们来聊聊这个安全性,和一起玩玩Apk加固!
一.我们为什么要提高APP的安全性
手机已经是不会离开身边了,APP更是重中之重的环节,我们衣食住行,基本上大部分都是靠APP来完成的,这样的话,APP的安全就是一个很大的挑战了,无论你哪一个环节出了问题,都会使你的私人信息,菜场安全受到威胁,更何况,万一给你来一个全家桶,那你还不得哭死!
二.提升APP安全性的手段
一般我们针对安全性有什么流程?
- 1.打包(学了几年的Android全部还给了Google爸爸了)
- 2.混淆 (可行性比较高,但是坑有点多,有些SDK不支持混淆)
- 3.加固 (平台多,选择慎重)
- 4.特殊处理 (企业不传之密)
一般就这几个流程吧,打包就直接上架了,这个点,明显是个梗啊,稍微反编译一下就能把你代码看个七七八八了,混淆也算不错的点,但是稍微有点麻烦,不过还算是不错的手段。加固,很轻松就搞定了,对于大多说开发者来说,算是挺不错的手段,但是,人家高手也可以直接解固的(好想学…),所以,作为开发者,我们日常的习惯一定要保持好啊,就拿我来说吧,我们公司有自家的系统,APP都是自己开发的,但是我每次调试的时候都能看到很多的APP的Log,这时我都会告诉负责这一块的工程师,把这些细节注意下,所以,我们的代码意识也有几个类型‘
- 1.时刻考虑多种情况下的功能实现
- 2.对权限严格控制,不要为了实现某个功能加很多多余的权限
- 3.清除你的Log信息,这里推荐用封装好的Log类
- 4.使用最新的开发工具和API,这点不多说,谁用谁知道
- 5.有使用到第三方SDK的时候,多考虑一下他的方方面面,对权限的严查和掌握它更新的动向
- 6.看看新闻,没准你能收获到很多安全意识
当然,我们不光写代码习惯要注意,我们写代码的时候也应该要多注意一些问题,当然,只针对大型企业APP和金融类APP
- 1.避免在JAVA层处理敏感数据
- 2.应用内自我效验
- 3.代码进行混淆
- 4.采用安全组件
- 5.APK加固
就拿输入密码来说吧,对密码的处理,各种加密,各种隐秘上传,但是还是会有疏漏,比如前段时间就有人爆料搜狗的输入法把用户输入的信息上传到了自己的服务器,还用的是明文,额…这个…..,友谊的小船就这样没说就翻了,当然,这里也不只是针对搜狗,其他几家也好不到哪里去,这时,我们也可以自定义键盘什么的,不需要很多的功能,其实实现起来还是没什么大难度的
当然,编译后的应用,数据都被编码了,进一步修改还是有点难度的,我们接下来讲一下加固的技术对编译的APK再穿上一层保护伞
三.加固手段
什么是加固(以360加固为基础)?
- 加固就是一种提升APK安全性的处理手段,他的原理就是使用一个classes.dex文件做Loader,对原字节码Classes.dex文件进行加载和启动,即在原字节码文件执行前增加一段额外的逻辑,用来增加安全策略,引导引用正常运行
大家都知道,我们用APKTools去反编译的时候,得到的源码文件就是Classes.dex,而加固就是把原有的Classes.dex做了伪装进行保护,我们来看张图
图是我偷来的,哈哈,这个就是一个加固的模式了,我们的APK的一些文件可以看这里
那我们加固前和加固后的文件结构有什么不同呢?这个我们还得分两个点来讲
- 文件结构的不同
文件结构发生了少许的变化,我们直接看图说话
这图自己画的,不是偷的啊,哈哈!
- 代码的不同
代码的不同,主要体现在
- AndroidManifest.xml
清单文件里,新增加了一条权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- 而且强制把Application的name指定为
android:name="com.qihoo.util.StubApplication"
- 最后是增加了一个注册Activity的信息
android:name="com.qihoo.util.appupdate.AppUpdateActivity"
对了,包名也发生了变化,在启动APP的时候就是进行了一些逻辑处理了,我们说了这么多,其实没什么luan用,我们还是实战了解一下把,这里就用360来演示
四.360加固助手
哟西,到正题了
1. 360加固助手的介绍
额,这个,还是照搬网上的吧,既然用人家的东西是吧,也不好黑人家,官网是这样说的,加固报移动应用提供专业安全的保护,可防止应用被逆向分析,反编译,二次打包,防止嵌入各类病毒,广告等恶意代码,从源头保护数据安全和开发作利益,为了满足广大开发者的需求,加固报团队推出了即网页端加固宝后的PC端360加固助手,来发着只需要打开360加固助手软件,一键上传APK,就可以自动完成应用的加固,多渠道打包,签名工作
2. 360加固助手的特点
- 1.一键上传自动加固与签名
无需下载签名工具,轻松实现自动签名,免去重复签名的麻烦
- 2.多渠道打包更简便,快捷
不限制渠道包个数,记忆你的渠道信息,无需重复配置渠道信息
- 3.自动下载和保存
应用加固后,自动保存在指定文件夹下,无需手动下载
3. 360加固助手的功能
- 本地加固
与加固报Web服务完全对接,使得加固变得更加便捷
- 2.查看加固任务的进度
在本地查看加固任务的详情
- 3.配置信息
本地配置签名,应用市场发布渠道,增强服务
- 4.辅助工具
制作签名,签名APK
- 5.一键发布
将加固后的应用一键发布到各大应用市场
怎么感觉在给360加固打广告一样啊…..
好了,我们直接进入官网
然后可以点击立即使用,他也会提示你下载助手的,这里给个链接一键直达
我们就直接下载Windows版了,里面有一些支持文件和一本说明书,还有一个安装程序,这里要注意我们需要登录哟
当然,主界面上的功能我们上面都讲到了,也就这么点东西可以说的了
好的,我们来时应用加固了
四.加固
为了加固,我们提前准备好一个APK,然后我们签名,得到他的签名文件,密码是123456789,好了,我们点击加固应用,导入我们的APK
我们暂时先暂不配置,就会看到正在进行加固
他就会提示输出的目录,也就是加固后的应用
而我们点击任务详情,就可以看到我们本次加固的一些信息
现在你,我们可以去配置信息中配置我们的信息了,这里有三个选项卡,第一个是配置你当前的app所需要的配置信息,你把签名文件放上去,再填写密码就可以了
第二个就是大多比较感兴趣的多渠道打包了,我们其实很简单,选择统计平台,选择市场,填写编号就可以了,很方便
最后加固选项就是指定输出路径了
下一个选项是辅助工具,没什么说的,签名和制作签名
最后,我们可以点击一键发布把应用发布出去了
还是挺方便的,get到新技能了哟!
好的,我们这章就到这里结束了
我的群:555974449,有兴趣的可以进来交流一下!
柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布的更多相关文章
- 手机app开发:浅谈APP登录方式的优劣
手机app开发公司亿合科技要是给你一个机会设计一款APP,你会用什么方式做这个APP的登录模块?根据APP的业务模型的不同会有不同的设计方法.如果是偏内容型的APP,需要优先展示内容给用户,当用户需要 ...
- 测试员浅谈App测试的重点
近年来,手机app也时持续大热.基于安卓和ios的手机app,更是受到众多投资者的青睐.而手机软件测试行业也是如此. 现在听的最多的是web测试和App测试,但实际上两者本质上没有什么区别,性质都一样 ...
- 浅谈APP消息推送
作为移动端APP产品运营最重要的运营手段,消息推送(push)被越来越多的APP厂商所重视,在信息泛滥的移动互联网时代,手机APP应用安装得越来越多,小小的手机屏幕每天收到的消息推送也越来越多,站在用 ...
- App性能优化浅谈
前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享.这里我稍微整理一下也给大家分享一下.关于性能优化这个话题非常大,涉及面能够非常广,也能够非常深入.本人能力有限,不会给大家讲特别难懂, ...
- 浅谈App原生开发、混合开发及HTML5开发的优劣
App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发 ...
- 浅谈APP的分享功能,有时候社交裂变形式比内容更“重要”
回顾2018年的移动互联网,“社交裂变”“下沉”等成为年度关键词.一方面我们可以看到社交裂变助推用户增长,另一方面我们也看到了以拼多多.趣头条为代表的互联网企业对于社交裂变模式表现出的空前关注度.作为 ...
- 浅谈APP流式分页服务端设计(转)
http://www.jianshu.com/p/13941129c826 a.cursor游标式分页 select * from table where id >cursor limit pa ...
- 浅谈.NET技术公司的实习生培养
浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...
- 【原创】浅谈指针(十二)关于static(上)
0.前言 这个系列基本上是一月一更到两月一更 今天写一篇关于static的,内含大量干货,做好准备 1.基础知识的回顾 1.1.内存的种类 一般来说,我们之前已经讲过的变量(或者说是内存)可以大体分为 ...
随机推荐
- js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法
对于js页面来说,未使用服务端控件,点击下载按钮时不会触发服务端事件,且不会提交数据到服务端页面后台进行数据处理,所以要下载文件比较困难.且使用jQ的post来请求一般处理程序也不能实现文件的下载,根 ...
- 阿里云linux下web服务器配置
markdown截图不方便,本教程不用markdown编写 首先参考文章 https://www.jianshu.com/p/2604e53a7f6a?from=singlemessage 安装完后无 ...
- 利用Python进行数据分析——重要的Python库介绍
利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...
- Dynamics CRM2016 Web API之删除单个查找字段值
之前的博文中有介绍过,Web Api中的一个删除单个属性的Api但没提供查找字段的删除方法,本篇补充上,这里给出的示例代码是C#的(主要看url的拼接),看下url中最后的/$ref,这个标示表明了当 ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- 给pdf文件添加防伪水印logo(附工程源码下载)
pdf添加水印logo这种需求场景确实很少,有些时候一些销售单据生成pdf添加一个水印logo,做一个简单的防伪效果,虽然实际上并没有太大作用,但是产品经理说要,巴拉巴拉--省略一万字. 下面将源码分 ...
- 阻塞IO服务器模型之单线程服务器模型
单线程服务器模型是最简单的一个服务器模型,几乎我们所有程序员在刚开始接触网络编程(不管是B/S结构还是C/S结构)都是从这个简单的模型开始.这种模型只提供同时一个客户端访问,多个客户端访问必须要等到前 ...
- Java基本语法-----java运算符
这块的东西比较多 我写了太慢了 于是在word里写好贴出来供大家一起学习 运算符 -赋值运算符 -比较运算符 -逻辑运算符 -位运算符 -移位操作符 -三元运算符 [正在看本人博客的这位童鞋,我看你气 ...
- 使用jQuery AJAX读取二进制数据
READING BINARY DATA USING JQUERY AJAX http://www.henryalgus.com/reading-binary-files-using-jquery-aj ...
- 高仿QQ头像截取
花费了半天时间,把 仿QQ头像截取的方法整理了下,并制作了一个demo以供大家参考,基本上实现了qq中我的资料界面上(包括背景透明化,上滑标题栏显示,下拉隐藏等)的大致效果,先上图看效果吧: 支持的功 ...