เราเตอร์ลิงค์ TP M7350 v3
CPU ใน V3: Qualcomm MSM 9625 (แผนผังอุปกรณ์แบน), รุ่น: Qualcomm MSM 9625V2.1 MTP
มีการแก้ไขฮาร์ดแวร์ในภายหลัง:
เข้าร่วมช่อง Matrix ของเรา
./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
Mobile Wireless: Skyworks Sky77629
จากแหล่งข้อมูลอย่างเป็นทางการจาก Kernel.org และด้วยรหัสผู้ขาย rsync
ed เรากำลังดำเนินการเพื่อสร้างสิ่งนี้เพื่อสร้างในปี 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
ป้อน fastboot โดยไม่มี bootloop
fastboot reboot bootloader
Qualcomm จัดทำเอกสารคำสั่ง fastboot ของพวกเขา
คำสั่ง getvar
ต่อไปนี้ให้ผลลัพธ์:
ตัวแปร | ผลลัพธ์ |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
จอแสดงผลติดอยู่กับบัส SPI ผ่านคอนโทรลเลอร์ที่ 0xf992_4000
เราสามารถแยกข้อมูลนั้นออกจากต้นไม้อุปกรณ์
สตริง SPI Controller Compat คือ qcom,spi-qup-v2
ในเคอร์เนลผู้ขายไดรเวอร์ SPI คือ drivers/spi/spi_qsd.c
ในการฉีด 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 ให้อะไรเลย ดังนั้นจึงไม่ชัดเจนว่าไดรเวอร์แสดงผลคืออะไร ดูเหมือนว่าจอแสดงผลโมโนโครม 128x128 คล้ายกับ SSD1306 / SH1107
จากการกำหนดค่าเคอร์เนลที่เราทิ้ง:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
ไบนารี /usr/bin/oledd
เริ่มต้นผ่าน /etc/init.d/start_oledd
เข้าถึงจอแสดงผล OLED ผ่าน SYSFS:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
เราสามารถสะท้อน 1
ไปยังไฟล์ *_on
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!
อุปกรณ์ดูเหมือนจะเรียกใช้ Android โดยไม่ต้อง /dev/binder
คุณสามารถรับเฟิร์มแวร์ได้ที่นี่:
หน้าสนับสนุน 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
พา ธ ไปยังไฟล์และสร้าง symlinks สำหรับ autostart ect ให้ลองแก้ไขเพื่อเปิดใช้งาน ADB
ในเธรด 4PDA Forum ที่เชื่อมโยงเป็น POC สำหรับการดำเนินการรหัสระยะไกล Vuln ซึ่งอนุญาตให้เริ่ม telnet daemon ตอนนี้มีสคริปต์ Windows เท่านั้นที่เชื่อมโยงกัน เราควรสร้าง Shellscript เพื่อเรียกใช้
เพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่
เราใช้เครื่องมือบรรทัดคำสั่ง Rust และสคริปต์เชลล์ที่ใช้ Curl
ด้วย open.sh การเข้าสู่ระบบจะทำโดยอัตโนมัติ
มีการใช้งานทับทิมเกินไป https://github.com/ecdsa521/tpown/tree/main
ไฟล์. dtb ของ HW Rev V3 และ V4 ถูกเก็บไว้ใน 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