JSNice - we make even obfuscated JavaScript code readable. |
ETH ZurichのComputer Science Department、Software Reliability Labは「Statistical renaming, Type inference and Deobfuscation」においてJavaScriptの難読化とは逆の処理をおこなうWebサービスを公開した。難読化されたJavaScriptを読む際に利用できるほか、開発中のJavaScriptソースコードを整理する目的でも活用できる。
JavaScriptのソースコードを難読化する目的はいくつかある。まずひとつはパースする文字列の量を減らすことで少しでも処理速度を高速化したいという目的。もうひとつは処理そのものを他のユーザや開発者に知られたくない場合などに利用される。しかし原理上、JavaScriptのソースコードを他人に読まれないようにすることは難しい側面がある。
JSNiceは難読化の逆の処理(deobfuscate)を実行するサービス。数千のオープンソースプロジェクトの取り組みを参考にすることで、難読化された変数などをより適切な名前に振り直すといった処理を実施してくれる。こうした処理は難読化されたJavaScriptソースコードを読むためのみならず、開発中のJavaScriptソースコードの変数や処理などをより適切なものに書き換えるためのリファクタリング機能としても活用できる。