はじめに
先日からIDA7.3のデモ版をありがたく使わせていただけることになりましたが、カラーテーマ設定の方法が変わっていたので、設定方法をまとめました。手順はページ内の「IDA7.3 DEMO版でのWorkaround」の項目にまとめていますので、1秒も惜しい方はそちらまでどうぞ。
Importが見当たらない
初期設定は汚れなきあの配色ですね。でもやっぱり黒いIDAが恋しくなります。

ところが、カラーテーマをインポートしようと思いましたが、「Import」ボタンが見当たりません。

どうやらIDA7.3から設定方法が変わったようです。
公式の情報
公式様からカラーテーマに関するチュートリアルが出ております。
IDA Tutorials: CSS-based styling
https://www.hex-rays.com/products/ida/support/tutorials/themes.shtml
短くまとめると、
- これからはcssを使って配色を定義するよ。
- themesフォルダにtheme.cssを含んだフォルダを作ればテーマを読み込めるよ。
- _baseフォルダは各テーマから読み込むようにしてね。
といった感じでしょうか。ちなみに、テーマのインポートという観点では、Windows版では以下のフォルダを参照するようです。
$IDA_INSTALL/themes/%APPDATA%\Hex-Rays\IDA Pro\themes
ということで、これに従って設定してみることにしました。
こんどは_baseが見つからない
上記ページの内容に従って、%programfiles%\IDA Demo 7.3\themesフォルダを見てみましたが、DEMO版では、このフォルダは空のようです。

また%appdata%\Hex-Rays\IDA Pro\themesフォルダも確認しましたが、こちらは.\default\user.cssというファイルがあったものの、_baseフォルダはありませんでした。
そのため、_baseフォルダをインポートする設定のcssを読み込もうとすると当然エラーになってしまいます。
IDA7.3 DEMO版でのWorkaround
先に手順をまとめておくと、次のとおりです。
- _baseフォルダを読み込まないようにコメントアウトする。
- themesフォルダ配下にテーマ名のフォルダを作り、theme.cssを配置する。
- IDAを起動し「Colors」からテーマを変更して適用する。
1. _baseフォルダを読み込まないようにコメントアウトする
結局の所は、theme.cssで_baseフォルダの読み込みをしないようにすればtheme設定ができるようになりました。問い合わせしたわけではないのでサポートされるのかは不明ですが、とりあえずカラーテーマを変えたい人は自己責任で試してみてください。ちなみに、チュートリアルには以下のように書いてあることをお忘れなく。
The _base theme holds all the CSS directives that are required for IDA to work correctly, and therefore it must be "imported" by other themes
以下は0xItxさんが公開している、nightfallの例です。theme.cssの1行目をコメントアウトしました。

2. themesフォルダ配下にテーマ名のフォルダを作り、theme.cssを配置する
(.cssファイルの編集が必要ない場合は、このステップからスタートします。)
%appdata%\Hex-Rays\IDA Pro\themesフォルダ配下に.\nightfall\theme.cssとして配置します。
公式のチュートリアルを読む限り、このフォルダであればバージョンアップしても継続して読み込まれるようになるようです。

3. IDAを起動し「Colors」からテーマを変更して適用する
IDAを起動して、「Options」→「Colors...」を開きます。「Current theme」のリストボックスを見ると、先程配置したテーマが選べるようになっています。(ディレクトリ名で表示されています)

設定したいカラーテーマを選択して、最後に「Apply」を押せば適用完了です。黒くなりました!あとは他の設定も煮るなり焼くなりすればいいですね。

従来使用していた.clsテーマを使用したいとき
公式のチュートリアル内で、.clsファイルを.cssに変換するためのスクリプトまで公開してくださっています。優しいですね!
port_clr72_to_css.py
https://www.hex-rays.com/products/ida/support/tutorials/port_clr72_to_css.py
おわりに
これにて無事、黒いIDAを使うことができるようになりました。本文中にも記載しましたが、サポートに聞いたわけではないので、自己責任でお願いします。
え、じゃあPro版のdarkテーマってどんな感じ?とか色々と気になってしまいましたが、お金持ちのお兄さんに教えてもらいましょうw
もしDEMO版で_baseフォルダのありかや、正しいカラーテーマ設定方法をご存知の方がいれば、ぜひコメントでお知らせください。
