前回更新より1年…その間何をしていたかは想像にお任せします。その間、MeltschmelzenをほぼほったらかしだったのでGUIから作り直しちゃいました。
ドライブ、ディレクトリ、ファイルリストボックスをWIN32APIを駆使して自前で作成しちゃいました。
理由はVB標準だとリサイズがうまくいかないから。意外と作成は簡単だったけど、ファイル名でソートしないと…
あと決定事項を書いておこう。
現状ここまでしか考えていませんです。何かあったらメールか掲示板の方に反応をください。
てか、このサイトのバックアップがいつの間にか消えてる…(T_T)
前回の更新から間が空いてすみません。ちょいと休暇を取ってまいりました。で、現在の進行状況は以下の通りとなっています。
なるべく早くリリースしたいと思っとります。なるべく早くね。
主に7-ZIP32.DLL周りを修正
暑い…
用意ができました。
修正は随時。なるべく迅速に。
とりあえず、RAR書庫は回避可能のようです。様子を見てMeltshmelzen beta3aとしてリリースします。
開発者向け情報
■RAR書庫脆弱性回避方法 - UNRAR.DLLを直接使うソフト限定
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
..\を空白文字にしてしまう。具体的なコードは以下の通り。
Dim lngHandle As Long
Dim lngStatus As Long
Dim lngResult As Long
Dim udtROAD As RAROpenArchiveData
Dim udtRHD As RARHeaderData
With udtROAD
.ArcName = "C:\hogahoge.rar" '書庫のパスは自分で変更してください
.OpenMode = RAR_OM_EXTRACT
.CmtBuf = String$(256, vbNullChar)
.CmtBufSize = 256
End With
lngHandle = RAROpenArchive(udtROAD)
lngStatus = RARReadHeader(lngHandle, udtRHD)
Do Until lngStatus <> 0
'Replace関数を利用して"..\"を""に変換する
lngResult = RARProcessFile(lngHandle, _
RAR_EXTRACT, _
"", _
Replace(Mid$(udtRHD.FileName, 1, _
Instr(udtRHD.FileName,Chr$(0))), "..\", ""))
lngStatus = RARReadHeader(lngHandle, udtRHD)
Loop
RARCloseArchive lngHandle
果たして"..\"だけを対策すればいいのだろうか。他にどんなことをすればいいか悩みます。
財布を無くすわ、ノートPCのオーバーホールが大変だった…。財布は幸運にも警察に届けてくださった人がいたので本当に感謝!もし現金入りの財布を落としていたら…、と思うと自分の危機管理の無さにへこんだ5日間でした。さて今回の更新ですが、
書庫の脆弱性問題に関して、私は「DLLの作者が対応するまで待つ」ということしました。対策ができたら随時対応していきます。