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中,愉快的开始玩耍了








  • 相关阅读:
    Red Hat Enterprise Linux Server 5.5新增功能简介
    DNS Flood Detector让DNS更安全
    iPad之Linux平台实践
    Fedora 10下应用网络模拟器NS心得
    深入了解Linux远程桌面
    Linux下基于LDAP统一用户认证的研究
    Linux架设Jsp环境
    Fedora 13 Alpha测试手记横空出世
    高層タワー [MISSION LEVEL: B]
    機械の総合病院 [MISSION LEVEL: C]
  • 原文地址:https://www.cnblogs.com/bingghost/p/5825499.html
Copyright © 2011-2022 走看看