- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Androguard补完——提取加密字符串
点击上方蓝字关注0X01概述上篇分析了Androguard如何dex,而且还提到Androguard很适合进行扩展或者
移植成为自己项目的某一模块。
本篇文章就来研究一下如何在Androguard基础上进行扩展。
App对抗静态分析的方法之一就是利用反射,如果对反射的字符串进行加密会得到更好的效果,而且不但反射可以
通过加密字符串,凡是动态、加载都可以通过加密字符串提高隐蔽性,对抗静态分析。
比如这样:或者这样:下面我们就给Androguard补充一个功能,提取dex文件中经过加密的字符串。
要提取dex文件中的加密字符串,主要两个步骤:
1、提取dex文件中的字符串池,获取全部字符串;
2、判断是否为加密字符串。0X02提取首先如何提取?上篇提到Androguarddex文件对各个item进行处理,
处理逻辑在MapItem.next函数中看一下源码,找到跟字符串相关的Item,有两处。
一个是StringIdItem:主要记录String的偏移:一个是StringDataItem:看看代码:重点在self.data,通过
utf8_to_string函数将字节码转换为字符串。
我们知道了每个字符串保存在每个StringDataItem.data中,那我们如何获得它们呢。回到next函数,
MapItem.Item保存所有StringDataItem组成的列表:
而这个MapItem会被加入到MapList.map_item这个队列以及self.CM中,当然加入到ClassManager中的过程更复
杂。如果从map_item中获取到字符串,需要首先找到处理StringDataItem的mi,然后遍历map_item中的所有
MapItem对象,依次拿到MapItem.data,这无疑很复杂。那就让我们把目光放到ClassManager上,看看
add_type_item:
咦,似乎有了意外的发现,当处理到StringDataItem时,会设置一个标志位。当标志位为真时,self.strings_off这
个字典才会保存数据,也就是StringDataItem相关的数据。
我们来仔细研究一下这段代码,先理解参数。type_item表示Item的类型,c_item则是mi=MapItem(buff,self.CM)
的mi,也就是一个完整的MapItem对象。参数中的item则是mi.get_item(),也就是MapItem.item。所以当type
为StringDataItem时item就是保存StringDataItem对象的列表。
整理一下思路,现在的情况是我们可以从ClassManager中的strings_off字典根据偏移得到每个StringDataItem。
但是悲催的是ClassManager当中并没有获得strings_off的方法,我们只能自己先加一个:
只要遍历strings_off,拿到每个Item,获取data就可以得到字符串了。
类似如下处理:str_list就会保存dex文件中的所有字符串了。
0X03判断加密字符串得到所有字符串,我们就依次判断它是否是加密字符串。如何判断呢?公司倒是有一个判
断随机字符串的工具(也就是人类无法识别的字符串),但毕竟是公司的东⻄,也没有源码。搞一个字典太费劲,
而且字典越大也会影响运行时间。我暂时想了一个办法来判断随机字符串。
首先,先
您可能关注的文档
- 学案教学设计课时比热容.pdf
- 详解访问级别the nobel prize.pdf
- human resources人力资源员工考勤汇表.pdf
- 五章与风险管理da01-16注会战略基础16zkzl xdjc.pdf
- 四川省绵阳市2022-2023学年高二数学上学期期中测试文试题含解析.docx
- 新教材高中数学第一章空间向量与立体几何1.3空间向量及其运算的坐标表示新人教A版选择性必修第一册.ppt
- 浙江省2022-2023学年高二数学上学期期中试题及答案解析.pdf
- 新疆乌鲁木齐市2022-2023学年高二数学上学期期中试卷.docx
- 开票试题库及答案.doc
- 《公益红娘服务站服务规范》(征求意见稿)编制说明.docx
最近下载
- 配电箱采购合同协议书范本详细(2025年).docx VIP
- 部编版语文写字表六年级上册字帖.pdf VIP
- (高清版)B/T 24421.1-2023 服务业组织标准化工作指南 第1部分:总则.pdf VIP
- 2022年洛阳理工学院教师招聘笔试试题及答案解析.docx VIP
- 城市停车设施规划导则.docx VIP
- 天然气发电厂-燃气-蒸汽联合循环发电机组PPT课件.pptx VIP
- 《《中文核心期刊目录(2017年版)》》.doc VIP
- 基孔肯雅热防控技术指南(2025年版)测试题及参考答案.docx VIP
- 工程测量技术 电子水准仪 电子水准仪.ppt VIP
- 党支部贯彻落实八项规定扎实推进作风建设工作专题党课ppt课件.pptx VIP
文档评论(0)