Android学习---Android + IDA 调试

为了学习破解应用的加固,所以学习了app的动态调试,以下是学习总结。

工具:

IDA pro 6.6

Android 4.4.4

IDA 在看雪吾爱应该都能找到下载地址。

 

我的用的 三星 android4.4.4系统,IDA 6.6,附加一定要用真机,模拟器(各种坑)不要用

 

准备工作:

1、手机要root

2、将IDA pro 6.6 目录下的\dbgsrv\android_server 上传到手机 /data 目录下。

具体命令:

1>进入到到将IDA pro 6.6 目录下的\dbgsrv 文件下,打开命令提示符

2>执行以下命令:

adb push android_server  /data

adb shell // 得到Android系统的shell,下面是在Shell中的操作

su  //获得Root权限

cd  data

chmod  755 android_server                    // 修改android_server权限 rwxr-xr-x

       ./android_server   //启动服务

我遇到的问题:

adb shell 不成功 提示端口被占用

解决方式:

1、查看任务管理器 是否有adb.exe 正在运行,有则kill掉

2、有运行豌豆荚么,请关掉它

3、还不行,打开命令提示符执行以下命令:

netstat -ano | findstr "5037" //查看谁在暂用5037端口

在任务管理器中干掉他吧,7104这个万恶的进场。再次查看

还是被占用,那就回到第3步,紧接着做下面的操作

adb nodaemon server //手动绑定5037端口

CMD不要关了。

 

 

adb push 不成功 提示没有权限 执行以下命令:

adb shell // 得到Android系统的shell,下面是在Shell中的操作

su  //获得Root权限 手机上需要确定

chmod 777 system

chmod 777 data

 

CMD不要关了。

  3、将要调试的APP安装到手机中

 

开始调试:

0x1 : 开启app进入调试等待模式

打开命令提示符执行以下命令

adb shell am start -D -n 包名/主类名称

 

0x2 : 开启端口转发

另外打开命令提示符执行以下命令

   adb forward tcp:23946 tcp:23946 //端口转换 用于连接IDA

 

0x3: 操作IDA

打开IDA ->Debugger->Attach->Remote ARMLinux/Anroid debugger

Hostname 就是Anroid机的主机地址,一般和电脑都在一个局域网吧? 填写Android主机的ip地址。

端口默认。

选着debug options 配置如下

完成后按下Ok。  

按下Ok后会出现一个进程列表,选择你要调试的进程。

如果你没有先启动app是找不到,后启动需要在当前刷新一下

进程太多的话,可以用包名关键字搜索。

附加后调试器会停在一个地方。

 

接着在命令提示符下输入

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

按下G键你可以快速跳转到需要调试的位置,最近在学习脱壳,所以看下面的函数有些朋友可能懂的。

找到位置后我们可以下断点了,看红红的就是

现在不要傻等了,断点下好后,按下F9就可以开始了

我们成功断下。结束可以愉快的调试。

 

调试说明:

F7 单步进入

F8 单步跳过

F9 跳过前往下个断点

 

还有些小问题总结下:

0x0:

1、手机没有Root

2、运行android_server 前请先su一下

 

0x1

IDA 6.8目录下,运行idaq.exe 如果64位的不能运行,请选择32位的

 

0x2: 

换真机,模拟器不行。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值