IDA动态调试SO文件

android逆向笔记(10) ——IDA动态调试so 文章目录0x00 序言0x01 启动 IDA Server选择android_server版本指定端口运行android_server0x02 开始调试载入目标so(先dump再载入)Attach目标进程 0x00 序言 本文主要作为脑残的我记录一下IDA调试so的各种命令,因为老是忘记!没有任何干货,大家可以撤了!毫无技术含量! 0x01 启动 IDA Server 选择android_server版本 1. 在真机调试so中,根据应用程序的运行情况选择android_server 或 android_s 阅读详情


前言

此篇博文仅仅记录下本人学习 IDA pro 动态调试so文件过程。

工具:IDA pro 7.5

参考博文及APK来源:

  • https://blog.youkuaiyun.com/hbhgyu/article/details/81321923
  • https://blog.youkuaiyun.com/tabactivity/article/details/78492377

一、启动android server,以调试方式启动APK

  • 进入 [安装路径]\dbgsrv\dbgsrv 目录,将对应android版本的 android server和 android server64发到手机 /data/local/tmp/ 目录,并设置可执行权限,运行。(建议android server 和 android server64都发送,避免某些apk只有32位或64位so包。)

    # 同理,将android server64同样设置
    adb push [安装路径]\dbgsrv\android_server /data/local/tmp/
    adb shell
    su
    chmod 777 /data/local/tmp/android_server 
    ./data/local/tmp/android_server  # 启动
    
  • 手机端设置端口转发

    adb forward tcp:23946 tcp:23946
    
  • 调试方式启动APK,启动后,手机端出现 Waiting For Debugger 弹窗。

    adb shell am start -D -n [aok包名]/[主活动]
    
  • 启动 DDMS(进入Sdk安装目录 \Sdk\tools下,运行 monitor.bat 脚本启动),在DDMS上选择相应进程后,使用指令使apk继续运行,成功后,DDMS上进程将显示绿色,否则是红色。

    jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700 # localhost可以填127.0.0.1
    

    在这里插入图片描述

二、调试步骤

  1. 首先,IDA 加载so文件(此时,可以先查看需要设置断点的函数,位置,然后设置断点。)

    在这里插入图片描述

  2. 选择调试器,点击:Debugger=>Select debugger(或直接按快捷键F9),选择 Remote ARM Linux/Android debugger,点击OK。(若弹出 PLEASE READ CARFULLY 窗口,点击YES)

    在这里插入图片描述

  3. 点击:Debugger=>Debugger options,根据需要,设置如下三个选项,会在相应位置暂停,按F9可继续调试

    • 第一个:在APK程序入口处停止。
    • 第二个:有线程启动运行或者退出时,暂停。
    • 第三个:当动态库(apk中的so文件)加载或者取消加载时,暂停。

    根据需要,

  4. 点击:Debugger=>Process options,此处设置远程主机(android手机)和调试端口号(IDA 默认为23946),点击OK。

    在这里插入图片描述

  5. 点击:Debugger=>Process options,选择当前待调试的apk进程,点击OK。(可按 CTRL+F 或者 ALT+T搜索包名查找)

    在这里插入图片描述

  6. 在IDA中,按 F9 开始调试,如果在调试前设置过断点和Debugger options,调试会在相应断点位置或满足选项时停止。

三、调试技巧

  1. 可以在启动调试前,使用静态分析设置相应断点。

  2. ARM中没有NOP指令,可通过以下指令替代

    MOVS R0,R0	# 十六进制为:00 00 A0 E1
    
  3. 当调试函数遇到无法设置断点弹窗,或者到一个 DCB 定义数据处无法 F9 继续时调试和返回时,可按 G 键跳转到 LR 寄存器地址处,再按F4,函数运行到当前指针位置。

  4. 使用F5快捷键将ARM指令转化为可读的C代码,同时可以使用Y键,对JNIEnv指针做一个类型转换,从而对JNI里经常使用的JNIEnv方法能够识别;同时,可以通过选项 Copy to assembly ,将C代码注释到ARM指令中,增加Patch so 的便利性,甚至可以直接看到答案显示。
    在这里插入图片描述
    在这里插入图片描述5. 32位ARM下,函数参数保存在 R0~R3寄存器中(多余的参数入栈),可以将 Hex View 和 寄存器同步,查看函数参数数据。 在这里插入图片描述

