首页 手机软件 正文

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

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

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

一、什么是加壳?

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

二、加壳作用

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

三、Android Dex文件加壳原理

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

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

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

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

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

四、加壳的利与弊

* 优势:

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

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

* 劣势:

①、影响兼容性

②、影响程序运行效率.

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

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

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

更多内容和资讯或者问题,更多干货分享,尽在我的个人微信公众号,微信名:非著名程序员,微信号:smart_android(←长按复制)。个人微信号:loonggg 微博:涩郎

加壳脱壳知识笔记

一、加壳

加壳定义:

利用特殊的算法可执行程序资源进行压缩,压缩后的程序可直接运行。

加壳的目的:

攻击者:制作免杀木马,攻击目标网络或主机。

防御者:防止入口点(OEP)被破解暴漏,导致程序被控或被篡改。

加壳作用

攻击者:成功入侵控制目标主机或盗取目的信息。

防御者:防止网络攻击、防止信息泄露。

加壳原理:

在二进制的程序中植入一段代码,在运行的时候先取得程序的控制权,然后再把控制权交还给原始代码,达到隐藏OEP的目的。

加壳方式/工具:

压缩加壳:注重减小软件体积大小,加密保护不是其重点。常用工具有UPX、北斗程序压缩、ASPack等。

加密加壳:重点加密保护。常用工具有PE-Armor、ASProtect、ACProtect、Armadillo等。

伪装壳:扰乱检测。常用工具有Hide PE等。

多层壳:重点加密保护。常用工具有Aspack、Pecompact、UPX等,资源释放工具有FreeRes等。

(多层壳说明:多层壳需要加壳后释放文件在加壳在释放在加壳,因此需要资源释放工具)

二、脱壳

脱壳定义: 即破除压缩后程序无法编辑的限制。

脱壳目的: 用于获取产品设计逻辑或杀毒检测。

脱壳步骤:

1、查壳:用于分析软件有没有加壳,加壳是所使用的哪种壳。常用工具(PEID、Ollydbg、)。详细操作过程可关注我的后期文章介绍:《破解基础-你到底有没有》。

2、寻找OEP:OEP是程序加壳前真正的入口点,外壳初始化的现场环境(各寄存器值)和原程序的现场环境是相同的,加壳程序初始化时保存各寄存器的值,外壳执行完毕,会恢复各寄存器内容。

3、抓取内存映像文件(Dump):完成外壳程序解压还原后,在内存中找到运行的目标PE进程数据,从内存中抓取出来,然后在用文件的形式保存下来。保存下来的文件可能不能正常运行,有可能是壳对IAT进行了加密。

抓取内存映像文件详细介绍可关注我的后期文章介绍:浅谈脱壳中的Dump技术

4、输入表重建(修改IAT):一些加密壳为了防止输入表被还原,会在IAT里填充一些扰乱解析的地址(例如:壳中用来HOOK-API的外壳代码地址),为了获得没有加密的IAT,一般可跟踪加壳程序对IAT处理过程,修改相关指令,阻止外壳加密IAT。

输入表重建 详细介绍可关注我的后期文章介绍:重建输入表

IAT的全称是Import Address Table。

IAT表是执行程序或者dll为了实现动态加载和重定位函数地址,用到的一个导入函数地址表。这里面记录了每个导入函数的名字和所在的

dll名称,在pe加载的时候系统会加载这些dll到用户的地址空间然后把函数地址覆盖这个表里的函数地址,然后重构所有用到这个表的代

码,让其调用直接指向实际函数地址(PE是否覆盖不确定,驱动会这么做),PE的IAT表会留在内存,驱动的就丢弃了。

相关问答

给文件 加壳 ,加花,去壳,分别是什么意思?

壳是一段执行于原始程序前的代码,隐藏程序真正的OEP(入口点,防止被破解),加壳就是利用OD这样的工具给软件加上一段这样的代码。去壳则相反。加花就是修改程...

怎么在拼多多上买手机 ?

先在手机上下载拼多多软件,下载好以后打开软件,在上面的搜索栏里搜索手机壳加自己的手机型号,然后就会出来很多样子的手机壳,再选择自己喜欢的样子,点击进入...

密狗是什么东西呀?

加密狗,也称作加密锁,是一种用在计算机、智能硬件设备、工控机、云端系统等软硬件加密产品。软件开发商通过加密狗管理软件的授权,防止非授权使用或者抵御盗版...

智能手机怎么拆卸外 ,有没有什么 工具 可以的?

有一种拆机用的撬棍和屏幕吸盘,你可以网上找一下,或者是买屏幕或电池时,店铺一般都会送你一套,如果不送你可以加几块钱让店铺帮你配有一种拆机用的撬棍和屏幕...

有没有专门定制手机 的软件?

有的,马爸爸的平台,支付宝上就有啊支付宝搜索“印鸽”,然后点击进入他们的生活号,首页有手机壳定制,每个用户每天都可以免费定制一个手机壳仅需支付6-12元不...

手机 下有螺丝的如何弄下?

1、在螺丝批头上垫点东西比如双面胶、无纺布等如果实在没条件的话纸张也可以,这样可以加大摩擦力度!2、用少量502胶水注入螺丝孔,然后将螺丝拧进去,等胶水凝...

制造手机 需要哪些设备?

很多人都不懂制造手机壳都要用哪些设备制作而成的下边就给大家讲些下手机壳在制作过程中需要用到那些设备及工艺生产一款手机套,用不同的材料来生产,则需要不...

手电钻外 怎么清洗?

电钻在清洗的时候先拔掉电源小心平放把其中一半外壳掀开;一般新式手电钻的结构是半嵌式的,即的机、电元件都装置在另一半外壳内。先取下碳刷,再拿下钻夹头这...

塑料外 的手持式电动 工具 ,如何测绝缘电阻,求方法?

设电动工具电阻为R1将电动工具,一已知电阻R2(R2须足够大),及一电池串联,再用伏特计量得电动工具和已知电阻的电压分别为V1,V2,则有I=V1/R1=V2/R2故R1=R...

铁成电动 工具 小型冲击钻怎么 黄油 - JCuBTThDaBJ 的回答 - 懂得

冲击钻加一般的黄油就可以了。若想好好保养使用就买耐高温320度以上的黄油。在这两个地方加油:(1)减速箱加油,有塑料旋盖的那个地方。(2)插钻头的...