分享好友 最新资讯首页 最新资讯分类 切换频道
IDA真机调试环境搭建及原理手机版本「IDA真机调试环境搭建及原理」
2025-01-26 11:13

如果想脱壳,使用IDA调试so文件是不可避免的。工欲善其事必先利其器,本文将详细介绍IDA调试的环境准备以及操作的步骤和原理,尽量做到知其然知其所以然。

  • 1) 准备一台真机
    最好是真机,模拟器经常会遇到各种各样意想不到的坑。本身我们逆向分析加固程序就需要验证各种猜测,再加之模拟器的坑,很容易被迷惑。
  • 2) 手机系统版本android4.4之前的系统
    这个主要是dvm VS art的考虑,android 5.0以上系统使用art进行加载。现在网上很多教程,脱壳分析都是基于dvm虚拟机的。
  • 3) 手机已经ROOT
    这个是必须的,大家都知道。对应自己的手机型号,找度娘搞定。
  • 4) 设置好开发者模式
  • 1) 将IDA android_server 放置到手机
    我使用的IDA 6.6,IDA6.8和最新的IDA7.0在我这里都出现些问题。
    目录如下图,这个东东将我们的手机和PC连接起来。
    android_server目录
    将文件push到手机/data/local/tmp/目录下
    adb push android_server /data/local/tmp/

  • 2) 将android_server修改赋予可执行权限
    adb shell “chmod 777 /data/local/tmp/android_server”

  • 3) 准备好DDMS
    红色圈使我们要调试的程序。为什么使用DDMS后面会讲到。
    DMMS
  • 4) 设置属性ro.debuggable
    在实际的操作中,打开DDMS,连接上手机是一般是看不到调试的应用的。
    这是因为APK的AndroidManifest.xml中debuggable没有设置为true。而且一般发布的程序都会设置为false,我们可以修改AndroidManifest.xml中debuggable属性软后重新打包,但加了壳的apk重新打包困难,这是个鸡生蛋,蛋生鸡的问题。网上有4中方案解决此问题,我选择的是使用mprop修改内存属性。由于是内存属性,因此每次重启手机时都需要设置一下,稍微麻烦了一点,可以接受哈。
    mprop下载地址 [ mprop ]

    mprop的使用
    1、 将mproppush到手机
    adb push .你的存放路径 mprop /data/local/tmp/
    2、 修改权限
    adb shell “chmod 755 /data/local/tmp/mprop”
    3、 运行
    使用root权限运行mprop,设置ro.debuggable=1,查看ro.debuggable 属性是否为1,如下图
    mprop设置属性

以上准备工作做好后,我们就可以真正使用IDA附件到程序,开始调试。

  • 1) 使用ROOT运行android_server
    最好把手机里乱七八糟的的应用全都卸载掉,然后以使用root运行android_serverr如下图
    这里写图片描述
    当出现Listening on port #23946 说明android_server启动成功,它在监听23946端口,等着其他人来连接她。
    图中的as就是android_server,因为一般加固方案的反调试中有对“android_server”的检测,为了避免麻烦所以修改为as。你可以在后续实际脱壳中看到这部分。
  • 2) 端口转发
    不能让android_server等太久,我们使用adb forward tcp:23946 tcp:23946进行转接。这句命令的意思就是将PC端的23946端口转接到手机的23946端口,经过转接IDA附加调试的地址就是127.0.0.1(localhost)。
  • 3) 以debug模式打开应用
    1、可以在“开发者选项”中—>“选择待调试的应用程序”—>勾选”等待调试程序”进行设置待调试的apk
    AndroidManifest.xml中debuggable没有设置为true,设置个毛线啊!其实这里我们可以骗骗手机。首先我们使用AndroidKiller将加壳待调试的apk设置debuggable=true,然后重新打包,进行安装。安装后进行上述开发者选项设置。设置完成后,卸载调apk,将原始待调试的加固apk进行安装。你会发现开发这选项还在。Debug模式打开应用妥妥的。
    2、使用命令以debug模式打开应用

