中国のIPカメラの破壊と復元

この話は、1年以上前に、比較的安い中国製のFalcon Eye FE-MTR300 P2P IPカメラを組織で購入したことから始まりました。



画像






すべてが良かったと言うことではない...すべてが平均だった。 そして、カメラソフトウェアを更新すると何かが改善されるように思えました。 Falcon Eye、Tenvis、Foscam、および場合によっては他のいくつかの会社のモデルがほぼ一致することが判明しました。 どこかでボタンがより快適になり、どこかでロシアのインターフェースになります。 そして、私たちは決めました!



Tenvis TR3818の類似モデルのカメラソフトウェアを更新しました。 その後、彼らはさらに読み、別のカメラからより急なファームウェアにアップグレードすることが可能であると決定しました。



更新後、カメラは長い寿命を命じました。 電源をオンにしたときにモーターがチェックしなかった、スピーカーがカサカサ音を立てなかった、LEDが点滅しなかった。 LANインターフェイスのLEDのみが点灯し、点灯すると、1つのブロードキャストパケットが送信されていました。



そのような事件の後、残りのカメラはその場所に吊され、「レンガ」は私たちと一緒に暮らすようになりました。 時々彼を蘇生する試みがありました。 カメラが分解され、コンソールを介してアクセスするためにはんだ付けできるプラットフォームが見つかりました。



画像

(3.3V、GND、TX、RXを示すワイヤの下にあります)



画像

(カメラボードアセンブリ)



USB-TTLコンバーターを使用する必要がありました。



画像

(連絡先がある)



パテまたはハイパーターミナルを介してコンソールに接続され、次のように表示されます。

U-Boot 1.1.3 (Aug 26 2014 - 17:15:00)



Board: Ralink APSoC DRAM: 16 MB

relocate_code Pointer at: 80fb0000

spi_wait_nsec: 42

spi device id: c2 20 17 c2 20 (2017c220)

find flash: MX25L6405D

raspi_read: from:2b000 len:1000

.raspi_read: from:2b000 len:1000

.============================================

Ralink UBoot Version: 3.6.0.0

--------------------------------------------

ASIC 5350_MP (Port5<->None)

DRAM_CONF_FROM: Boot-Strapping

DRAM_TYPE: SDRAM

DRAM_SIZE: 128 Mbits

DRAM_WIDTH: 16 bits

DRAM_TOTAL_WIDTH: 16 bits

TOTAL_MEMORY_SIZE: 16 MBytes

Flash component: 8 MBytes NOR Flash

Date:Aug 26 2014 Time:17:15:00

============================================

icache: sets:256, ways:4, linesz:32 ,total:32768

dcache: sets:128, ways:4, linesz:32 ,total:16384



##### The CPU freq = 360 MHZ ####

estimate memory size =16 Mbytes

raspi_read: from:80028 len:6

.

start time:31742632l

File: cmd_net.c, Func: do_my_tftpb, Line: 69



netboot_common, argc= 3



NetTxPacket = 0x80FE3C80



KSEG1ADDR(NetTxPacket) = 0xA0FE3C80



NetLoop,call eth_halt !



NetLoop,call eth_init !

Trying Eth0 (10/100-M)



Waitting for RX_DMA_BUSY status Start... done



Header Payload scatter function is Disable !!



ETH_STATE_ACTIVE!!

Using Eth0 (10/100-M) device

TFTP from server 51.204.51.204; our IP address is 192.168.1.5

Filename 'xx.img'.



TIMEOUT_COUNT=10,Load address: 0x80100000

Loading: ====================broadcast get file

T ====================broadcast get file



could not get file, cancel update

ret = 1



Please choose the operation:

1: Load system code to SDRAM via TFTP.

2: Load system code then write to Flash via TFTP.

3: Boot system code via Flash (default).

4: Entr boot command line interface.

7: Load Boot Loader code then write to Flash via Serial.

9: Load Boot Loader code then write to Flash via TFTP.



You choosed 3

0



3: System Boot system code via Flash.

## Booting image at bc0e0000 ...

raspi_read: from:e0000 len:40

.Magic Number,85190320

Bad Magic Number,85190320







悪い、彼は言う、あなたは魔法の数字を持っている。 そして、彼は私の選択した他のメニュー項目に反応したくありません。 これでカメラへの最初のアプローチが完了し、彼女は部門の棚に戻りました。



強度を獲得して、別のアプローチを取りました。 私たちの場合、RXコンバーターをRXカメラに、TXをTXに接続する必要があることを理解するために神経を使う必要がありました。 マーキングが誤って適用されたか、2つのうちのいずれかです。 カメラはメニュー項目の選択に応答し始めましたが、これはマジックナンバーの性質を説明しませんでした。



次に、Tenvis TR3818のファームウェアと同様のカメラのいくつかのファームウェアがダウンロードされ、tftpサーバーが構成され、コマンドインターフェイスの入り口であるアイテム番号4が選択されました。 実際に 可能なコマンドのリストを取得します。tftpboot( tftpを使用してファイルをメモリとbootmにロードします)-メモリからアプリケーションをロードします。



手順は次のとおりです。





結果は次のとおりです。





これは、配線を切り替えたり、インターネットをシャベルで動かしたり、オフセットを計算したり、中国の天才の作品の論理を復元したりするよりも、はるかに興味深く読みにくいです。 おそらくこれは、次回にファームウェアテクノロジーを急いで使用することを控えるために私たちに教えてくれるはずです。



そしてありがとうございます! Habrを喜ばせたいという欲求がなければ、おそらくこのカメラは私たちの部門に長い間立っていたでしょう。



All Articles