IDA

Our journey-Hex Rays

30年前、IDAは最初のバージョンをリリースしました。

背景

1990年代初頭、DOSはPCで最も人気のあるOSであり、主に8086が使用されており、たまに80286も使用されていました。 (80386は高額だったため)一般的なPCには最大1MBのRAMが搭載されており、集中的なタスクにはメモリー不足でした。 しかし、ソフトウェア開発業界は急速に成長していたため、デバッグおよび診断ツールが必要でした。 デバッガーを除いて、逆アセンブラーはほとんどバッチベース(非対話型)でした。一番人気/一番高額製品はVコミュニケーションズのSourcerでした。 開始分解ポイント、可能な関数名、およびセグメンテーション情報のリストを含む「定義ファイル」を用いる点で、対話性は限界がありました。 定義ファイルを変更するたびに、ファイル全体の逆アセンブルを最初からやり直す必要があり、当時の使用可能なPCでは長時間を要しました。 ランタイムデータのほとんどはメモリに保存されていたため(DOSでは最大640KB)、大きなファイルでは失敗する可能性がありました。

逆アセンブルに使用できるデバッガーがいくつかありましたが、カスタム名やコメントなどのRE機能がなかったため、 深いREはテキストエディターもしくはプリントアウトをマークアップすることによって行われることがよくありました。

IDAは新しいパラダイムを提供しました。ファイルを1つずつ逆アセンブルし、ユーザーが見ているフラグメントのみをロードすることにより、 ファイル全体をメモリにロードする必要がなくなりました。 名前の変更とコメントは、変更のたびに分解全体をやり直すのではなく、「ジャストインタイム」で行われました。 データベースはすべての変更を保存しました。作業は時間の経過とともに段階的に短くなりました。 しかし、このアプローチがユーザーに理解されるまでには時間がかかりました。

タイムライン

1990年後半

開発開始
(コアソースファイルの1つが1990年10月25日に作成されました。)

1991年

IDA 0.1(プログラムバナーには「5月20日」と記載されているが、実際のリリースは1日後の5月21日)




5月22日:MicrosoftがWindows 3.0をリリース

9月17日:LinusTorvaldsがLinuxリリース

1993年

9月16日:IDA 1.8

  • custom UIの代わりにTurboVision

1994年

IDA 2.0

  • IDCスクリプト言語が追加されました。
  • シェアウェア配布の開始(主にFidoNetとBBS、一部のFTP経由)
  • 追加のプロセッサのサポート(8080、8085、Z80)
  • NEファイル形式のサポート(16ビットWindows以降のOS / 2)

1994年

Cristina Cifuentesがdcc逆コンパイラーによる「逆コンパイル技術」)論文発表。 Dcc Decompiler

1995年

8月15日:Windows95がリリースされました

1996年

IDA 3.6


DataRescueがヨーロッパでIDAの配布を開始

CSOが北米でIDAの配布を開始

1999年

7月3日:IDA 3.84

  • SDKに追加されたプラグインのサポート

9月21日:IDA 4.0

  • Windows GUIバージョン(テキストモードリストのみ)。今ではクラシックなIDAアイコンが初登場。

2000年

6月19日:IDA 4.10

  • タイプシステム(標準関数プロトタイプ)
  • PIT(パラメーターの識別と追跡)

2001年

3月22日:IDA 4.17

  • Wingraphを使用したグラフとフローチャート

マイクロコードを使った実験

2002年

4月:Boomerangデコンパイラーの開発が開始  http://boomerang.sourceforge.net/2004.php

6月:Desquirrデコンパイラープラグインがリリース  http://desquirr.sourceforge.net/

2003年

1月:ユーザー提供のWindows PEデバッガプラグイン(Idbg)

2月12日:IDA 4.5

  • 統合デバッガー

10月27日:IDA 4.6

  • 64ビットアドレス空間のサポート。AMD64の分解。

5月:実際のトロイの木馬での最初の逆コンパイラーの結果。  http://www.datarescue.com/laboratory/vd2.htm

2004年

8月30日:IDA 4.7

  • 断片化された(チャンクされた)関数のサポート
  • Linuxコンソールバージョン
  • リモートクロスパターンデバッグ

8月4日IDAPython 0.5.0GergelyErdelyiからリリース


9月:IDAPythonがVirusBulletinカンファレンスで発表

2005年

3月15日:IDA 4.8

  • 64ビットリモートデバッガー

Hex-RaysSAとして登記
Ilfakがhexblog.comへの投稿を開始
12月14日:WMF脆弱性ゼロデイ攻撃 zero day attack
12月31日:Ilfakの 非公式の脆弱性修正プログラムが非常に人気になる

2006年

6月3日:IDA 5.0

  • 組み込みのグラフビュー

2007年

IDA 5.1

5月11日:Hex-Rays decompiler betaテストが開始

9月17日:Hex-Rays Decompiler 1.0リリース

10月25日:Hex-Rays Decompiler SDKリリース


8月8日:www.hex-rays.com開設

2008年

1月1日:Hex-RaysSAがIDAの開発を引き継ぐ

IDA 5.3

  • マルチスレッドデバッグ
  • iPhone、Symbianデバッガー

IDAPython1.0.0がリリース

  • 開発はGoogleCodeに移行

2009年

IDA 5.4

  • Bochs、GDB、WinDbgデバッガー
  • IDAに含まれるIDAPython

IDA 5.5

  • ドッキング可能なウィンドウ
  • 逆アセンブルの左側に関数リストを備えた、今ではクラシックなIDAレイアウトの誕生

IDA 5.6

  • LinuxおよびMacのIDAPythonサポート
  • 64ビットのLinuxおよびMacデバッガー
  • ARMLinuxリモートデバッガ
  • Appcall機能

2010年

IDA 5.7

  • スクリプト化されたプラグインとプロセッサモジュール
  • ARMデコンパイラ

IDA 6.0

  • Windows、Linux、Mac用のクロスプラットフォームQtベースのGUIバージョン

2011年

Bug bounty programが開設。 6.0および5.7の最初の応募と修正

2012年

IDA 6.3

  • ソースレベルのデバッグ

2013年

IDA 6.4

  • ARM64の逆アセンブル

2014年

IDA 6.6

  • x64デコンパイラ

IDA 6.7

  • 逆コンパイラSDKのPythonバインディング

2015年

IDA 6.9

  • ARM64デコンパイラ
  • ARM64Androidデバッガー

2016年

IDA 6.95

  • 公式のAppleデバッガを使用したiPhoneデバッガ
  • PPCデコンパイラー

2018年

IDA 7.1

  • 逆コンパイラマイクロコードAPIのオープン

IDA 7.2

  • Lumina機能データベース

2019年

IDA 7.3

  • PPC64デコンパイラ
  • UNDO機能

IDA 7.4

  • Python3のサポート

2020年

IDA 7.5

  • フォルダビュー
  • MIPSデコンパイラー

2021年

IDA 7.6

  • ネイティブARM64macOSビルド
SSL GMOグローバルサインのサイトシール