IDA 动态调试So库 (一 基础篇) 如何通过IDA调试so库 阅读详情

相关推荐

IDA Pro实战:Android so文件静态分析与动态调试全解析

在移动安全与逆向工程领域,共享对象库(so文件)作为承载Android应用核心逻辑与加密算法的关键组件,其分析技术是安全审计、漏洞挖掘与恶意代码研究的基石。理解ELF文件格式、ARM/Thumb指令集及JNI交互机制是分析工作的核心原理。掌握静态分析(反汇编、反编译、交叉引用)与动态调试(断点控制、内存修改、寄存器监控)相结合的方法,能高效定位加密算法、验证安全假设并绕过保护机制,极大提升逆向工程效率与深度。本文聚焦IDA Pro在Android so文件分析中的实战应用,涵盖环境搭建、反调试对抗、Frid

weixin_33922672的博客 2895

Android渗透测试12:IDA动态调试so

上一篇分享了使用和Jeb对 Apk 文件直接进行动态调试,本文将分享使用IDA pro 调试so。调试的 apk 文件还是使用 CTF案例4 的文件,已经上传到知识星球,可自行下载本文涉及技术:IDA pro 工具使用调试android 应用动态调试技术注意:本案例所需要的 apk 文件,已经上传到知识星球,需要的朋友可以到文末关注后下载在 Android 逆向中,动态调试是非常重要的一个技术,IDA pro 时调试 so 代码的利器。感兴趣的朋友,可以下载案例的 apk 文件,实战起来。

小王的储物间 4074

安卓逆向实战:IDA Pro动态调试so文件全流程解析

本文详细解析了使用IDA Pro对安卓应用so文件进行动态调试的全流程。从环境准备、调试服务启动、应用调试模式附加,到JDB连接、目标函数定位及实战调试技巧,提供了完整的操作指南。重点介绍了如何绕过反调试、观察修改内存数据以及结合动态调试还原核心算法,是安卓逆向工程中掌握Native层代码分析的实用教程。

weixin_29194693的博客 1317

IDA pro动态调试so层初级教程

手机打开要调试的app。

云霄IT的博客 1508

安卓逆向实战:用IDA Pro动态调试so文件中的JNI函数(附详细步骤)

本文详细介绍了使用IDA Pro对安卓应用so文件中的JNI函数进行动态调试的完整实战流程。内容包括调试环境搭建、android_server部署、进程附加、JNI函数定位以及单步调试技巧,旨在帮助逆向分析人员突破静态分析瓶颈,深入理解核心算法与加密逻辑。

weixin_29163581的博客 1063

安卓逆向实战:用IDA Pro动态调试so文件,5步定位关键函数

本文详细介绍了使用IDA Pro动态调试安卓so文件的5个关键步骤,包括环境搭建、进程附加、so文件加载、JNI函数追踪和算法分析。通过实战案例,帮助逆向工程师快速定位关键函数,破解复杂加密逻辑,提升移动应用安全分析能力。

quiet的专栏 139

SO文件是什么 及IDA动态调试SO文件(初级)

一:理解so SO 文件 跟PC端的dll 动态链接库 其实是差不多的一个东西 只是dll是windows下的东西 so是linux下的东西 安卓也是linux 所以就当成pc下的 dll 类似的理解就行 二:IDA动态调试so 一个cmd adb install xxxx adb push d:\as /data/local/tmp/as adb shell su chmod 777 /...

qq_34108752的博客 557

IDA Pro安卓动态调试实战:从环境搭建到SO文件分析

本文详细介绍了使用IDA Pro进行安卓SO文件动态调试的完整流程。从Root设备准备、android_server部署、ADB端口转发等环境配置入手,逐步讲解如何附加目标进程、定位SO加载基址与函数偏移,并实战演示了断点设置、寄存器监控、内存修改等核心调试技巧,帮助安全研究人员高效分析安卓原生层代码逻辑与算法实现。

