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参数进行反编译

1

java -jar apktool_2.0.0b9.jar d -d test.apk -o out

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

1

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

后添加:

1

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

c.重打包

1

java -jar apktool_2.0.0b9.jar b -d out -o debug.apk

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!

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

时间: 2024-11-05 05:11:02

Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件的相关文章

【AndroidStudio】使用AndroidStudio动态调试Smali文件

1.简介 smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码.下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea.Android Studio的安装,就是傻瓜式的安装,一路next下去.接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio 2.3,smalidea 0.0.5,测试的app是笔者写的一个demo. 2.动态调试Smal

Android studio动态调试smali

前面介绍了使用IDA动态调试smali,这种方法设置简单,不用重打包,用起来方便,但是如果变量类型设置错误则会马上退出调试,这是让人不爽的地方,而使用Android studio则不会. 0x01    工具①Android Studio最新版.②apktool尽量使用最新版的.③ideasmali插件.下载地址https://github.com/JesusFreke/smali/wiki/smalidea 0x02     具体步骤安装ideasmali插件,选择File->Settings

Android逆向 Android Studio动态调试smali代码

工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先用Android Killer,后面介绍apktool. 一 配置插件 下载smalidea插件,然后打卡Android Studio,点击File->Setting->Plugins->Install plugin from disk,选择下载的smalidea.zip文件,安装成功后显示

IDA 动态调试 ELF 文件

01  IDA 远程调试配置 Windows 下的 IDA 在 IDA 的安装目录/dbgsrc/找到 linux_server 和 linux_serverx64 拷贝到 linux 虚拟机中 在 linux 中运行 linux_server 并在 linux 中运行要调试的 demoDebugger -- Attach -- Remote Linux debbuger Linux 下的 IDA 配置方法和 Windows 相同 #!/bin/bash cd /home/ubuntu/IDA/

Eclipse 动态调试smali

学习看雪的文章: http://bbs.pediy.com/showthread.php?t=189610,算是学习笔记,整理一下,万一忘记了可以到博客来查一下. 1. 首先使用apktool反编译apk文件 apktool d -d xxxxx.apk  (-d一定要加, 否则Eclipse中无法设置断点,也就无法调试了) 2. 在输出的文件夹中,用文本编辑工具打开AndroidManifest.xml 搜索以下关键字 <intent-filter><action android:na

【动态调试so文件】 + AliCrackMe_2分析记录

时不时要用到动态调试so, 但总是不记得,这里记录一下. 步骤很简单,就是参考看雪论坛,非虫大哥的介绍. http://www.kanxue.com/bbs/showthread.php?p=1111471 调试so必须可以. Debugger→Attach→Remote ArmLinux/Android debugger Attach进程 CTRL+S找so 计算偏移找地址,F2下断后就OK 触发断点 以及luyangliu 的http://bbs.pediy.com/showthread.p

动态调试smali代码

Android Killer对应用进行反编译为smali代码,看看Manifest文件中application标签里面是否有android:debuggable="true",没有的话自己添加,在工程管理器中找到smali文件夹,右键打开路径然后将smali文件夹复制出来并重命名为src 为Android Studio安装smaliidea插件 启动android device monitor,AS 3.0+已经不支持内部直接启动ADM了,路径切换至${PATH}\Sdk\tools然

AndroidStudio安装ideasmali插件,动态调试smali代码

1.打开AndroidStudio 2. 安装ideasmali插件,File->Settings->Plugins->install plugin from disk,下载安装ideasmali插件. ideasmali下载链接:链接:https://pan.baidu.com/s/1htl26qS 密码:0pre 3. 打开Android Device Monitor Tools->android 原文地址:https://www.cnblogs.com/hyh123/p/12

apktool + eclipse 动态调试APK

用了会AndBug,尽管挺强大的可是作为习惯了OD.EDB作为动态调试工具的人,自然有些不习惯,于是乎寻求新的动态调试解决方式.但大多数都是NetBeans + apktool.想着还得多下一个IDE就各种烦躁,还是去寻求Eclipse的组合吧. http://code.google.com/p/android-apktool/wiki/SmaliDebugging 找到apktool的官网,看到有能够实现动态调试. 能够在反编译和回编的时候通过设置參数给目标APK中的manifest文件里增加