- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
文章链接:/jiazhijun/article/details/9428861
作者:Jack_Jia邮箱:309zhijun@163.com
英文原版:/papers/DexEducation-PracticingSafeDex.pdf
该文章发表于BlackHat2012,虽然内容不够新鲜,也许好多方法目前已经失效,但是仍然会给我们反逆向方面很多的启示!
一、DEX相关基础知识
1、什么是DEX?
DEX是DalvikEXecutable的简称。
打包.class文件为单一DEX文件并运行于Dalvik虚拟机。
DEX文件打包进APK文件中(本质上是jar或zip文件)。
安装时,系统提取DEX文件进行检查和验证。
第一次运行时,系统完成DEX优化,转换成odex文件。
odex文件存放在/data/dalvik-cache目录并在执行时加载进内存执行。
2、DEX文件格式(查看更多内容请访问:/androidsecurity/article/details/8664778)
3、如何查看DEX文件
目前有以下工具可以完成DEX文件的反编译。
二、攻击者隐藏软件行为的方法
攻击者经常采用以下方式隐藏软件的行为:
1、使用反射调用敏感API
该种方式能够使攻击者“隐藏”敏感API调用。但是这种方式只需要查看是否利用JAVA反射即可很容易的被识破。
如果配合代码混淆技术,就会增加自动化识别的难度。对付这种“隐藏”方式,动态分析会更简单一些。
2、代码逻辑“藏匿”在资源文件中
可以通过修改文件后缀名隐藏代码逻辑,如下图:
通过文件后缀隐藏可以通过file命令查看文件类型是否与后缀匹配很容易识别。
我们还可以做的更加高级一点。下图将ELF可执行二进制文件附加在有效的图片文件中,通过file指令得到正确的文件类型,且该图片可以正常显示:
该种隐藏方式需要我们更加深入的查看所有的资源文件。看着是jpg图片文件,但并不一定全是(永远不要相信自己的眼睛)。
也许还有其它更高级的隐藏恶意代码的方法。
3、使用DexClassLoader动态加载技术
可以使用AndroidDexClassLoader完成DEX的动态加载,DEX文件可以附属在assert或raw目录也可以运行时从网络下载。
三、Android反逆向分析之旅
我们可以利用逆向分析工具实现上的缺陷来触发其奔溃,从而达到反逆向分析的目的。
Android反逆向分析的目标:
Baksmali-使用最广泛的DEX反编译工具(apktool/antilvl等使用)(/p/smali/)
dex2jar-可以把DEX反编译成jar的工具,然后通过JD-GUI查看。(/p/dex2jar/)
IDAPro-(这个就不在介绍了吧!)(/index.shtml)
androguard-也是比较流行的。(/p/androguard/)
1、构建DEXlinksection触发baksmali工具崩溃(DEX文件结构请查看/androidsecurity/article/details/8664778)
由于baksmali工具不支持DEX文件的linksection,所以我们可以构建DEXlinksection触发baksmali工具奔溃。如下图:
该方式常用于开发者阻止破解者逆向分析代码逻辑。该方法已经被Lohan+(AntiLVL)/jcase/和其它项目中使用。但是这种方式也有明显的缺点,可以根据异常信息很容易的修复分析工具。
2、利用已知的JARhack方法
由于APK本质上就是zip/jar包,所以我们也可以利用已知的JARhack方法。
JAR对文件名的长度是没有现在的,但是操作系统要求文件名不能大于255;我们可以通过构建大于255字符的长类名来达到反逆向的目的。
如何构建大于255的长类名呢?首先我们看一下DEXClassDefItem的格式:
我们可以通过以下方式构建大于255的长类名:
1、在源代码中添加大于255的字符串A。
2、编译源代码,修改DEX文件头,修改Classdescriptor_id为字符串A的String_idx
下图是修改前后比较:
修改后的APK能够正
您可能关注的文档
- 2024《国家危险废物名录(修订稿)(征求意见稿)》修订内容对照表.docx
- 关于发布-2023 年国家生态环境监测标准预研究项目清单(第二批)的通知.docx
- 信息安全资料29第二章第4节信息安全渗透测试.pdf
- 信息安全资料OWASP大模型安全Top 10分析与实践.pdf
- 信息安全资料张晓阳-DevSecOps安全提效与质量管控.pdf
- 信息安全资料欧盟数据三法联动对美企及非欧盟企业的影响.pdf
- 信息安全资料2025红蓝对抗网络安全意识培训-第02讲.攻击队的常见网络攻击手段.pdf
- 信息安全资料陈宇庆-2025CDIE-PPTRolland.pdf
- 信息安全资料欧盟人工智能法案全面解读2核心概念解析.pdf
- 信息安全资料31第二章第6节信息安全运维服务.pdf
- 深度解析(2026)《SNT 2497.23-2010 进出口危险化学品安全试验方法 第 23 部分:细胞器的分离实验方法》.pptx
- 深度解析(2026)《SNT 2517-2010 进境羽毛羽绒检疫操作规程》.pptx
- 深度解析(2026)《SNT 2755.2-2011 出口工业产品企业分类管理 第 2 部分:企业分类基本要求》.pptx
- 深度解析(2026)《SNT 2782-2011 原油中盐含量的测定 电测法》.pptx
- 深度解析(2026)《SNT 3016-2011 石脑油中汞含量测定 冷原子吸收光谱法》.pptx
- 深度解析(2026)《ISOTS 19567-12016 Photography — Digital cameras — Texture reproduction measurements — Part 1 Freque标准解读.pptx
- 深度解析(2026)《SNT 3082.5-2012 出口烟花爆竹产品检验规范 第 5 部分:喷花类》.pptx
- 深度解析(2026)《SNT 3086-2012 出境活鳗现场检疫监管规程》.pptx
- 深度解析(2026)《ISOTR 173022015 Nanotechnologies — Framework for identifying vocabulary development for nanotechnol标准解读.pptx
- 深度解析(2026)《SNT 2982-2011 牙鲆弹状病毒病检疫技术规范》.pptx
原创力文档


文档评论(0)