2017年11月8日水曜日

【誰得】携帯動画変換君をWindows10で使う【今更?】

ちなみに中の人はCもC++も全然解ってません。





<この話題今更すぎません?>
万能フロントエンドとして個人的に重宝している携帯動画変換君(3GP_Converter)。

ガラケー(A5505SA/W63SA)時代は携帯動画/音声変換、ここ最近はwaifu2xOptiPNGとやりたい放題です。
ちなみに動画ffmpeg音声qtaacencをMP4Boxで結合するのが一番品質が高いと思います

しかーしWindows10で使おうとすると主に以下の症状が出る。

①avscheck.exeがばくはつして氏ぬ
②付属のffmpegがばくはつして氏ぬ
③Setup.exeで設定ファイルを指定して起動するとドラッグアンドドロップができない
参考:携帯動画変換君をWindows10で無理矢理に作動させる - ぼくんちのTV 別館

まあ①はavscheckをリネーム、②は今どきのffmpegを使えばいいので対応は楽。
試せてないけどQT3GPPFlattenとATOMChanger使えればガラケーに積めるファイル作れるはず…ここ最近はffmpegのAAC音質クソだったけど

というかパッチありました。コレ当てればOKでしょう。試してないけど。
【Windows10対応】 携帯動画変換君 魔改造版 – 機械仕掛けのキュリオシティ

魔改造ってどういう改造してるんでしょうね?いっそSetup.exeにもパッチ当てて③も対処してくれればいいのに(謎の上から目線)





<ほぼコピペじゃねーか>
ググってみるとSetupから起動するとドラッグ(ryできないのはSetupが子プロセスに管理者権限を継承するからとの事。

だから通常権限のexplorerから3GP_Converterを起動するとドラッグ(ryできるって訳だね。

そこで試してみるとSetupは単純にカレントディレクトリの3GP_Converterを叩いてる模様。脆弱性じゃ?

つまり間に権限の継承を断ち切る何かを噛ませば回避可能。本当はSetupを改造するのが一番なんだけどバイナリ改造する知識が無い



という訳でいつもの動けばよかろう逝っとけコードです(しろめ)

肝心要な降格部分は有名なFirefoxのコードをコピペして動くようにいじっただけというこの(GPL汚染)

デスクトップ(Progman)からトークン取得して通常な権限で起動するという処理は判るけど実装は解ってません(無知)

しかし非コピペ部分から醸し出される素人感がすごいですね…変数ってどうやって確保量決めるんでしょう?

一応gccは-Wallでエラー吐かなかったので大丈夫…?脆弱性は知りません('A`)

使い方はコードの通り3GP_Converterを3GP_Converter-execにリネームしてmakeした奴を3GP_Converterとして投げ込むだけ。
これさえバッチファイルで用意しないと出来ない人はおらんよな?

ただ出力先とかの設定ファイルが別になるので再設定が必要。初回だけだけどね。


gcc等コンパイルできる環境が無い、何やってんのか全く解らない人(64bit版限定)は自己責任でこちら↓
3GP_Converter-DnD-Win10.zip
※64bit版RubyのDevkit(gcc4.7.2)で出力したので64bit版専用のはず。-m32指定したらエラー吐いたので32bitバイナリはありません※


※追記※

Setupの互換性の設定が全部解除された状態じゃないと3GP_Converterが起動しません(´・ω・`)

あと元ソースにあったWin2k/WinXP回避部分は無視したのでVista以前だとエラーで氏ぬと思います。Win10以外だと必要無いけど

※追記 - 2021/03/28※
自己責任バイナリで一瞬DOS窓が映るのを修正しました(´・ω・`)make時に-Wl,--subsystem,windows足しただけ
あとオマケでデュアルディスプレイ時に「変換君」設定ファイルセレクターがモニタ1とモニタ2の間に表示される件の対策を蔵出し。
自分用に作ってそのまんまになってた

…ぶっちゃけなんで動いてるのか解らないのでバイナリはありません。

0 件のコメント:

コメントを投稿