xray4的博客 994

使用Ida动态调试Android 中的so文件的方式以及技巧

首先要想调试对应APP的so,一般要拿一个自己编译的AOSP最方便杂七杂八的问题最少。 将ida的android_server push 到/data/local/tmp,执行后监听local port 23946 adb forward tcp:23496 tcp:23946 以debug模式启动APP am start -D -n 包名/.类名 一定记得打开ddms(不推荐mon

Arno_W的博客 1792

IDA Pro动态调试ARM64 so文件实战指南

so文件是Android应用中承载核心逻辑的原生二进制模块,其运行于底层CPU,具备高隐蔽性与强反分析特性。理解ARM64指令集、ABI参数传递规则及内存布局原理,是实现精准调试的基础;IDA Pro凭借高精度符号恢复(如FLIRT)、图形化条件断点与Android原生调试器(android_server)深度集成,提供了远超GDB/LLDB的工程可控性。该技术广泛应用于安全审计(密钥提取、校验绕过)、SDK兼容性排查(SIGILL定位)及功能复刻(如ijkplayer解码逻辑分析)。本文以Android

weixin_29164185的博客 242

使用IDA动态调试.so文件

一、使用IDA动态调试.so文件 1.1、应用体系架构:动态分析分析什么? 代码安全分析。有无被篡改,盗版等风险,是否容易被反编译,重打包。 组件安全分析。四大组件和通信Intent分析,以及他们权限使用不当带来的问题。 存储安全分析。对存储的私有文件,证书文件,数据库文件进行安全验证分析,尤其是明文数据。

武天旭的博客 2187

安卓逆向实战:IDA动态调试so文件的关键步骤与技巧

本文详细介绍了安卓逆向工程中,使用IDA Pro动态调试so文件的核心流程与实战技巧。从环境搭建、android_server部署、端口转发,到关键函数定位、断点设置与反调试对抗,提供了完整的操作指南。通过动态调试,开发者可以洞察程序运行时状态,有效分析加密算法、混淆代码及复杂数据流,是破解安卓应用安全机制的关键技术。

gold8的专栏 589

Mac IDA动态调试Android应用so文件

3.把这两文件推送到手机上的/data/local/tmp(其他目录也一样),设置权限并执行./android_server,如果调试失败就执行64的。点击debugger>attach to process.. >(手机上打开应用)点击serarch>搜索kanxue并点击这个进程。android_x64_server,win找到配置ida的位置,也有这两个文件,不能通用。2.访达找到ida,右键显示包内容,搜索server,找到android_server和。魅族root note9。

rni88的博客 262

【安卓逆向】如何用ida动态调试so文件

现在很多apk都把一些关键代码放在so文件里执行,所以搞安卓逆向必须得会分析so文件,然而有时单纯的静态分析可能很难分析出关键出来,这时候就要借助动态调试的方法来进行分析。 现在纪录一下我用ida调试android so文件的经验。今天先介绍下如何操作。 the most important process   is rooting your phone. 飙一下英语,这里是为了突出root

zsd747289639的博客 1845

1014. 福尔摩斯的约会 (20)-PAT乙级真题

1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’

柳婼 の blog 2645

信创环境下,软件测试如何破局?

毕竟,在自主可控的道路上,每一行通过测试的代码,都在为信创产业的未来添砖加瓦。未来,测试工程师不仅要验证软件在信创环境的可用性,更要基于国产软硬件的特性,推动软件进行 “原生设计”—— 例如,针对国产 CPU 的多核架构优化代码,基于国产数据库的索引机制提升查询效率。某政务云平台的测试数据显示,在 “飞腾芯片 + 麒麟操作系统” 环境下,系统的并发处理能力较传统环境下降约 15%,测试团队通过优化软件的线程调度逻辑,最终将性能损失控制在 5% 以内 —— 这正是信创性能测试的价值所在。

weixin_45608163的博客 885

ida动态调试so文件,踩坑记录

正常流程 1.推送文件 adb push android_server 注意模拟器选x86系列, 真机的话要选android_server 不要选armlinux!!! 2.进入shell adb shell 真机要用su切换到root用户,模拟器不用 su 进入tmp目录 cd /data/local/tmp 修改权限 chmod 777 android_server 运行 ./android_server 端口转发 adb forward tcp:23946 tcp:23946 3.i

weixin_44154094的博客 2925

Shopee商品详情页反爬实战:手把手逆向x-sap-Ri和x-sap-Sec参数(附完整调试过程)

本文详细解析了Shopee商品详情页反爬机制中的x-sap-Ri和x-sap-Sec参数逆向过程。通过JS逆向技术,从环境数据采集到多层哈希运算,完整拆解了这两个关键参数的生成逻辑,并提供了实战技巧和Node.js实现方案,帮助开发者应对Shopee的动态加密挑战。

weixin_33701251的博客 1596

真机调试避坑指南:用IDA Pro动态调试安卓SO文件时遇到的5个常见问题

本文针对使用IDA Pro进行安卓SO文件真机动态调试时常见的五大难题,提供了详细的解决方案。重点剖析了端口占用、进程列表异常、断点失效、调试连接断开以及ARM/Thumb指令集切换等核心问题,并给出了经过实战检验的排查步骤与调试技巧,旨在帮助逆向工程师构建稳定高效的调试环境。

meat5的博客 419

直流无刷减速电机选型指南:从KV值到霍尔传感器,新手必看的5个关键参数

本文详细解析直流无刷减速电机选型的5个关键参数,包括KV值、转矩、电流与功率、减速比选择以及霍尔传感器配置。通过实战案例和避坑策略,帮助工程师精准匹配电机性能与负载需求,提升工业自动化设备的可靠性和效率。特别强调霍尔传感器在精准控制中的关键作用。

alice7model的博客 620

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006

使用IDA动态调试android so文件时的几个坑

1 ddms 一定要打开ddms,否则调试端口是关闭的,就无法在程序刚开始的暂停了。我之前不知道要打开ddms才能用jdb,还以为android系统或者sdk出问题了,重装好几次。汗。 我遇到好几次打开ddms会报错:Could not open Selected VM debug port (8700) 此时,要netstat -ano | find "8700"   查看

three_feng的博客 7462

WPF+MVVM案例实战(一)- 设备状态LED灯变化实现

采用WPF+MVVM框架实现,MVVM框架使用CommunityToolkit.Mvvm 依赖包,代码案例部署了三个LED灯,按照红黄绿三色后台自动刷新状态进行变化,根据后台数据不同,UI层显示不同颜色。

lingshuangcanxue 1382

Android逆向学习(十一) IDA动态调试Android so文件

Android逆向学习:IDA动态调试SO文件 本文记录了使用IDA Pro动态调试Android SO文件的过程。主要内容包括:1) SO文件在Android中的加载流程;2) IDA调试步骤:上传android_server、端口转发、设置调试选项、附加进程并断点调试;3) 演示了通过修改寄存器值动态改变SO函数返回值的效果。文章提供了详细的操作截图和命令说明,适合Android逆向初学者学习IDA动态调试技术。

qq_52380836的博客 1601

漫画安全HIDS、EDR、NDR、XDR

漫画安全HIDS、EDR、NDR、XDR

墨痕诉清风的博客 3446

基于Xilinx K7-410T的高速DAC之AD9129开发笔记(一)

引言:从本文开始,我们介绍下项目中设计的并行LVDS高速DAC接口设计,包括DAC与FPGA硬件接口设计、软件设计等。项目设计高速DAC采用了ADI公司的AD9129,该芯片最大更新速率5.7Gsps,该芯片在宽带通信应用、LTE、雷达信号产生、干扰机等领域有广泛应用。

FPGA_Designer 2535
上一篇: kali安装oh-my-zsh及配置命令行高亮和自动补全
下一篇: IDA pro动态调试dex文件
StepTp
博客等级 码龄5年 53粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值