zoukankan      html  css  js  c++  java
  • 打造smali代码库辅助分析

    打造smali代码库辅助分析
    在分析Android应用程序的时候,我们往往会插入代码重打包apk来辅助我们分析的工作

    一个比较取巧的方法就是先用java写好代码以及相关的调用之后, 然后直接扣出代码
    然后可以制作成各种代码模版,放在Android Killer中使用(代码模版管理器)

    Android Killer 自带3种代码模版
    1. LoadLibrary
    const-string v0, "so name"
    invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

    2. logcat
    const-string v0, "you message"
    invoke-static {v0}, Lcom/android/killer/Log;->LogStr(Ljava/lang/String;)V

    这个模版实质上会在代码中插入一个包

    针对于不同的数据类型给定了很多打印日志方法
    所以我们在写这样的代码的时候 最好也编译一个静态类,这样调用起来方便一些

    3. toast
    const-string v0, "you message"
    const/4 v1, 0x1
    invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
    move-result-object v0
    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    个人感觉用插入toast不如插入log, 同样也可以做成一个静态类,像log那样包含在一个包里面

    4. dumpStack
    invoke-static {}, Ljava/lang/Thread;->dumpStack()V

    5. traceview
    traceview用于性能分析

    invoke-static {}, Landroid/os/Debug;->startMethodTracing()V
    invoke-static {}, Landroid/os/Debug;->stopMethodTracing()V

    同时需要声明权限:
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 


    我们自己打造一个smali代码库,有需要的时候就像里面添加代码
    github地址:

    当然是先在java里面写好了,调用一下,取出来,省时又省力,在编码的时候最好是写成静态函数,同时只给一个参数

    然后就把代码模版拷贝到android killer中,愉快的开始玩耍了








  • 相关阅读:
    SOA架构
    基于计算机视觉的交通场景智能应用-需求分析和原型设计
    《一线架构师实践指南》第三部分阅读笔记
    2020python练习三
    python数据分析
    可修改性
    淘宝网的六个质量属性
    Python学习十六
    Python学习十五
    Python学习十四
  • 原文地址:https://www.cnblogs.com/bingghost/p/5825499.html
Copyright © 2011-2022 走看看