-
-
[原创]tenda系列设备用户态仿真搭建
-
发表于:
2023-3-2 21:58
10821
-
Tenda AC18为例
下载链接:https://down.tenda.com.cn/uploadfile/AC18/ac18_kfV15.03.05.19(6318)_cn.zip
1、正常对固件进行解包,查看固件的架构,此AX18是arm小端,因此在文件系统下执行下列命令
1 |
cp $(which qemu - arm - static) . /
|
2、使用下列命令进行用户态仿真
1 |
sudo chroot . / . / qemu - arm - static . / bin / httpd
|
此时处出现下列情况,导致一直处于等待状态,可以使用pacth解决这个问题。

解决方法
使用IDA pro打开固件,使用字符串搜索shift + F12,定位字符串出现的位置。

可以看到,原包中的httpd的运行流程,基本块1-->基本块2-->基本块3-->基本块2...一直在循环,导致处于静止状态,在基本块2的最后一条指令跳转的时候,它根据上一条指令CMP R3,#0的结果进行跳转,所以要想基本块2流向基本块4,就需要是用keypetch进行将该指令进行patch,修改为CMP R3,#1,


将patch后的httpd替换原来的httpd,在此进行运行,ha? 运行之后还是同样的结果

那就只好动态调试,看看程序是如何跳转的。现在CMP R3,#1处打上断点。在Ubuntu上开启远程调试端口。
1 |
sudo chroot . / . / qemu - arm - static - g 1234 . / bin / httpd
|
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
最后于 2023-3-4 21:48
被schm编辑
,原因: 图片放错,截取的图片有重影,是因为之前把该内容发错了版块上,在保留的文件中截取的,所以图片会有重影