MalwareTechは3月19日(米国時間)、「Best Languages to Learn for Malware Analysis|MalwareTech」において、マルウェアの分析やリバースエンジニアリングなどに適したプログラミング言語トップ3を紹介した。ただし、紹介されているプログラミング言語はモバイル向けのマルウェアやIoTなどは対象として含まない。IoTデバイスやモバイルデバイスを対象としたマルウェアを解析する際は特化した技術が必要だとしている。

紹介されているプログラミング言語は次のとおり。

  1. アセンブラ - 人間が読める形式のマシンコードであり、CPUが理解できる形式に近いプログラミング言語であり、リバースエンジニアリングのツールキットとして最も重要なツール。アセンブラを学ぶ場合にはどのインストラクションセットを学ぶかを選ぶ必要があるが、今回の目的においては主にi386かx86_64を選べばよい

  2. C言語 - マルウェアではドキュメント化されていないAPIが使われることがある。オペレーティングシステムを逆アセンブルして調査することはかなり困難であるため、代わりにReactOSやWindows Research Kernelのソースコードを調査することで、こうしたAPIを調べることができる

  3. Python - 開発効率の高いプログラミング言語。複数のオペレーティングシステムで動作するため、移植する手間がかからない

  • WindowsびLinuxのC言語ドキュメントの例 - 資料: Malwaretech提供

    WindowsとLinuxのC言語ドキュメントの例 - 資料: Malwaretech

記事では、マルウェア分析の道は簡単に短縮できるものではないが、プログラミング言語はこうした分析への手助けになるとしている。特にアセンブラやC言語のようにレベルが高くない言語を学んでおくことでコンピュータの動作を理解しやすくなるほか、他のプログラミング言語の学習においても役に立つと説明している。