吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7752|回复: 33
收起左侧

[Android 原创] 静态Patch IDA Pro v7.2 android_server 默认调试端口 23946

  [复制链接]
凉游浅笔深画眉 发表于 2020-4-24 15:11
本帖最后由 凉游浅笔深画眉 于 2020-4-24 16:32 编辑


这是本菜鸟学习逆向的第二天,入门级水平,大佬勿喷。如果文中有写错的地方,请大佬纠正。


前言:


adb shell下可以使用-p命令修改android_server的默认调试端口,但每次都要加个-p感觉很麻烦,于是有此一文。
通过静态Patch的方法,就不用每次启动android_server都要加个-p命令来修改调试端口了!


1.默认的IDA android_server调试端口是23946,顺便看到了提示信息"Listening on xxxxxx",我们通过这句话来定位关键代码。


1.JPG


2.用IDA加载android_server,并【shift+F12】打开字符串窗口,搜"Listening xxxxx"


2.jpg


3.快捷键【X】查看交叉引用,发现三处,挨着看看。


3.jpg


4.发现都是在函数Sub_5561C内进行的引用


4.jpg


5.F5伪代码查看,发现端口号来源于变量v1+4


5.jpg


6.继续查看变量v1来源于哪里,发现变量v1来源于参数a1,看来参数a1就是关键了,参数a1+4的位置就是端口号。


6.jpg


7.为了寻找参数a1的来源,只能到上层函数去找。快捷键【X】查看交叉引用,发现是main函数调用传参的。


7.jpg


8.转到main函数查看伪代码,调用位置如下


8.jpg


9.dword_9942C这个全局变量结构体就是关键,理论上鼠标双击点过去就能看到端口号了。
当我们转过去后发现实际情况并不是这样。.并没有看到端口号,线索也就断了!仔细看前面地址发现位于so文件的bss节里。
这个节的数据是需要在程序运行起来之后才初始化的!


9.jpg


10.在bss节 0009942C开始分析此结构体,很容易能得到2字节的word_99430就是端口号


10.jpg


11.【X】之后来到函数Sub_C364,已经可以找到端口号了0x5D8A就是23946,只要改掉这个值就patch成功了。


11.jpg


12.然而在修改这个值的时候是很麻烦的"LDR  R3, =0x5D8A"是IDA帮我们生成的伪代码,这是一条PC寄存器寻址指令

可以看到前面的十六进制硬编码为0B 4B,根本就没有0x5DA8这个值,所以不能在这里修改。

12.jpg


13.对0B 48进行反汇编后得到实际指令为"LDR  R3, [PC, #0x2C]" ,所以我们可以计算出0xC3CC才是需要修改的值


13.jpg


14.将8A 5D修改成0A 1A并保存


14.jpg


15.运行测试,完美


15.jpg


修改前和修改后的文件.zip (694.39 KB, 下载次数: 72)

免费评分

参与人数 15威望 +1 吾爱币 +41 热心值 +14 收起 理由
二哥哥 + 1 + 1 有偿请教问题Q 30836308 价高
picklove123 + 1 + 1 nck大佬
fa00x + 1 + 1 大神装小白?什么套路
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
信易达 + 1 + 1 自从上次和论坛管理闹完别扭,好久不见了。
chased + 1 感谢nck老师分享
asq56747277 + 1 + 1 谢谢@Thanks!
yjdh3344 + 1 谢谢@Thanks!
h4er + 1 + 1 得到大佬发帖子了
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
风绕柳絮轻敲雪 + 2 + 1 我很赞同!
魂殇 + 1 + 1 是不是有人盗了画眉的号?来冒充菜鸟了…
yAYa + 3 + 1 画眉师傅么么哒
冥界3大法王 + 4 + 1 用心讨论,共获提升!
610100 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

无闻无问 发表于 2020-4-24 16:10
是不是有人盗了画眉的号?来冒充菜鸟了…
bachelor66 发表于 2020-4-24 16:28
进来向大佬学习下。                                 
浙江-杺庝 发表于 2020-4-24 15:14
赤座灯里 发表于 2020-4-24 15:40
本帖最后由 赤座灯里 于 2020-4-24 16:06 编辑

地址应该是C3A0+2C=C3CC吧,ARM是三级流水线结构,PC总是指向正在取指的指令,ARM就是当前执行的指令+8,thumb就是+4
dsanke 发表于 2020-4-24 15:54
感谢楼主,受教了!
冥界3大法王 发表于 2020-4-24 16:08
@凉游浅笔深画眉
亲,IDA的改名函数名(N键),这个能不能修改成为“中文呢”
pwp 发表于 2020-4-24 16:10
看不懂,就想白嫖下大佬的截图工具,好流弊。
yuxinfei 发表于 2020-4-24 16:14
好好厉害啊
Only1Studio 发表于 2020-4-24 16:26
画眉老师NB!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表