什么是App加壳,以及App加壳的利与弊

非著名程序员涩郎

非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!个人微信号:loonggg,微博:涩郎,专注于移动互联网的开发和研究,本号致力于分享IT技术和程序猿工作心得体会。欢迎大家关注与转载。

非著名程序员

目前针对移动应用市场上安卓APP被破解、反编译、盗版丛生的现象,很多APP开发人员已经意识到保护APP的重要性。而对于移动应用APP加密保护的问题,如何对DEX文件加密尤为重要。那么接下来,我们就先介绍一下什么是App加壳和加壳的原理,利与弊等。

一、什么是加壳?

加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。是应用加固的一种手法对原始二进制原文进行加密/隐藏/混淆。

二、加壳作用

加壳的程序可以有效阻止对程序的反汇编分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件破解。

三、Android Dex文件加壳原理

Android Dex文件大量使用引用给加壳带来了一定的难度,但是从理论上讲,Android APK加壳也是可行的。

在这个过程中,牵扯到三个角色:

1、加壳程序:加密源程序为解壳数据、组装解壳程序和解壳数据

2、解壳程序:解密解壳数据,并运行时通过DexClassLoader动态加载

3、源程序:需要加壳处理的被保护代码

四、加壳的利与弊

* 优势:

①、保护自己核心代码算法,提高破解/盗版/二次打包的难度

②、还可以缓解代码注入/动态调试/内存注入攻击.

* 劣势:

①、影响兼容性

②、影响程序运行效率.

加壳的技术和原理已经介绍了,那么接下来我们再介绍一下什么样的应用需要加密呢?金融软件/病毒木马/游戏等敏感度高的应用需要加密,其他的看自己的需要,个人认为简单的,不是很重要的应用没必要加密,毕竟道高一尺,魔高一丈,只要想脱,总能有办法。

Android 上的加壳技术发展至今也不过三年,而 PC 端的加壳技术已经有十多年的发展。我们相信它能发展的更好,攻防是动态的对抗,技术一直在进步,反正技术的趋势肯定是做攻的,攻破后都认为守的不行,此消彼长,后面又加强又不好搞了。

目前市面上有很多第三方加壳的平台, 如果应用需要加壳选哪一种好?免费版强度都很一般,建议自己测试下商业版的兼容性然后再选择,接触到的壳有apkprotect,梆梆加固,爱加密,娜迦,阿里,百度,腾讯,360等。用户根据自己的需要可以选择一种试试。


微信号:smart_android (←长按复制)

介绍:非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!

个人微信号:loonggg

微博:涩郎

QQ群:413589216 更能资料和源码尽在QQ群文件

今日头条:搜索“非著名程序员”订阅更多信息

工作:专注于移动互联网的开发和研究,本号致力于分享IT技术和程序猿工作心得体会。欢迎大家关注与转载。

时间: 2024-10-08 09:49:12

什么是App加壳,以及App加壳的利与弊的相关文章

Android App 启动时显示正在加载图片(源码)

微信.QQ.天天动听等程序,在打开时显示了一张图片,然后跳转到相关界面.本文实现这个功能,其实很简单.... 新建两个Activity,LoadingActivity,MainActivity,将LoadingActivity设置为android.intent.action.MAIN.使用TimerTesk,或者Thread将LoadingActivity显示几秒后跳转到MainActivity界面. LoadingActivity: new Timer().schedule(new Timer

携程Android App插件化和动态加载实践

携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师. 需求驱动 2014年,随着业务发展需要和携程无线部门的拆分,各业务产品模块归属到各业务BU,原有携程无线App开发团队被分为基础框架.酒店.机票.火车票等多个开发团队,从此携程App的开发和发布

如何xposed hook 带"壳"的app

前段时间做了个游戏内购xposed 插件,但是当前的游戏部分都加壳了,并且最新的游戏支付sdk也进行加密了,这样就尴尬了 于是到网上搜索了下:看到"非虫"大大在看雪上发的部分代码如何hook 360加固的应用:原帖貌似被删了,在网上找了部分代码 链接地址:http://www.jianshu.com/p/0d74461ea199 大概原理:拿到壳的ClassLoader 然后再根据壳的ClassLoader 拿到对应的Class 然后在hook if (loadPackageParam

百度手机助手上传应用,360助手上架app,豌豆荚发布app多少钱

百度手机助手上传应用,360助手上架app,豌豆荚发布app多少钱 QQ 2205357007 对于安卓App推广而言,申请应用市场App首发是比较有效的App推广方式.如何申请App首发?选择独家App首发还是联合App首发,都需要根据实际情况综合考虑. 目前比较有效的App首发市场包括:360手机助手.腾讯应用宝.百度手机助手.小米.华为.魅族.OPPO,当然有余力的情况下,也可以去申请相对小众的应用市场比如豌豆荚.安智.淘宝手机助手.联想.搜狗.机锋.VIVO.金立等,下面泽思为大家介绍各

[ app运营 ] APP运营思考:APP上线前,我们该做些什么?

一.产品部分:想一想APP的承载够不够,是否要做压力测试?上架后,会迎来第一波用户,如何保证你APP的正常运行?将会出现哪些意外情况?我们遇到一个真实的案例,某游戏APP上架后,第一天就有3万次真实激活,但就在当天晚些,出现几百个差评,几乎都是说:“登陆慢.运行慢.垃圾游戏”这样的评论,第二天只好主动下架调整. 移动互联网,特别是APP store的世界,天天都在上演着一夜成名的故事,如果你不想在第一天就倒下的话,花点时间做压力测试吧. 二.市场部分:1. 想一下如何收集用户反馈,以及如何处理.

Hybrid App(一)App开发选型

1.几种app开发模式概述 Native App 即传统的原生APP开发模式,Android基于Java语言,底层调用Google的 API;iOS基于OC或者Swift语言,底层调用App官方提供的API.体验最好. Web App 即移动端的网站,将页面部署在服务器上,然后用户使用各大浏览器访问.一般泛指 SPA(Single Page Application)模式开发出的网站.体验最差. Hybrid App 即混合开发,由Native通过JSBridge等方法提供统一的API,然后用Ht

安卓App应用加固、App安全保护!

据最新消息,Android 应用数量已成功超越苹果,并将率先突破100万大关.而在众多多的应用之中,却潜伏着太多"不速之客".由于利益驱使以及相关法律的缺失,不法分子将病毒.木马内置于手机App中进行传播,导致手机死机.个人信息泄露.收取短信彩信进行扣费等情况发生,严重影响手机用户的正常使用. 很多用户都认为手机病毒.木马离自己很远,其实则不然,这些携带病毒.木马或恶意广告的App就广泛存在于应用市场之中.据艾媒咨询最新发布的报告显示,在中国手机病毒和恶意软件主要传播途径方面,应用商店

java后台,APP接口,APP后台,手机后台,APP框架

开发快报: 页面打印功能,websocket 强制下线功能,玩转websocket技术  [金牌]获取[下载地址]   QQ: 313596790A 代码生成器(开发利器);     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都

wp8人人监督app开发历程 - (前期调研 > app策划 > 代码编写 >测试 > 上架到商店)

前言 一直想为社会做一点事情,却一直都不知道做什么,策划已久的"人人监督"app终于做了一小半了. 开发了好几款app了,一直没写博文记录在开发app中遇到的问题和技术,这次"人人监督"不能在错过了,一定要坚持把整个开发历程写下来,同大家分享在代码世界中的快乐. "人人监督" 是一款供民众投诉.检举.监督的一款app,其目的是人人监督以营造和谐的社会! 项目技术 开发环境:Windows8  + Visual Studio 2012 + SQl