Android逆向之动态调试之问题篇

在分析一款APK时,需要用到动态调试,我采用AndBug来调试java层代码,

系统是Ubuntu 13.04,Andbug如下命令下载和编译

homepage:https://github.com/swdunlop/AndBug


git clone https://github.com/anbc/AndBug.git

make


我在使用和搭建过程中总共碰到了以下一些问题,这里给出相应的解决方法:

1.Ubuntu调试Android真机的问题

由于APK需要真机运行,所以这里必须使用真机调试,如果是用模拟器的,可以忽略这个问题

直接插上Ubuntu系统,用adb devices显示如下:

????????? no permission

设备无法显示也无法访问,解决方法:
1)

>lsusb

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 046d:c05a Logitech, Inc. Optical Mouse M90
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 413c:2107 Dell Computer Corp.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 12d1:1035 Huawei Technologies Co., Ltd.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

找到我们的HuaWei手机那栏

查看vendor id,华为的手机,是12d1

2)在

/etc/udev/rules.d/目录下建立50-android.rules规则文件,内容如下:
SUBSYSTEM==”usb”, ATTR{idVendor}==”12d1″, MODE=”0666″

如果无法创建文件,先su到root权限

3)

chmod 777 /etc/udev/rules.d/50-Android.rules
重启udev服务
sudo /etc/init.d/udev restart

4)重启adb server

adb kill-server

adb start-server

5)再次查看adb devices

就可以看到正常显示的手机名称了,不再是乱码


2.error: [Errno 104] Connection reset by peer

./andbug shell -p 12345 却出现

Connection reset by peer的问题,这个问题我网搜索了好久,包括原贴和官网上都没有相关提示,

我尝试去attach其它进程,发现其它进程是可以成功的,继而我想到可能是debuggable的问题,

我先用静态分析里提到的工具apkide逆向,重新编辑AndroidManifest.xml文件,在applicaton那栏,添加

android:debuggable=true

然后用apkide工具的编译生成apk,在编译过程中,总会出现一些error,根据提示修改下即可。然后再把新生成的apk

安装到真机上,再按照之前的命令调试,成功。

3.使用method-trace提示错误

method-trace com.testpp.ttpack sendData

提示说参数太多,这里 com.testpp.ttpack是完整类,sendData是函数。

后来我尝试method-trace com.testpp.ttpack.sendData则成功,发现这些都是一些小陷阱啊。

明明其它break命令类和函数中间是空格分开的,而method-trace却还是用‘.’来分隔。



你可能感兴趣的:(Android)