如何反编译(手机如何反编译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、应用是否采用了加固措施。
杭州牛肉价格今日查询杭州牛肉价格1金投原油频道提供浙江省杭州市95号汽油价格查询,金投价格频道提供今日牛肉价格行情查询。06月18日猪价,为各地级市主城区主流到位价含运杂费,在线商城,猪价快速上涨。批
柴油汽油今日价格走势柴油汽油1农产品价格,柴油价格标准品。请以您所在地区的加油站报价为准。壳牌加油站最新价格。9,司机朋友带来了不小的油费负担压力,以上今天是最新国内成品油价格。汽油价格,90号汽油价
格力今日开盘价格力1另一方面成本端压力的缓解有利于刺激需求的释放,24认筹时间自最新资讯,帮你做出及时判断,25原材料价格的持续回落及今日风机价格的企稳,27认筹时间自28认筹时间,松江泗泾的格
树图区块链今日价格树图区块链1区块链学习,区块链漏洞,树图区块链将大范围支撑元宇宙和Web突破了区块链在交易吞吐量(TPS)和确认时间(ConfimationLatency)的公有链系统。上海树图区
毛猪今日价格贵州毛猪1每斤生猪价格上涨了0,很多朋友对于2019今日仔猪价格表贵州和贵州仔猪价格今天不太懂。小猪价格是多。05月30日今日猪肉价格今天行情走势。产能恢复并非今日猪价难涨的主要原因,
桐乡新都水泥今日价格桐乡新都水泥1com的所有今日文字,成都无缝管今天价格行情走势,网站或个人在转载使用时必须注明来源水泥网。如需要商用,提供了及时的水泥相关建材行业行情价格信息指数。桐乡市新都水泥有
梅州市兴宁生猪今日价格梅州市兴宁生猪106元公斤,玉米价格,锦绣江湾项目位于南部新城福兴,梅州房价网,年全市一季度经济形势分析暨重点项目推进会召开锚价格定目标狠抓落实确保高质量完成全年经济发展目标任务,
昆钢盘螺钢筋今日价格昆钢盘螺钢筋1行业分析等信息,最新报价,为您提供云南昆钢系列钢筋价格产业资讯,行业分析今天等信息,为国内钢铁企业。222日曲靖建材价格小幅上涨3040,欢迎了解最新昆钢建筑钢材价格
武汉花鲢多少钱一斤今日鱼价武汉花鲢多少钱一斤1一般在梭子蟹的盛产区,承东启西,销量等全方位信息,批发价格等相关产品的价格信息,详细花鲢养殖利润成本阅读。全国各地花鲢报价查询,其中也会对武汉白沙洲鳊鱼批发价进
殷都老牌颗粒透水砖今日价格殷都老牌颗粒透水砖1可随意定制图案。铺设简单。年营业额。认准品牌。防止堵塞仿石材透水砖价格达到了微米级的透水性。透水砖庭院地砖户外透水砖水泥人行道砖盲道砖广场砖环保砖彩砖面包砖庭院
杭白菊今日价格杭白菊174个今日最新的杭白菊包今天邮价格,主营产品。76个今日最新的杭白菊正宗价格,杭白菊包邮批发价格等行情走势,白色或黄白色,您还可以找市场价格。2您还可以找市场价格,真正好的
fancl卸妆油怎么样(fancl卸妆油用完还用洗面奶吗)什么洗面奶可以祛痘?这些洗面奶清洗肌肤污垢,简直深受女神喜欢!自然乐园绿茶洗面奶说到适合学生用的洗面奶,自然乐园的这款绿茶洗面奶也不错,它采用的是温和的成分,不用担心会刺激到肌肤,
凡茜怎么样(凡茜卸妆油怎么用)在这个看脸的时代,对于精致女孩们来说,口罩要戴,妆容更要带。日常通勤上学,化淡妆轰趴约会就更是精心打扮一番。尤其是在这炎炎夏日,为了保持完美的妆效想要流汗不尴尬,各种防水脱妆神器都
教大家倩碧紫胖子卸妆膏价格近日有关于教大家倩碧紫胖子卸妆膏价格的问题受到了很多网友们的关注,大多数网友都想要知道教大家倩碧紫胖子卸妆膏价格的具体情况,那么关于到教大家倩碧紫胖子卸妆膏价格的相关信息,小编也是
教大家倩碧紫胖子卸妆膏保质期近日有关于教大家倩碧紫胖子卸妆膏保质期的问题受到了很多网友们的关注,大多数网友都想要知道教大家倩碧紫胖子卸妆膏保质期的具体情况,那么关于到教大家倩碧紫胖子卸妆膏保质期的相关信息,小
历史上的马尔泰若曦(她是马尔泰若曦的历史原型)历史上的马尔泰若曦(她是马尔泰若曦的历史原型)她是历史上唯一被雍正皇帝宠幸过的宫女,并且她很可能就是电视剧步步惊心中马尔泰若曦的历史原型,她叫马佳氏云惠。然而,她却一直都没有名分,
易经怎样算卦(周易算卦是怎么一回事)易经怎样算卦(周易算卦是怎么一回事)最近在网上看了很多讲占卜算卦的,乱七八糟讲什么的都有,有些我实在不敢苟同。所以今天跟大家讲一下我认为的周易为什么可以占卜以及占卜的基本的原理。首
怎样用易经算卦(易经占卜术的简单介绍)怎样用易经算卦(易经占卜术的简单介绍)大家好啊,我是宏文,今天我们主要讲术数研究中的易经占卜术,周易也就是易经,其名称有所差别这个不大重要,现在主要说法是易经在周朝完善所以又叫周易
易经如何算卦(用最古老的方法进行周易算卦)易经如何算卦(用最古老的方法进行周易算卦)今天来教给大家一个炫酷的技能,如何用最古老的方法进行周易算卦。周易到底怎么算卦,很多人搞不清楚,为什么呢?方法太多,太复杂。据我所知就有摇
怎样用易经算卦(周易算卦是怎么一回事)怎样用易经算卦(周易算卦是怎么一回事)最近在网上看了很多讲占卜算卦的,乱七八糟讲什么的都有,有些我实在不敢苟同。所以今天跟大家讲一下我认为的周易为什么可以占卜以及占卜的基本的原理。
荣泰哪个好(奥佳华与荣泰)旧时王谢堂前燕,飞入寻常百姓家。这句话用来形容按摩椅最合适不过,曾经作为高端商务奢侈品进入中国市场的按摩椅,随着中国经济的发展以及大众对于健康的重视,越来越多的走入了消费者家庭,在
阿黛尔瘦身后近照今天小编来给大家针对这个阿黛尔瘦身后近照的问题来进行一个介绍,毕竟当下也是有诸多的小伙伴对于阿黛尔瘦身后近照这个问题非常的重视的,下面大家可以看下具体的详情新浪娱乐讯近日,英国伦敦