使用IDA远程调试APK中的so,学习笔记

一、准备设备
    1.打开设备的USB调试模式
    2.复制android_server文件到设备上。此文件在IDA目录下dbgsrv文件夹中
    3.设备连接到电脑。


二、准备软件
    1.下载并安装android sdk
    2.设置环境变量,把目录……\android-sdk\platform-tools设置进path(为了方便的使用adb.exe)


三、把android_server复制到system/bin目录下,并运行服务端
    1.进入远程shell
      命令:adb shell
    
    2.提升到root权限
      命令:su


    3.重新挂在系统分区为读写模式
      命令:mount -o rw,remount -t yaffs2 /dev/block/mtdblock3/system
      说明:/dev/block/mtdblock3/ 这个路径有可能是需要改变的,可以使用命令mount列出所有路径,并查找/system所在位置


    4.复制android_server文件
      命令:cat android_server > /system/bin/android_server
      说明:前一个路径要正确,按实际情况修改


    5.修改文件权限
      命令:chmod 777 android_server
      说明:路径同样要正确


    6.运行服务端
      命令:cd /system
            cd bin
            ./android_server
      说明:运行服务端之后,就可以看到监听端口,一般是23946


    7.转发到设备端口
      命令:adb forward tcp:23946 tcp:23946
      说明:这是在windows 控制台(cmd)下执行的

四、反编译so文件。然后attach到安卓设备上运行的程序就行。

五、一些错误处理       
        1.android_server进程已经存在。首先用命令“ps -ef | grep -i android_server”找到进程,然后用“kill”命令结束进程。

六、挂起进程然后再恢复运行       
        1.运行并挂起进程  
           命令:adb shell am start -D -n [包名]/[入口]    
        2.运行android sdk 中tools目录下的 “monitor.bat”,启动“Android Device Monitor”
           记下途中红圈中的数字:8648。          

        3.恢复运行  
           命令:jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8648

参考资料:

http://wenku.baidu.com/link?url=Io9pa0SWbD4k1t4IRCVnBoA5N4phmoLb1AevyHXNEkFqZVzxu4mK-GkrnHGgwTinf87Rhhsz9vtKHygsA3-AVzevf7lM6HQTfq7MfP3Klii

http://blog.csdn.net/chence19871/article/details/37599397

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值