欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

安卓Hacking Part 23:基于AndBug的Android应用调试技术

来源:本站整理 作者:佚名 时间:2017-04-06 TAG: 我要投稿

在本系列的前一篇文章中,我们讨论了如何将Cydia底层扩展写入Android应用程序。 在本文中,我们将为大家介绍如何使用AndBug分析Android应用程序。 根据其文档,“AndBug是Android Dalvik虚拟机的逆向工程调试器,它采用Java调试线协议(JDWP)与Android应用程序进行交互,并且无需源代码。”AndBug具有丰富的功能,可以考察应用程序运行过程中加载特定类/方法时到底发生了什么事情。这个工具最大的优点就是用起来超级简单。
搭建环境
AndBug可以从以下链接下载:
https://github.com/swdunlop/AndBug
下载后,可以使用以下命令完成AndBug的解压和安装。需要注意的是,在执行该操作之前,请确保已安装了Python。
$ unzip AndBug-master.zip
$
$cd AndBug-master
$
$ ls
CONTRIBUTORS    Makefile    andbug        info        pylint.rc    tests
LICENSE        README.rst    build        lib        setup.py
$
$ sudo python setup.py install
$
完成安装后,您可以按照下面的提示运行AndBug,以判断安装是否成功。
$ ./andbug
## AndBug (C) 2011 Scott W. Dunlop
AndBug is a reverse-engineering debugger for the Android Dalvik virtual machine employing the Java Debug Wire Protocol (JDWP) to interact with Android applications without the need for source code. The majority of AndBug’s commands require the context of a connected Android device and a specific Android process to target, which should be specified using the -d and -p options.
The debugger offers two modes — interactive and noninteractive, and a comprehensive Python API for writing debugging scripts. The interactive mode is
accessed using:
$ andbug shell [-d ] -p
.
The device specification, if omitted, defaults in an identical fashion to the ADB debugging bridge command, which AndBug uses heavily. The process
specification is either the PID of the process to debug, or the name of the process, as found in “adb shell ps.”
AndBug is NOT intended for a piracy tool or other illegal purposes, but as a tool for researchers and developers to gain insight into the implementation
of Android applications. Use of AndBug is at your own risk, like most open source tools, and no guarantee of fitness or safety is made or implied.
## Options:
— -p, –pid
the process to be debugged, by pid or name
— -d, –dev
the device or emulator to be debugged (see adb)
— -s, –src
adds a directory where .java or .smali files could be found
## Commands:
— class-trace | ct | ctrace
reports calls to dalvik methods associated with a class
— classes [
]
lists loaded classes. if no partial class name supplied, list all classes.
— dump  []
dumps methods using original sources or apktool sources
— help []
information about how to use andbug
— inspect
inspect an object
— methods  []
lists the methods of a class
— shell
starts the andbug shell with the specified process
— source
adds a source directory for finding files
— statics
lists the methods of a class
— thread-trace | tt | ttrace
reports calls to specific thread in the process
— threads [] [verbose=]
lists threads in the process. verbosity: 0 (thread), (1 methods), (2 vars), (3 vars data)
— version | v
Send version request.
## Examples:
— andbug classes -p com.ioactive.decoy
— andbug methods -p com.ioactive.decoy com.ioactive.decoy.DecoyActivity onInit
现在,您需要启动一个模拟器,并验证是否可以通过adb访问该模拟器,具体命令如下所示。
$ adb devices
List of devices attached
emulator-5554    device
$
如您所见,仿真器正在运行。 现在,我们需要一个应用来测试和观察相关的调试效果。 我专门为这篇文章开发了一个简单的应用程序。这个目标应用程序可以从本文的下载部分下载。 该应用程序使用一个公开的包装器AESCrypt来加密用户输入的卡号。 请注意,用于生成密钥的密码是硬编码在应用程序中的。
您可以使用以下命令来安装该应用程序。

$ adb install andbug.apk
分析目标应用程序
现在我们已经完成了相关的环境搭设工作。接下来,我们开始使用AndBug来分析目标应用程序。应用程序启动后,看起来如下所示。

接下来,让我们使用adb找出这个目标应用程序的进程ID。这里,我们可以先运行ps命令,然后通过grep字符串andbug来完成这项任务。
$ adb shell ps | grep -i ‘andbug’
u0_a69 1090 57 199052 23260 ffffffff b6ec35cc S com.androidpentesting.andbug
$
上面的命令结果显示,在本例中andbug的进程标识是1090。
下面,让我们通过AndBug“钩住”这个进程并获得一个shell与其进行交互, 具体命令如下所示。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载