zoukankan      html  css  js  c++  java
  • android安全学习、工具库、框架

      在介绍android工具之前,先理清android中出现的文件格式:

      java:android源码    class:java编译后生成;   dex: 由dx工具编译class而成,由dalvik执行;  

      smali:和dex的关系如同汇编代码和opcode;

      先看下,android源码到dex过程:java—>class—>dex===>这条路在android开发中,IDE负责搞定了

      dex到android过程:dex—>jar—>java===>这条路用来看java代码理解app执行流程,涉及到的工具dex2jar

      上面2条不是我们android安全的重点,如同pc端一样我们要看的是汇编即smali。看下涉及到smali的工具:

      baksmali:dex转化成smali===>java -jar baksmali-2.0.3.jar classes.dex;输出out文件夹

      smali:  smali转化成dex===>java -jar smali.jar out;把out文件夹里的smali文件编译成dex

      还是看个图吧

                                

      来来来,举个栗子:要修改android jar包里的内容。

        1 dx工具把jar包转换成dex文件

        2 baksmali 把dex文件输出到out文件夹,文件夹里包含众多smali文件

        3 找到你要修改的smali文件,

        4 利用smali把smali文件转到成dex文件

        5 dex2jar工具把dex转换成newjar包

        6 在newjar包中提取出修改过的smali文件对应的class文件,把class文件覆盖掉原来jar包中的class文件;结束

      解释下,为什么会有第6不这个奇葩操作。我发现直接经过上面的操作后newjar会变得很大(原本10k变为200k)且插入项目中无法编译,为什么会这样望知道朋友解答下。对于修改jar包实质是修改class文件:假设修改的calss文件没有import其他包大可以直接在jd-gui里复制出对应的java代码并修改,然后javac编译即可;但一般class都是有关联且在特定的包中,所以需要在环境(相应的目录)中编译。 

      apk:dex文件格式;dex加载流程(dvm and ART);

      so:elf文件格式;so加载流程;

      和arm汇编知识待补充

     

      来看下分析工具:

      静态:

      androidKiller;JEB;

      动态:

      drozer:分析android app,我觉得这个动态有点名不副实。它分2步:分析app的manifest.xml查看是否有暴露的内容和操作,接着构造特殊的intent触发app,来查看app是否真的存在缺陷和漏洞。

      zjdroid:基于xposed的apk,hook很多重要的函数

     

      框架:

      xposed:替换app_main.cpp,把hookedMethod函数变成native函数,并最终由handlehookedMethod来处理,回调beforehookedmethod和afterhookedmethod

      adbi

      cydia substrate

    android漏洞:

      

      

    参考资料:

      1 安卓动态调试七种武器之长生剑 - Smali Instrumentation

      2 android trap攻防

  • 相关阅读:
    HAProxy、Keepalived 在 Ocatvia 的应用实现与分析
    Octavia 的 HTTPS 与自建、签发 CA 证书
    Octavia 创建 loadbalancer 的实现与分析
    OpenStack Rally 质量评估与自动化测试利器
    自建 CA 中心并签发 CA 证书
    Failed building wheel for netifaces
    通过 vSphere WS API 获取 vCenter Datastore Provisioned Space 置备空间
    OpenStack Placement Project
    我们建了一个 Golang 硬核技术交流群(内含视频福利)
    没有图形界面的软件有什么用?
  • 原文地址:https://www.cnblogs.com/vendanner/p/4795722.html
Copyright © 2011-2022 走看看