そして、管理者は問題を解決する方法を探し始めました。
dd-wrt.comからファームウェアを30分間グーグルで見つけました。
その機能を見て、喜んで、マニュアルを探し始めました-このファームウェアをすべて同じようにアップロードするにはどうすればよいですか(D-Linkの開発者が書いた標準的なフラッシャーについてはよくありません)
DBGコンソール経由でファームウェアをアップロードするためのマニュアルを見つけました。 しかし、問題は-Windowsユーザー向けのマニュアルが設計されていますが、手元にWindowsはなく、Linuxだけが正しいことです...
まあまあ。 管理者は理解しました。 詳細-カットの下。
DBGコンソール
D-Link製品にはこのような興味深い機能があります-鉄片が電源に接続されると、2秒間(デフォルト値)ブートローダーがポート9000でtelnetサーバーを起動します。
2秒でログインしてハードウェア「^ C」を送信すると、ダウンロードプロセスが停止し、エンジニアリングコンソールにアクセスできるようになります。そこで、たとえば、非公式の盗まれたLinuxベースのファームウェアを入力できます。 始めましょう。
準備する
ちょっとした理論:
すぐに予約します。10〜20秒の休止時間でルーターの電源を約20回引きましたが、まだ鉄片を押してエンジニアリングコンソールを提供することができました。 原則として、それは安全です-ルータが完全にロードされるまで待つだけで、電源を再び引き出すことができます。
別の警告-telnetのLinuxバージョンは、接続時にCtrl-Cを押すことで '^ C'の送信を完全に拒否します。moskをオンにする必要がありました。1文字ではなく、2文字を送信します。
そしてまだ-エンジニアリングコンソールで封印することを恐れないでください、すべてのコマンドが検証され、コンソールはあなたに封印させません。
練習しましょう:
まず、tftpサーバーが必要です。
私たちは誰がどのように知っているかを入れました(私はyumを使用しました):
yum -y intall tftp-server
デフォルトでは、tftpはxinetdからジャークするので、/ etc / xinetd.d / tftpを少し編集する必要があります。disable= noパラメーターを設定し、サーバーのルートディレクトリを好みに合わせて編集します(デフォルトでは-tftpboot /、変更しませんでした)。
xinetdを再起動することを忘れないでください。
次に、ここに移動します: dd-wrt.com/dd-wrtv3/dd-wrt/downloads.html
そこから-ファイルマネージャーのようなもので、/ stable / dd-wrt.v24 SP1 / Consumer / Dlink / DIR-400ディレクトリに移動し、linux.binおよびdir400-firmware.binファイルを/ tftpboot /ディレクトリ(または何でも)にダウンロードしますconfigで変更しました)。
実験用ルーターからすべてのイーサネットケーブルを引き出し、すべてのWiFiクライアントを切断し、鉄片のLANポートの1つに固定します。
静的IP 192.168.0.2をマシンに割り当て、192.168.0.1をルーターに割り当てます。
楽しもう
さらなるアクションにはフォーカスが必要です。
コンソールに入力します
telnet 192.168.0.1 9000
(まだEnterキーを押さず、単に時間を節約するために入力します-約2秒覚えていますか?)
ルーターから電源を引き出し、数秒待ってから電源を入れ、3つに数え、Enterを押します...
次にtelnetセッションのトランスクリプトが来ます。太字はコンソールに入力したもの、斜体はコメントです。
[root@localhost ~]# telnet 192.168.0.1 9000
Trying 192.168.0.1... ( Ctrl V C, )
^C
Connected to 192.168.0.1.
Escape character is '^]'.
^C ( Ctrl-VC)
RedBoot> RedBoot> ^C
^C ( )
RedBoot> ( Ctrl-C, ...)
RedBoot>
RedBoot> ip_address -l 192.168.0.1/24 -h 192.168.0.2 ( IP , tftp- 0.2)
IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.2
RedBoot> fis init ( )
About to initialize [format] FLASH image system - continue (y/n)? y ( y - , )
*** Initialize FLASH Image System
And a descriptor for the configuration data size = 10000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> load -r -b 0x80041000 linux.bin ( - , tftp )
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x803bafff, assumed entry at 0x80041000
RedBoot> fis create linux ( :) )
... Erase from 0xbfc40000-0xbffba000: ........................................................
... Program from 0x80041000-0x803bb000 at 0xbfc40000: ........................................................
prog_ok
flash_addr = 0xbfc40000
mem_addr = 0x80041000
entry_addr = 0x80041000
length = 0x37a000
img_size = 0x37a000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> fconfig ( , . .)
Run script at boot: true (Enter)
Boot script:
.. fis load -l vmlinux.bin.l7
.. go
Enter script, terminate with empty line
>> fis load -l linux
>> exec
>> (Enter)
Boot script timeout (1000ms resolution): 2 ( - telnet ^C :) , )
Use BOOTP for network configuration: false (Enter)
Gateway IP address: ( Enter , , - )
Local IP address: 192.168.0.1 (Enter)
Local IP address mask: 255.255.255.0 (Enter)
Default server IP address: 192.168.0.100 (Enter)
Console baud rate: 9600 (Enter)
GDB connection port: 9000 (Enter)
Force console for special debug messages: false (Enter)
Network debug at boot time: false (Enter)
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> reset ( )
すべて、再起動後、ルーターは完全なLinux内部でhttpおよびtelnetを介してIP 192.168.1.1で利用可能になります(それからSSHを有効にできます)。
ちょっとしたニュアンス:最初にhttp経由でルーターに行き、ユーザー名とパスワードを設定する必要があります-それからだけtelnet経由でルーターにアクセスできます。