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

最新文章
最容易养出“刺猬”的家庭:凡事都跟孩子争输赢
最近,我刷到了一位老师的视频,他提到了这样一件事:有一回,他给学生们上课,看到一个孩子穿得很单薄,便好心提醒了一句。没想
石楼交警:安全宣讲进校园 警校携手保平安
为进一步强化春季学校交通安全宣传教育工作,切实加强中学生的交通安全意识,预防和减少未成年人道路交通事故的发生,石楼交警以
从头到脚皆可替?王宝强这个镜头,戳穿了多少“流量明星”的体面
从围棋老师,到耍得警察团团转的劫匪。在崔业身上,确实看到了绝命毒师的影子。再次近距离感受王宝强的演技,才彻底明白能这么多
游戏驿站(GME.US)跟风购币热潮:拟筹资13亿美元用于购买比特币
智通财经APP获悉,(GME.US)正寻求出售13亿美元的无息可转换债券,为购买比特币提供资金,因为它采用了加密货币倡导者Michael Say
【敬畏之心】—读《大声沉默》
深冬午后,如约而至的钢琴声,散落在图书馆各个角落里,也落在我的孤寂上,三楼窗外的阳光有些慷懒,些许暖意的光,斑驳了此际心
迪士尼真人版《白雪公主》电影豆瓣跌至 4.2 分
IT之家 3 月 26 日消息,迪士尼真人版《白雪公主》电影已于本月(3 月 21 日)上映,瑞秋・泽格勒(《饥饿游戏:鸣鸟与蛇之歌》
终于来袭,32集权谋剧要播了,成毅王劲松飙戏,我敢说:剧王再现
说起古装剧权谋剧,你最先想到哪一部?有人想到的可能是《琅琊榜》,这部剧斩获了9.4的豆瓣高分,成为了现象级的爆款。还有的人
“官员要么懒惰要么无能” 舆论质疑美政府对涉密信息处理存双标
当地时间3月25日,美国总统特朗普表示,在通信平台“信号”(Signal)上关于美军对也门作战计划的群聊中没有机密信息。特朗普称
【桃花源式待客之道】常德石门县出台6条举措优化营商环境
近日,江丰同创(石门)新材料有限公司筹建负责人手持崭新的营业执照,在石门县政务中心市场监督管理局窗口连声赞叹:“从提交材
济南:1-2月份住宅销售额92.8亿元,同比增长2.3%
央广网北京3月26日消息(记者安垚)3月25日,济南市统计局1-2月份全市房地产开发运行情况。1-2月份,全市商品房销售面积102.7万
推荐文章