分享好友 最新资讯首页 最新资讯分类 切换频道
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

最新文章
如何通过手机远程控制他人手机呢远程控制对方手机「如何通过手机远程控制他人手机呢」
“闻道有先后,术业有专攻”出自唐韩愈《师说》。意思是指所知道的道理有先有后,技能学术各有研究方向。《师说》是唐代文学家韩
时尚亮丽的oppor11 plus手机壳,让你的爱机别具一格oppo手机壳「时尚亮丽的oppor11 plus手机壳,让你的爱机别具一格」
OPPOR11plus手机套 电镀工艺,精美大气的时尚造型,满满的中国风韵味,舒适的手感,搭配亮眼的金龙雄姿个性图案,拿在手里就是很
全能扫描王OCR3.3.7全能扫描王手机版下载「全能扫描王OCR3.3.7」
一款集OCR识别,多种格式,多种语言翻译,去除水印为一体的AI扫描软件,能够直接迅速精确的提取协议合同、照片、书籍、表格中的
桌面宠物无知熊猫加速器手机宠物「桌面宠物无知熊猫加速器」
Get ready to jump into the galaxy and blow up some ships! You are in search of a ship of mythic capabilities... one coul
无线投屏功能在手机、电脑、电视机上怎么找手机镜像功能在哪「无线投屏功能在手机、电脑、电视机上怎么找」
在跟用户介绍无线投屏器的时候,说道miracast投屏,然后用户就问miracast投屏在手机、电脑、电视机上怎么找?本文就为大家科普下
比亚迪进入瑞士市场,首批投放海豹 / 海狮 07EV / 宋 Plus DM-i
IT之家 4 月 5 日消息,据博主 @小迪快报 消息,4 月 2 日,在瑞士举办品牌发布会正式进入瑞士市场。首店在苏黎世班霍夫大街金
我们是怎样被定位的?GPS工作原理解析手机卫星定位「我们是怎样被定位的?GPS工作原理解析」
最近一段时间,关于全球定位系统的话题又火热起来,特别是关于带有定位模块的与专业之间的讨论让持币待购的消费者难以选择。那
OPPO手机卡顿?教你六招快速解决,提升使用体验oppo手机太卡怎么办「OPPO手机卡顿?教你六招快速解决,提升使用体验」
在当今数字时代,智能手机已经成为我们日常生活中不可或缺的一部分,OPPO手机凭借其出色的性能与时尚的设计,吸引了大量用户。然
手机勿扰模式关闭步骤详解手机勿扰模式在哪里「手机勿扰模式关闭步骤详解」
手机勿扰模式怎么关闭大家好,今天我来给大家介绍一下如何关闭手机的勿扰模式。有时候我们可能不小心开启了这项功能,导致无法及
小米手机如何实现与电脑连接小米手机连接电脑「小米手机如何实现与电脑连接」
在现代科技高速发展的时代,智能手机与电脑的连接已经成为我们日常生活和工作中不可或缺的一部分。对于小米手机用户来说,如何高
推荐文章