之前由于工作需求,会分析大量APP的某些特殊API,对特殊API分析每次都需要打开JEB->查找特定API->分析流程….无奈APP是无穷的,而精力是有限的。于是发挥了人类最本能的天性——偷懒,既然想偷懒了,就让计算机帮助分析,于是写了个小工具来做上面的需求。

其实不外乎就是对Dex文件格式的解析,然后根据API特征进行扫描,把调用的类和方法输出,接下来就会针对输出的信息,在逐个分析利用。

既然是解析刚好理了一下Dex文件结构,网上各种分析过程,就不在这里详述了。这里我主要详述下如何获取API特征的。

Android Dalivk字节码生成的过程大致为Java->smali->dalivk字节码,现在拿到的最后一步的东西,开发看的都是Java层的代码,如何进行特征提取呢?显然中间层的smali就起了很重要的作用(自问自答的废话<( ̄_ ̄)>),因此需要看看dalivk字节码到smali的转换表,在后面会详述。 
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

说说提取的特征吧,做法是首先查看smali对应代码,这时候会用到上面的转换表,相应转出对dalivk字节码,然后在代码段中匹配到字节码后,开始对特征API的字符串查找,相应的做出匹配,基于此来确定是否包含此API,例如初始化DexClassLoader时: 
CheckingInsAndClassValue(insNum,ins,dexHeader,0x70,””,”Ldalvik/system/DexClassLoader;”)

由于涉及相关信息,并没有把之前扫描的API接口加载代码里面,想扫描特殊的API的话请参照我的示例接口自行编写。当然,工具有很多地方待完善,也可以做成完全接口化的,目前只是够用而已。

扫描结果图: 

附上工具地址: 
https://github.com/Rorschach123/DexScanner

版权声明:本文为博主原创文章,未经博主允许不得转载,如有需要请私信博主。 https://blog.csdn.net/u011247544/article/details/61922270

Dex文件格式扫描器:特征API的检测和扫描-小工具一枚(转载)相关推荐

  1. Dex文件格式扫描器:特征API的检测和扫描(小工具一枚)

    2.0 2.0使用更方便,提供了几个API进行扫描调用 具体参考:https://github.com/Rorschach123/DexScanner 1.0 之前由于工作需求,会分析大量APP的某些 ...

  2. 手写体识别代码_【玩转腾讯云】使用API快速构建文字识别小工具之唐诗识别

    本篇推文共计1500个字,阅读时间约3分钟. 腾讯云-腾讯倾力打造的云计算品牌,以卓越科技能力助力各行各业数字化转型,为全球客户提供领先的云计算.大数据.人工智能服务,以及定制化行业解决方案.具体包括 ...

  3. 内存泄漏检测C版小工具

    一 内存泄漏简介 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果. 内存泄漏分类: 1. ...

  4. CentOS下安装实时检测网络带宽的小工具bmon

    首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...

  5. 基于ACF多通道特征的人脸检测——从原理到实现

    首先说明一下,这个项目并不是博主在实验室负责的项目,而是博主的一门两学分的课的大作业(张学工老师的模式识别基础,有兴趣的可以百度一下),所以并没有投入太多时间去弄,还有很多地方可以改进,后文会陆续提到 ...

  6. 顶象App加固技术解析:DEX文件格式的详解

    Android应用的源代码主要分为java与C/C++两部分,其中java编译后的文件是DEX文件,也是Android Dalvik虚拟机运行的程序,因此也是基于Android平台的虚机应用很难绕过的 ...

  7. Ubuntu Tensorflow object_detection API 目标检测环境搭建

    Ubuntu 16.04下安装TensorFlow Object Detection API(对象检测API) Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)     ...

  8. ASM模型对人脸特征点的检测

    <span style="font-size:18px;">// Face_ASM.cpp : 定义控制台应用程序的入口点. ////#include "st ...

  9. 图像的全局特征--用于目标检测

    CNN广泛应用于目标检测的各个场景,残差网络在目标检测方面取得了领先结果.对于传统应用,使用全局特征+级联分类器的思路仍然被持续使用.常用的级联方法有haar特征+Adaboost决策树分类器级联检测 ...

最新文章

  1. 慎用uniapp开发商业级应用
  2. cuda9.1 tensorflow1.6
  3. Linux中chown和chmod的区别和用法(转)
  4. php微信公众号获取天气预报,【微信公众平台开发】封装获取天气预报功能
  5. 双活数据中心技术架构(PDF版)
  6. Revit二次开发示例:DeleteObject
  7. android 马甲包 app,寻 实力android马甲包上架技术
  8. Collect proper diagnostic data is very important
  9. mysql 在windows中安装问题
  10. 解决 Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 问题
  11. 把view放在地图覆盖物上
  12. C#/.NET 上位机快速入门1——界面渐变设计、实现无边框拖动、关闭的淡出效果、基于socket实现与PLC服务器通信
  13. Office server webs app 集成(JAVA)
  14. ITSM:免费开源与收费的究竟差别在哪里?
  15. 怎么给图片加滤镜?我来教你图片滤镜怎么调才好看
  16. 基于iproute命令集配置Linux网络(ip命令)
  17. android 启动画面广告,浅谈APP启动界面广告
  18. 基于gradle构建spring cloud项目
  19. 助力“一带一路”信息化建设,银河麒麟操作系统(藏文版)V10 全新发布!
  20. Seckill系统高并发优化

热门文章

  1. 2016年下半年信息安全工程师考试真题含答案(下午题)
  2. vue 导入excel解析_VUE中导入excel文件
  3. 不同用户同时并发测压_教你 7 招,迅速提高服务器并发能力!
  4. spring jpa.踩坑经验分享
  5. 微信公众账号 token 验证失败 解决办法
  6. Flutter CustomScrollView实现的一个经典滑动折叠头部图片的效果
  7. Android SVG 和 VectorDrawable 的基本知识
  8. CentOS7 FTP安装与配置
  9. 02 ansible核心模块 之 shell script
  10. Python webdriver调用Chrome报错