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がリリースされました
1999年
7月3日:IDA 3.84
- SDKに追加されたプラグインのサポート
9月21日:IDA 4.0
- Windows GUIバージョン(テキストモードリストのみ)。今ではクラシックなIDAアイコンが初登場。
2000年
6月19日:IDA 4.10
- タイプシステム(標準関数プロトタイプ)
- PIT(パラメーターの識別と追跡)
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の
非公式の脆弱性修正プログラムが非常に人気になる
2007年
IDA 5.1
- Intel Mac OSXデバッガー
- シンプレックスベースのスタックポインター分析
https://www.hex-rays.com/blog/simplex-method-in-ida-pro
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デコンパイラー
2019年
IDA 7.3
- PPC64デコンパイラ
- UNDO機能
IDA 7.4
- Python3のサポート
2020年
IDA 7.5
- フォルダビュー
- MIPSデコンパイラー
2021年
IDA 7.6
- ネイティブARM64macOSビルド