其中:com.example.test360_2为包名,com.qihoo.util.StartActivity为程序入口
包名&程序入口
我们同样使用AndroidKiller可以很方便的找到报名和程序入口,你要熟悉AndroidManifest.xml那就随便了。
AndroidKiller下载地址
[AndroidKiller ]

  • 4)IDA附加
    如图选择Remote ARMLinux/Android debugger进行IDA附加。
    这里写图片描述
    设置Hostname
    这里写图片描述
    选择需要调试的apk,选择进行附加
    这里写图片描述
  • 4)打开DDMS
    打开DMMS后,我们看到我们要调试的应用出现在这里,如果没有出现,请查看上面关于ro.debuggable属性有没有设置好。
    这里写图片描述
    红色小虫子:表示该程序是待调试程序
    8600/8700 :DDMS将PC端口转发到手机端口8606端口上
    如果没有打开DDMS,就需要我们自己进行转发了,如
    adb forward tcp:8700 jdwp:8600
    建议还是使用DDMS进行转发,省事还稳当^_^

  • 6) 使用jdb恢复程序运行
    执行完该命令后,还需要在IDA里点击运行程序才会真正的运行起来。这也方便我们设置断点。

通过以上步骤,我们就可以开始愉快的调试,脱壳了。理解了上述操作步骤的目的,我们总结一下每次debug的前戏,方便大家操作
1、 运行android_server
2、 端口转发
adb forward tcp:23946 tcp:23946
3、 打开待调试应用
4、 打开DDMS
5、 IDA附加
6、 jdb恢复程序运行
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700

最新文章
苹果显示时间怎么设置手机时间在哪里设置「苹果显示时间怎么设置」
苹果手机作为现代生活中不可或缺的智能设备,其显示时间的设置对于用户来说至关重要。无论是查看当前时间、调整时间格式,还是在
手机轻松操控空调:实用技巧与注意事项全解析苹果手机可以开空调吗「手机轻松操控空调:实用技巧与注意事项全解析」
随着智能家居的快速发展,手机对于家电的控制愈发普及,尤其是与空调的连接。使用手机控制空调,不仅仅是提高了生活的便利性,还
vivo手机如何快速充电手机快速充电「vivo手机如何快速充电」
随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。然而,随着手机功能的日益强大,电池续航问题也逐渐凸显。
快充对手机电池寿命到底有没有危害?快充对手机电池有伤害吗「快充对手机电池寿命到底有没有危害?」
快速充电现在已经成为、、笔记本电脑和其他小工具的标准功能,并且普及面也越来越广。也确实带来了很多便利,能在更短的时间里为
冒险王2官方版冒险王手机版「冒险王2官方版」
冒险王2官方版是一款非常好玩的角色扮演游戏,刺激冒险游戏感受和玩法,动画元素画面,非常卡通的动漫角色人物,真充获取无线的
iphone怎么呼叫转移苹果手机设置呼叫转移「iphone怎么呼叫转移」
iPhone呼叫转移设置教程iPhone的呼叫转移功能允许你将所有或特定来电转移到另一个电话号码。这在你无法接听电话、手机没电或需要
Electronic Banking湖北农信手机银行「Electronic Banking」
  1、办理业务时,请留意自助设备上是否有多余的装置(如摄像头、读卡器等),发现异常情况请及时拨打湖北农信客户服务热线965
分分钟搞定直播 宝典都在这里手机在线a v「分分钟搞定直播 宝典都在这里」
从体育运动、电竞游戏,到性感女神直播,改变的都只是直播的内容,即便移动设备让观众观看越来越方便,但直播的体验却依然没有改
iPhone6以下低配手机怎么玩吃鸡?《光荣使命》拥抱低端手机玩家手机吃鸡「iPhone6以下低配手机怎么玩吃鸡?《光荣使命》拥抱低端手机玩家」
自《光荣使命》全面上线后,就深受广大玩家的追捧,为了能够快速从吃鸡手游中快速脱颖而出,本月《光荣使命》还将开启的"光荣炼
2020最新手机CPU性能排行榜手机cpu排行榜「2020最新手机CPU性能排行榜」
简介:随着技术的发展,智能手机的性能也在不断提升,而CPU性能是智能手机性能的重要指标之一。本文将介绍2020最新手机CPU性能排
推荐文章