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
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を入力します
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
です。メインライン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
ファイルへのパスとオートステルトECTのシンリンクを作成します。 ADBをアクティブにするためにそれを変更してみましょう。
リンクされた4PDAフォーラムスレッドには、Telnet Daemonを起動できるリモートコード実行VulnのPOCがあります。現在リンクされているWindowsスクリプトのみがあります。それを呼び出すためにシェルスクリプトを構築する必要があります。
これについてはこちら
Rust Command LineツールとCurlベースのシェルスクリプトを実装しました。
open.shを使用すると、ログインは自動的に行われます。
rubyの実装もありますhttps://github.com/ecdsa521/tpown/tree/main
HW REV V3およびV4の.DTBファイルはDTB_FILESに保存され、DTVIで視覚化できます
4PDAに別の改訂版でポイントを掲載する画像が投稿されています。私たちのデバイスでも同じかもしれません。ここを見てください
4PDAは、インストールされているファームウェアをバックアップするいくつかの方法を見つけました。
https://4pda.to/forum/index.php?showtopic = 669936&view=findpost&p=110738476
usb_composition
902B
nyy
永続的なADBD接続は、今すぐERATIBLEDを使用する必要があります
クライアントのケーブルごと:
adb shell
再起動した後、アクセスポイントがダウンしているようです。したがって、ADBDを再度非アクティブ化する必要があります
adb shell
usb_composition
tplink
nyy
adbd
開始する方法を見つけます