MIPSEL コア (リトル エンディアン MIPS) を搭載したデバイスの内部に侵入しようとしています。付属のソフトウェアが壊れていて、意図したとおりに動作しないためです (また、毎月何千台も購入していないため、メーカーは私を助けてくれません)。
このデバイスには telnet コンソールがあり、再配置可能なコードを持つ共有オブジェクト (.so ファイル) を変更するファームウェア アップグレードが既に行われています。その上で呼び出されることがわかっている関数が 1 つあります。そのため、このデバイスの特定の機能にアクセスし、/etc/passwd を変更するためのバイナリを既に実行しているので、telnet で接続できます (これは、カスタムを手動でフラッシュした後に実行できます)ファームウェア自身)。
私はすでに両方のファイルを「objdump」しており、両方を分解しています。
私の質問は:
ボックスでコードを実行できるように、元のライブラリの特定の関数をカスタムの関数に置き換えるにはどうすればよいですか? objcopy が機能することは知っていますが、これを実現するためのドキュメントを入手するのはちょっと難しいです。
私がやりたいのはウイルスのようなものですが、それを配布したり、他の人のデバイスに侵入したりしたくありません (ちなみに、私が話しているこのデバイスは非常にまれです)。
アップデート
バイナリを手動でマージし、カスタム関数を「バイナリで」コピーしてから、再配置リテラルを手動で変更しました。元の共有オブジェクトに既にリンクされている外部関数のみを使用するように注意しました。ただし、デバイスの起動時に (奇妙なことに) 使用される関数を変更したため、デバイスからロックアウトされ、それを更新できる脆弱性を持つメイン バイナリが機能しなくなりました。