Web、サーバ、ソフトウェア、バグ・脆弱性 などの情報を何人かで集まって書いていく IT/Web情報系ブログ

【完全版】PS2251-07(2307)用Psychson(BadUSB)パッチの適用方法

投稿日:   最終更新日:2017/05/05  投稿者:xx2zz

PS2251-07(2307)でPsychsonを動かすパッチを公開しましたが、手順が複雑かつ不完全だったため、改めて簡略化したパッチファイルと手順を公開します。

スポンサーリンク

差分ファイル

このファイルには以下の変更が含まれています。

注意: このファイルはPS2251-07(2307)でPsychsonのカスタムファームウェアを動かす実験を目的とした研究資料です。動作の保証をするものではありません。差分適用後のプログラムを動作させたりカスタムファームウェアを書き込むことでデバイスやPCが使えなくなったり壊れても責任を負えません。自己責任で利用してください。

“Psychson2307_diff” をダウンロード Psychson2307_diff_20170401.zip – 233 回のダウンロード – 5 KB

動作確認デバイス

以下のUSBメモリで動作を確認しています。

TOSHIBA TransMemory-MX V3SZK-016G

Action specified: GetInfo
Gathering information...
Reported chip type: 2307
Reported chip ID: 98-3A-98-A3-76-51
Reported firmware version: 2.15.55
Mode: Firmware

TOSHIBA TransMemory-MX TNU-B008GK

Action specified: GetInfo
Gathering information...
Reported chip type: 2307
Reported chip ID: 98-DE-98-92-72-50
Reported firmware version: 2.03.53
Mode: Firmware

その他必要なもの

2307用CFWのビルド手順

  1. brandonlw/Psychsonからソースコードをダウンロードして展開する
  2. 「Psychson2307_diff_20170401.zip」の中身を1.で展開したPsychsonのフォルダに上書き・追加する
  3. patchコマンドで差分を適用する (動画)
  4. patch -p0 < firmware-firmware2307.diff
    patch -p0 < DriveCom-DriveCom2307.diff
    
  5. 「firmware_ps225107.rar」の中から「FW07FF01V10153M_20140116.bin」と「BN07V106M.BIN」を取り出して「firmware」フォルダの中に置く
  6. 「firmware」フォルダの中に置いた「fire2db.pl」を実行する (要Perl 5)
  7. build.batを実行する

ペイロードの埋め込み

上で作成したファームウェアファイル(bin/fw.bin)に必要に応じてペイロードファイルを埋め込みます。
参照: https://github.com/brandonlw/Psychson/wiki/Embed-HID-Payload-into-Custom-Firmware

2307用CFWの書き込み手順

  1. VS2012で差分適用後のDriveComをビルドする
  2. 「firmware_ps225107.rar」の中から「BN07V502TAW.BIN」を取り出す
  3. 「BN07V502TAW.BIN」をバイナリエディタで開きオフセット0x4D85, 0x4D86の値を00に書き換える
  4. DriveCom.exeでファームウェアを書き込む
  5. DriveCom.exe /drive=E /action=SendFirmware /burner=BN07V502TAW.BIN /firmware=fw.bin
    

- BadUSB , , ,

Comment

  1. uduki0424 より:

    3.0で動かないバグはどこで修正されているのでしょうか?
    またそれは2303のチップでも3.0で動かすことができますか?

    • xx2zz より:

      >3.0で動かないバグはどこで修正されているのでしょうか?
      firmware-firmware2307.diffの以下の部分になります。

      - USBCTL = bmAttach | bmSuperSpeed;
      + USBCTL = bmAttach | bmHighSpeed;

      >またそれは2303のチップでも3.0で動かすことができますか?
      おそらく動くと思いますが、2303のデバイスが手元にないため動作は確認できていません。

      • uduki0424 より:

        教えていただきありがとうございます
        試しにusb.cのUSBCTL = bmAttach | bmSuperSpeed;を
        USBCTL = bmAttach | bmHighSpeed;に書き換えて試してみましたが
        実行されずメモリのプロパティを見ると
        デバイス USB\VID_13FE&PID_5201\5&cc190b6&0&2 を移行できませんでした。

        最後のデバイス インスタンス ID: USB\VID_0FCE&PID_5198\CB5A1VC2HC
        クラス GUID: {36FC9E60-C465-11CF-8056-444553540000}
        場所のパス:
        移行ランク: 0xF000FFFF0000F130
        存在: false
        状態: 0xC0000719
        となっていました
        自分ではどうにかできそうにないので2307のチップを探そうと思っています
        いまさら質問に答えていただきありがとうございました

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事