TP 링크 라우터 M7350 V3
V3의 CPU : Qualcomm MSM 9625 (평평한 장치 트리), 모델 : Qualcomm MSM 9625V2.1 MTP
나중에 하드웨어 개정이 있습니다.
매트릭스 채널에 가입하십시오
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
Soc : Qualcomm MDM9225
Qualcomm 용어에 대한 빠른 메모 :
플래시 : 2GBIT (256MB) WINBOND W71NW20GF3FW
모바일 무선 : SkyWorks Sky77629
kernel.org의 공식 소스와 공급 업체 코드 rsync
기반으로 2024 년에이를 구축하기 위해 노력하고 있습니다.
https://github.com/m0veax/tplink_m7350-kernel
실제 장치의 구성 : kernel/config
배터리와 플러그인 USB를 제거하면 LSUSB가 표시됩니다.
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
위는 몇 초 후에 사라집니다.
정상적인 부팅이라면 다음과 같습니다.
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
BootLoop없이 FastBoot를 입력하십시오
fastboot reboot bootloader
Qualcomm은 Fastboot 명령을 문서화합니다.
다음 getvar
명령은 결과를 얻습니다.
변하기 쉬운 | 결과 |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
디스플레이는 0xf992_4000
(컨트롤러를 통해 SPI 버스에 연결됩니다. 장치 트리에서 해당 정보를 추출 할 수 있습니다.
SPI 컨트롤러 컴팩트 문자열은 qcom,spi-qup-v2
입니다. 공급 업체 커널에서 SPI 드라이버는 drivers/spi/spi_qsd.c
입니다. Mainline Linux에서는 drivers/spi/spi-qup.c
입니다.
OLED 디스플레이가 호출됩니다
tplink,oleds90319
( qcom,spi-qup-v2
)tp,oled_pt
> qcom,oled_s90319_pt
실제로 디스플레이의 측면 (흰색 프레임)은 읽기 : BLB-S90319B-1
공급 업체 커널 소스에는 그러한 것이 없으며 Google이나 Bing은 아무것도 중요하지 않습니다. 따라서 디스플레이 드라이버가 정확히 무엇인지 확실하지 않습니다. SSD1306 / SH1107 과 유사한 128x128 단색 디스플레이처럼 보입니다.
우리는 덤프 한 커널 구성에서 다음과 같습니다.
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
바이너리 /usr/bin/oledd
/etc/init.d/start_oledd
를 통해 시작됩니다. SYSFS를 통해 OLED 디스플레이에 액세스합니다.
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
디스플레이에서 플레이 할 수 있도록 *_on
파일에 1
/ 0
반향 할 수 있습니다. 그리고 우리는 그것이 어떻게 작동하는지는 아직 명확하지 않지만 버퍼에게 스스로를 쓸 수 있습니다. 주변에서 재생하면 디스플레이 패널이 실제로 색상이 지원된다는 것이 밝혀졌습니다. ?
재미를 원한다면 :
/etc/init.d/start_oledd stop
echo 1 > /sys/class/display/oled/backlight_on
echo 1 > /sys/class/display/oled/panel_on
cat /dev/random > /sys/class/display/oled/oled_buffer
이것은 끝없이 사각형을 끌어 당기고 픽셀 쓰레기를 보여줄 것입니다. Ctrl+C를 눌러 중지하십시오.
spi@f9924000 {
compatible = "qcom,spi-qup-v2";
reg = <0xf9924000 0x1000>;
interrupts = <0x00 0x60 0x00>;
spi-max-frequency = <0x17d7840>;
#address-cells = <0x01>;
#size-cells = <0x00>;
gpios = <0x02 0x07 0x00 0x02 0x05 0x00 0x02 0x04 0x00>;
cs-gpios = <0x02 0x06 0x00>;
qcom-spi-oled@1 {
compatible = "tplink,oleds90319";
reg = <0x01>;
spi-max-frequency = <0x927c00>;
};
};
oled {
compatible = "tp,oled_pt";
qcom,oled_s90319 {
compatible = "qcom,oled_s90319_pt";
qcom,oled-cs-gpio = <0x02 0x06 0x00>;
qcom,oled-rsx-gpio = <0x02 0x15 0x00>;
qcom,oled-reset-gpio = <0x02 0x14 0x00>;
qcom,oled-vdd0-gpio = <0x02 0x16 0x00>;
qcom,oled-vdd1-gpio = <0x02 0x17 0x00>;
qcom,oled-boost-en-gpio = <0x02 0x3d 0x00>;
};
};
[ 2.042245] s90319_spi_probe successed!
[ 2.045067] oled_90319_panel_init success.
[ 2.049204] oled_probe
[ 2.051692] oled_s90319_probe
[ 2.054716] oled init success!
장치는 /dev/binder
없이 Android를 실행하는 것 같습니다. 여기에서 펌웨어를 얻을 수 있습니다.
TP-Link 지원 페이지
펌웨어가 크립 핑되지 않았습니다. 구성을 자세히 살펴볼 수 있습니다.
binwalk boot.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Android bootimg, kernel size: 3564792 bytes, kernel addr: 0x308000, ramdisk size: 0 bytes, ramdisk addr: 0x308000, product name: ""
2048 0x800 Linux kernel ARM boot executable zImage (little-endian)
18403 0x47E3 gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
3567616 0x367000 Qualcomm device tree container, version: 1, DTB entries: 55
3569664 0x367800 Flattened device tree, size: 49302 bytes, version: 17
3620864 0x374000 Flattened device tree, size: 49218 bytes, version: 17
3672064 0x380800 Flattened device tree, size: 49088 bytes, version: 17
3721216 0x38C800 Flattened device tree, size: 48730 bytes, version: 17
3770368 0x398800 Flattened device tree, size: 49193 bytes, version: 17
3821568 0x3A5000 Flattened device tree, size: 48516 bytes, version: 17
3870720 0x3B1000 Flattened device tree, size: 47693 bytes, version: 17
./system/etc/{passwd-,shadow}
root:C98ULvDZe7zQ2:0:0:root:/home/root:/bin/sh
해시를 빠르게 검색하면 oelinux123
가능한 값으로 제공됩니다. 나중에 확인해야합니다.
출처 : https://svson.xyz/posts/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
펌웨어에는 adbd
포함 된 것 같습니다. 우리는 그것을 시작할 방법을 찾아야합니다.
./META-INF/com/google/android/updater-script
파일로가는 경로 및 AutostArt Ect를위한 Symlinks 생성. ADB를 활성화하기 위해이를 수정하려고합니다.
링크 된 4PDA 포럼 스레드에는 원격 코드 실행 Vuln의 POC가 텔넷 데몬을 시작할 수 있습니다. 현재 링크 된 Windows 스크립트 만 있습니다. 우리는 그것을 호출하려면 shellscript를 만들어야합니다.
이것에 대한 자세한 내용은 여기에 있습니다
Rust Command Line 도구와 컬 기반 쉘 스크립트를 구현했습니다.
Open.sh로 로그인은 자동으로 수행됩니다.
https://github.com/ecdsa521/tpown/tree/main도 있습니다
HW Rev V3 및 V4의 .dtb 파일은 DTB_Files에 저장되며 DTVIS로 시각화 할 수 있습니다.
4PDA에 다른 개정판에 게시 된 이미지가 게시되었습니다. 장치에서 동일 할 수 있습니다. 여기서 살펴보세요
4PDA는 설치된 펌웨어를 백업하는 몇 가지 방법을 찾았습니다.
https://4pda.to/forum/index.php?showtopic=669936&view=findpost&p=110738476
usb_composition
902B
nyy
영구적 인 ADBD 연결은 이제 시작되어야합니다
클라이언트의 케이블 당 :
adb shell
재부팅 후 액세스 포인트가 다운 된 것 같습니다. 따라서 ADBD를 다시 비활성화해야합니다
adb shell
usb_composition
tplink
nyy
adbd
시작하는 방법을 찾으십시오