如何反编译(手机如何反编译apk)
1、前言
APP客户端作为直接和用户接触的媒介,是公司是非常重要的信息资产。但由于系统本身的一些风险和破解工具的泛滥,使得破解移动应用变得易如反掌。移动应用安全性成为了大家都在的焦点。并在此基础上探讨如何做相关的安全测试。
本篇将要介绍是反编译的技术手段以及反反编译的一些基本策略。
2、反编译
未经保护的移动应用有许多弱点可被轻易攻击。比如注入恶意软件,窃取知识产权,破解内购、二次打包,盗取敏感数据等等。而这些操作的前提都是要进行 反编译。
这里我用Android系统的apk安装包作为例子,展开来介绍下。
2.1 常用的反编译工具
Android系统因其比较开放,且主要代码由java编写,所以相应的反编译工具比较多。例如apktool、jeb、jdJUI、jadx、MT管理器等等。iOS端则有IDA、Hopper之类的软件。
2.2 反编译效果
未经安全处理应用的java层反编译效果,代码及逻辑清晰可见,毫无秘密。
未经安全处理的native二进制文件反编译效果,代码逻辑及执行流程清晰明了。
通过上面的图可以看到,无论是java层代码还是c层代码,如果不加以适当的防护,都可以被反编译工具轻易的读取信息。
2.3 修改代码插桩
经过反编译后,我们实际上拿到的对应java层的代码其实是smali代码。它是用于Dalvik(Android虚拟机)的反汇编程序实现的。
通过修改smali代码,我们可以实现所有java层代码的功能。包括打印日志、跟踪堆栈、植入弹窗、注入恶意代码等等。然后重新打包就可以生成伪造的恶意apk安装包,然后利用破解等方式引诱不知情的用户下载,从而进行攻击或其他目的。
3、反反编译的基本策略
从上面的分析可以看到,不做防护的代码就如裸泳,一旦遇到各种反编译工具,立刻就会显出原形。
不过还是有一些手段可以用来给应用做安全防护的,例如代码混淆、应用加固等。
3.1 代码混淆
混淆机制,在应用中做混淆不仅可以减小安装包的大小,也可以增加逆向分析的难度。现在的混淆机制一般有两种,代码混淆和资源混淆。这里暂时只对代码混淆进行展开分析。
3.1.1 Java层代码混淆
混淆过的代码,在反编译后看到的代码类名、方法名以及代码格式都与正常的代码不太像。因为名称不规范,给逆向和逻辑的分析增大困难。
在普通的混淆的基础上,还可以定制高级版的混淆。这些都可以让逆向分析难度上升。
3.1.2 native代码混淆
关于c/c 代码的混淆,就非常有必要了解一下OLLVM混淆。在2.2章节中,可以看到即便是c/c 代码打包成的二进制动态库文件,如果不进行防护,在强大的反编译软件下依然跪的彻底。
OLLVM(Obfuscator-LLVM)是旨在提供一套开源的针对LLVM的代码混淆工具,以增加对逆向工程的难度。它是基于LLVM实现的,LLVM是一个编译器框架,并且得益于LLVM的设计,OLLVM适用LLVM支持的所有语言(C, C , Objective-C, Ada 和 Fortran)和目标平台(x86, x86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, 和 XCore)。
通过上图可以看到,经过ollvm的so库,其流程和代码都被一定程度的混淆了,让静态分析的难度大大增加。
但是,代码混淆本身只是对源代码进行一定的变形,并且一些特定的类是不能被混淆的。所以通过这些入口,破解者仍然可以通过工具进行分析,只是难度增加了。而且,根据混淆的特点,可以写出特定的反混淆脚本来修正。
3.2 应用加固
经过上面的分析可以了解到,现阶段反编译工作相对较容易,虽然有各种混淆功能,但是总体上属于治标不治本。随着攻防的对抗升级,各个大厂纷纷推出了自己的应用加固方案,例如梆梆、加固保、乐固等等。
下图展示了一个加固后的应用反编译情况,原始代码均被隐藏了,只展示壳应用的部分代码。壳的解密代码则全部被放进了native层中,这样可以提高应用被破解逆向的难度。
不过值得注意的是,给应用套一层壳后,会存在部分兼容性问题,这都要"归功"于Android系统及机型的多样性。
3.3 其他方案
核心代码由c/c 层面实现。经过编译的c/c 代码会生成一个ELF格式文件。想要分析这种格式的文件,要比分析java难度大得多,而且会牵扯到大量汇编语言知识点。而且ELF文件本身也可以被"修改"、"加固",例如抹去section信息等,同时又不影响其加载过程。通过这些手段,可以让静态分析的难度大大的提升。
还有一些其他的方案,如dex加固、动态加载等等。它们背后的原理其实都是一样的,对关键代码、文件进行修改、隐藏,只有在应用运行的时候才开始解密并执行。
4、安全性测试
基于这些反编译工具特点及反反编译的策略,我们就可以组织与其对应的反编译安全测试。
1、应用是否能够被常用的反编译工具识别,并且得到核心代码。
2、应用是否对代码进行了混淆,是否可以轻易还原逻辑。
3、应用是否采用了加固措施。
张铁泉为什么没赞助商(张铁泉ufc排名)当大家都在为张伟丽庆祝时,请不要忘记这位中国UFC第一人张铁泉!竞技体育给我们带来了非常多的激情和喜悦,我们对体育竞技的度也是越来越高了。最近今天,我想就算不怎么体育赛事的朋友也被
安陵容吃苦杏仁为什么会死(苦杏仁吃多少一定会死)导语后宫里女子尔虞我诈,机关算计,又有几个是善终的,为了皇上的宠幸,为了自己的利益,单纯的淳儿被华妃淹死,深爱皇上的华妃被处死,为女儿着想的曹贵人了了一生,从不报复的眉庄最后血崩。
怎么删除qq视频(qq编辑说说怎么删除视频)20080803如何往QQ空间里上传视频如何往QQQ空间插入视频有两种情况,1在主页添加视频模块。2在日志里插入视频,下面我对于这两种情况分别做个具体的说明一在主页添加视频模块具体
苹果为什么充不进去电(苹果充不了电小妙招)苹果手机突然充不了电,可能与系统充电器尾插接口主板等方面的因素有关。DFU模式DFU是IOS设备的强制升级模式,手机在该模式时为黑屏状态,且接入充电器后不会有任何反应。系统存在Bu
为什么电脑充不了电(电脑充电不显示充电)2018年在小米商城入手的AIR13。3(四核I5256GMX150)笔记本电脑使用到现在(2021),也使用了3年了,挺好用的本子,玩LOL,撸代码,PS,都完美使用。这是商城订
bias指标详解(股票bias指标怎么看)bias指标详解(股票bias指标怎么看)BIAS指标是乖离率指标的简称,表示当日收盘价与相应周期移动平均线之间的差距。该指标是由3条曲线组成,分别为不同周期的BIAS线。其中越短
网球规则(三分钟让你搞懂看似复杂的网球比赛基本规则)网球规则(三分钟让你搞懂看似复杂的网球比赛基本规则)对于网球小白来说,比赛规则可能在一开始就会让你晕头转向。也经常会有人问我诶,网球的规则是什么?怎么计分?讲真!一时半会真的说不清
如何选购电脑(计算机选购方案)大学生笔记本电脑不一定买贵或者高性能的,不管是轻薄笔记本电脑,还有游戏笔记本电脑都有各自的优势。前者通常便携性能更好,后者散热,CPU,显卡这些更好,但很重,就不是太适合大学女生使
华为笔记本(7月华为笔记本电脑挑选推荐全攻略)华为笔记本(7月华为笔记本电脑挑选推荐全攻略)2021年的华为笔记本电脑应该怎么选?这期内容告诉你答案。华为的笔记本可以分为三个系列,数字系列Matebook1314属于常规型号,
联想windows7(联想电脑维修点查询)联想windows7(联想电脑维修点查询)折腾了一天,终于有了好的结果。电脑是联想启天M520,amd处理器,因为需要,必须安装win7,32位系统。如今的新电脑很多都已经不支持安
联想笔记本维修站(联想笔记本维修站电话)联想笔记本维修站(联想笔记本维修站电话)当时选中的理由也很简单1国产2轻薄3指纹开机,光这三个条件在两年前就只剩下小米联想和华为了。当时的华为matebook的价格比联想贵了两倍所
怎么订飞机票(怎么查询别人帮我订的飞机票)进入九月,中秋和国庆就在眼前,大家貌似又进入了守着电脑查机票的焦虑期。我的不少同事就是这样,提前很久定了行程,机票却一直拖着不买,谁让这机票价格总是上下浮动,难以捉摸呢。这订机票啊
订票多久出票(飞机票预定了什么时候出票)3月29日是民航局要求实施一航一国一航线的砍国际航班政策的第一天,本周(3月29日4月4日),我国国际航班量将减至108班,降幅85。3,仅相当于疫情暴发前的1。2。随着回国航班的
倪萍为万茜打call今天小编来给大家针对这个倪萍为万茜打call的问题来进行一个介绍,毕竟当下也是有诸多的小伙伴对于倪萍为万茜打call这个问题非常的重视的,下面大家可以看下具体的详情乘风破浪的姐姐播
五格剖象法(五格剖象法起名免费测分)五格剖象法(五格剖象法起名免费测分)凡人必有姓和名。姓名是代表人的符号,从广义信息论的角度来说,各种符号都有其内在的含义,包含它所代表的实体。人的姓名除了代表这个人,是否还与这个人
江西杀人嫌犯又杀人近日江西杀人嫌犯又杀人登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下江西杀人嫌犯又
日本细菌战资源库向社会免费开放近日日本细菌战资源库向社会免费开放登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下日
抖音在哪里(抖音幕后老板是谁)文方文宇编辑李惠琳38岁的张一鸣退休了。昔日大学同窗公司联合创始人梁汝波将接任字节跳动CEO。梁汝波是江西宜春人,和张一鸣一同就读于南开大学软件工程专业,二人是室友,都爱好计算机,
女子被造谣出轨快递员后患抑郁这两天关于女子被造谣出轨快递员后患抑郁在网上的热度是非常高的,很多网友们也都是非常关注女子被造谣出轨快递员后患抑郁这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,那么如果
融资融券多久(融资融券几天能开好)投资者参与融资融券业务首选要经过融资融券交易申请授信评估签订协议等信用交易申请开户过程,其次是信用交易和债务清偿等融资融券交易过程,具体过程是(1)业务申请与资格审批投资者欲要进行
视障阿姨因导盲犬排尿被邻居投诉2年居委会多次调解无果每天都有不同的新闻上热搜,热搜也是大家了解当下各种热门新闻的一个途径的,这两天视障阿姨因导盲犬排尿被邻居投诉2年居委会多次调解无果的热度就非常高,也是受到了网友们的关注,那么小编今
今日废弃铝线价格今日铝合金价格多少钱一吨月22日上海帅翼驰铝合金新材料废铝采购价上海帅翼驰新材料有限公司废铝收货参考价格如下浮锭。今日资讯。废不锈钢回收各种型号不锈钢边角料。摩托车轮圈。东恒不锈钢今日价格最新报价行情走势