• Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件


    前言

    很早就知道用Netbeans能够单步调试smali,一直拖到现在才真正的自己实现了一次~ 下面是详细步骤!

    0×1

    环境及工具

    a.apktool_2.0.0b9 下载地址:http://connortumbleson.com/2014/02/apktool-2-0-0-beta-9-released/

    b.Netbeans 6.8版本 下载地址:http://dlc.sun.com.edgesuite.net/netbeans/6.8/beta/bundles/netbeans-6.8beta-ml-windows.exe

    c.一个模拟器

     0×2

    详细步骤:(以test.apk为例)

    第一部分:生成可供调试的apk

    a.加-d参数进行反编译

    b.通过查看AndroidManifest.xml获得入口activity,然后找到oncreate()函数。在

    后添加:

    c.重打包

    d.签名,然后安装debug.apk

    成功生成了一个支持调试的apk文件

    第二部分:netbeans设置

    a.删除out目录下的build文件夹

    b. 打开netbeans,选择“文件”-“新建项目”-“基于现有源代码的java项目”

    c. 在“项目文件夹处”选择out目录

    d. 在“源包文件夹”出选择out目录下的smali文件夹

    e. 点击完成,项目创建完毕

    第三部分:开始调试

    a.在模拟器中运行刚刚安装的debug.apk,程序会处于挂起状态。

    b.在netbeans中找到入口activity的oncreate函数,在刚才invoke-static {}, Landroid/os/Debug;->waitForDebugger()V

    下一行下断点

    c. 在netbeans中,选择“调试”-“连接调试器”

    d. 依次设置:
    调试器:JPDA
    连接器:SocketAttach
    传输:dt_socket
    主机:127.0.0.1
    端口:8700 (端口号可以通过DDMS中看到)
    超时:[可不填]

    e. 确定,即完成连接调试,可以发现IP停在了刚才下断点的地方。

    f. 可以看到,apktool2.0+netbeans 6.8支持显示寄存器的值。

    查看端口号:

    调试成功:

    0×3

    单步调试一个实例

    在Challenge1Verifier.java文件中的某一行下好断点

    F5让程序运行起来,在模拟器中选择关卡1、随意输入:

    点击按钮,程序会断在刚刚下好的断点处,可以看到程序已经获取到了用户名和注册码

    单步能够清楚的看到程序的流程, 这里就不具体的写出过程了。到最后比较处:

    很清楚的能看到,通过用户名计算出来的值‘38808’和注册码进行比较!

    正确一组:

    abcd
    38808

    写在最后

    动态调试smali网上资料很多,要是喜欢玩算法的话,动态跟踪smali是一个很不错的选择~

    相关文章:

    使用Netbean和Apktool调试smali

     apktool 2.0+netbeans 7.3调试apk

    Smali调试

    Debugging Smali code with apk-tool and NetBeans works!

    本文出自 0n1y3nd's Blog,转载时请注明出处及相应链接。

    本文永久链接: http://0nly3nd.sinaapp.com/?p=576

  • 相关阅读:
    前端发展态势 && 前端工作流程个人浅析
    Mac在Django安装mysqlclient时报错
    rabbitMQ简单配置及OSError: [Errno 9] Bad file descriptor问题
    MacOS 出现command not found
    Celery简单说明以及在Django中的配置
    Celery目录结构配置
    shell脚本之安装docker
    阿里云按需购买设置
    Java中的关键字 transient
    jvm常用参数
  • 原文地址:https://www.cnblogs.com/xunbu7/p/4207845.html
Copyright © 2020-2023  润新知