白云点缀的蓝 发表于 2021-9-19 16:16

记录一下安卓的SElinux导致ida无法远程动态调试无响应

本帖最后由 白云点缀的蓝 于 2021-11-6 10:56 编辑

用到的静态动态分析调试工具ida下载地址
链接:https://pan.baidu.com/s/1NKrismXg1JHWgcE_lc7-sg
提取码:8888


因为要动态调试,所以首先要把android server放入安卓手机里


那么多个android server 应该选哪个?
得按照cpu架构来选择
查看cpu架构的命令
cat/proc/cpuinfo


我们可以看到架构为ARMv7
所以在这里我选择android server


x64对应x64的cpu架构,x86对应x86的架构
x64还有x86一般是模拟器的架构,因为pc电脑一般都是x64或者x86
然后放入手机,放入手机的命令是
adb push I:\x64_idapronw_hexarm64w_hexarmw_hexmipsw_hexppc64w_hexppcw_hexx64w_hexx86w_210427\dbgsrv\android_server /data/local/tmp/as

然后给这个as文件赋予777权限,所有用户可读,可写,可执行。
先adb shell进入安卓命令行,然后su获取超级用户权限

C:\Users\35108>adb shell
shell@cancro:/ $ su
root@cancro:/ #



然后执行修改权限命令,因为文件在/data/local/tmp目录下,所以执行如下命令


chmod 777 /data/local/tmp/as

root@cancro:/ # chmod 777 /data/local/tmp/as
chmod 777 /data/local/tmp/as

然后我们执行

./data/local/tmp/as

root@cancro:/ # ./data/local/tmp/as
./data/local/tmp/as
IDA Android 32-bit remote debug server(ST) v7.6.27. Hex-Rays (c) 2004-2021
Listening on 0.0.0.0:23946...


必须转发端口,否则ida连接直接拒绝



adb forward tcp:23946 tcp:23946

转发后,我们开始动态调试


点击attach,然后选择如下图



选择需要调试的进程




发现直接无响应了



这里我猜测应该是SElinux的原因,因为之前在进行frida hook的时候因为SElinux无法运行frida


查看一下SElinux状态,要在su权限下进行获取,否则会提示权限解决


如下可以看到SElinux的状态是Enforcing状态,也就是开启的状态。

getenforce

root@cancro:/ # getenforce
getenforce
Enforcing





这边尝试把他关闭


关闭命令如下

|root@cancro:/ # setenforce 0
setenforce 0



查看是否关闭成功,可以看到Permissive表示关闭成功

root@cancro:/ # getenforce
getenforce
Permissive



同时ida也从无响应状态变为了运行状态
因为程序有反调试的原因,所以直接关闭了



到此,ida已可以正常调试手机里的程序


这边试了下附加其他应用程序,是没有问题的



dawntx 发表于 2022-1-6 23:49

小白觉得有点深奥

拿着雪糕 发表于 2022-1-25 12:16

感谢大佬分享

allenzjb 发表于 2022-1-25 15:39

谢谢分享

DzOqvIoNAW 发表于 2022-2-25 20:43

我觉得楼主这帖很强!

ALNHRvIO6270 发表于 2022-2-25 20:58

刚好需要 谢谢大佬

LQO92613 发表于 2022-2-25 20:58

看着很不错,回复一个看看

Ail9274 发表于 2022-2-25 21:02

感谢楼主

aAsryTlc 发表于 2022-2-25 21:27

谢谢分享

HZficIy 发表于 2022-2-25 21:31

这个不错谢谢,看一下
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 记录一下安卓的SElinux导致ida无法远程动态调试无响应