1. 程式人生 > 其它 >IDA,IDA PRO 產品介紹

IDA,IDA PRO 產品介紹

IDA理念
這是我們在開發產品時竭盡全力遵循的理念——在此過程中,我們相信我們將開發出能夠為您帶來所需的可靠性、便利性和易用性的軟體。
沒有什麼能打敗人腦
因為我們知道一秒鐘的洞察力仍然勝過百年的處理時間,所以 IDA 反彙編器提供了儘可能多的互動性。實際上,反彙編中的任何內容都可以修改、操作、重新排列或重新定義。
靜態拆解受限
僅僅靜態反彙編並不能說明全部情況。加密或混淆程式碼經常出現在當今的惡意程式碼中;程式碼和資料之間的確切區別是一門藝術而不是一門科學。 IDA 反彙編器的互動性得到了內部指令碼語言、Windows 應用程式/核心偵錯程式、Linux 應用程式偵錯程式、80×86 Mac OS X 應用程式偵錯程式(支援 32 位和 64 位)等等的補充……
必須珍惜創新
作為為我們的產品建立新外掛的額外獎勵,我們舉辦了一年一度的外掛競賽。有用的公共外掛的建立者可以獲得現金獎勵。我們還在名人堂頁面上公佈了這些名字。
時間是本質
組合語言嚮導只看幾個操作碼就知道程式目的的日子已經一去不復返了。今天的病毒和蠕蟲通常是用高階語言編寫的。由於我們獨特的 FLIRT 技術和我們先進的堆疊跟蹤功能,IDA 反彙編器的工作方式儘可能接近原始原始碼。
你最清楚
我們是反彙編器和偵錯程式專家,但您才是真正工作的人。您比我們更瞭解您需要什麼。這就是 IDA SDK 允許您根據您的特定需求擴充套件和定製 IDA 的原因。
安全是我們的重中之重
我們希望我們的使用者在使用我們的工具時是安全的。這就是為什麼除了內部測試、程式碼審查和安全編碼實踐之外,我們還引入了錯誤賞金計劃。報告我們軟體中嚴重錯誤的報告者可以獲得現金獎勵。這樣,我們軟體中的漏洞就會直接報告給我們。當然,我們會立即做出反應並儘快釋出熱修復。

解決方案
Hex-Rays 工具用於解決軟體行業中的關鍵問題。
我們的旗艦產品 IDA Pro 是一款流行但複雜的軟體。 我們經常被問到,IDA 到底是幹什麼用的? 這是一個公平的問題,並不容易回答。 IDA 擁有非常廣泛的複雜用例,這些用例無法用一個引人入勝的單行程式碼來概括。

因此,與其提出描述 IDA 的銷售宣傳,我們決定讓我們的使用者來說話。 以下是來自各種安全專家、惡意軟體分析師和軟體工程師的示例,他們使用 IDA 解決工作流程中的一個關鍵問題,並決定釋出他們的結果。 我們收集了此類出版物的各種連結,並將它們歸入軟體行業的各個細分領域。 希望這可以讓您更輕鬆地瞭解 IDA 如何應用於該領域的實際解決方案。
數字取證
挑戰
當系統被惡意軟體破壞時,就會進行數字取證調查。如果發生基於軟體的攻擊,公司通常會派遣專門的計算機應急響應小組 (CERT) 來消除威脅、評估損害程度並瞭解攻擊是如何實施的,以防止將來發生類似事件。這些團隊必須從計算機、移動裝置、網路裝置甚至分散式系統中收集數字證據。因此,它們必須能夠處理多種二進位制程式碼格式。在許多情況下,程式碼被混淆,目的是使調查更難、更耗時。法醫調查人員需要精確且多功能的工具來幫助他們完成這些任務。

方法
IDA Pro 可以分析在取證調查期間收集的二進位制程式碼。它幾乎可以處理在現代處理器上執行的任何程式碼,並且可以使用自定義指令碼和外掛擴充套件其功能。這使得它在分析嚴重混淆的程式碼時特別有用。 IDA 已經在現場針對真實世界的惡意軟體進行了無情的實戰測試,這使其成為許多 CERT 組織的首選工具。

滲透測試
挑戰
為了加強安全性,軟體開發人員有強烈的動機攻擊他們自己的軟體。一般的理念是,最好自己主動發現安全漏洞 - 在其他人發現並惡意使用它來對付您的客戶之前。安全審計可以由公司內的專業團隊或第三方顧問執行,但它們幾乎總是需要像 IDA 這樣的工具的精確性。

方法
可以更主動地使用 IDA 來檢測關鍵任務軟體中的可利用漏洞。通常這涉及識別負責處理使用者輸入的邏輯,然後積極分析邏輯錯誤。通常,從原始機器程式碼反編譯軟體時更容易發現此類錯誤,因為在編寫原始原始碼時,它沒有懶惰的程式設計師所做的任何偏見或假設。安全審計員知道要尋找什麼樣的錯誤,它們可能是極其有害的。

智慧財產權
挑戰
智慧財產權是許多公司的重要資產。 雖然是無形的,但它通常代表公司最重要的財產。 智慧財產權可以有多種形式,包括版權、專利、商標和商業祕密。 任何侵犯或侵犯智慧財產權的行為都對許多公司的生存構成嚴重威脅。 對於軟體 IP,發現和證明此類違規的任務是一項挑戰。 我們的社會不僅需要手動工具,還需要自動工具來完成這項任務。

方法
IDA Pro 非常適合這項任務,因為它可以用作開發自動系統以查詢侵犯版權、智慧財產權盜竊和專利侵權的基礎。 手動檢查也仍然可用。

動態分析與除錯
挑戰
反彙編計算機程式可以揭示其行為的大量資訊,但有許多方法可以限制原始反彙編的有用性。 惡意軟體作者積極嘗試使他們的可執行檔案在被分析時看起來無害,然後在實際執行時表現得大不相同。 由於不可預見的情況,即使是精心設計的非惡意程式也可能在執行時出現故障。 分析師和工程師依賴於允許他們在程式碼執行時觀察程式碼的工具。 很多時候,這是理解和解決問題的唯一方法。

方法
IDA Pro 可以除錯所有主要桌面平臺(Windows、Linux、Mac)、移動平臺(iPhone、Android)和模擬器(QEMU、Bochs)上的應用程式。 即使是鮮為人知的基於 MIPS 或其他處理器的嵌入式系統,我們的偵錯程式也可以處理它。 IDA Pro 自帶十種不同的偵錯程式。 當然,它們都是可配置的、可程式設計的和可擴充套件的。

汽車安全
挑戰
現代汽車正在滾動軟體生態系統。他們現在更依賴於在微控制器上執行的韌體,而不是像過去那樣的純硬體。汽車現在可以包含 70 多個電子控制單元 (ECU),每個電子控制單元都有自己的專用韌體。 ECU 可以負責發動機、駕駛控制、資訊娛樂、導航和跟蹤系統——其中一些可能連線到蜂窩網路。所有這些程式碼都有潛在的錯誤、漏洞或隱藏/不需要的功能。所以“智慧汽車”的概念是個好主意,但對某些人來說,“智慧”只是意味著“可破解”。汽車行業必須對驅動其車輛的軟體(字面意思)具有可見性,儘管其日益複雜。被忽視的缺陷可能會產生嚴重的後果。

方法
IDA 可以作為現代車輛邏輯基礎設施的入口點。在許多情況下,可以對原始 ECU 韌體進行逆向工程,例如確定感測器的讀取方式或發動機的控制方式。 IDA 是執行此任務的最佳工具,因為它支援 ECU 中使用的所有主要處理器系列。即使沒有完整的文件、原始碼或除錯符號,IDA 也可以逐步瞭解韌體行為。

互操作性
挑戰
資訊很少在應用程式內部嚴格生成和使用。 現代計算機與其他計算機交換資訊,將資訊儲存在磁碟或雲中。 通常,使用的資料格式是未記錄的,但可能需要與應用程式互動或提取其資料。 例如,要從過時的軟體中提取資料,我們需要知道使用的格式。 或者要取下殭屍網路,我們可能需要知道它的網路協議,以便向它感染的殭屍計算機發送命令。

方法
為了處理異國情調的檔案格式,IDA Pro 可以使用定製的“載入器”輕鬆擴充套件,並使資料從 UI 中可用。 當談到逆向工程網路協議時,人們通常會將 IDA Pro 與資料包捕獲工具(例如 Wireshark)配對。 由於分析流量並匹配其在客戶端或伺服器端程式碼中的使用,協議的發現將加快。

軟體評估
挑戰
非惡意軟體的內部運作有時值得研究。 分析師需要清楚瞭解日常使用的軟體(作業系統、驅動程式、第三方應用程式等)。 通常,商業軟體的內部細節沒有記錄在案,但有正當理由對其進行檢查。

方法
IDA 支援桌面、移動和嵌入式裝置中使用的所有主要架構。 它可用於反彙編帶有或不帶有除錯資訊的二進位制檔案。 使用 FLIRT 和 Lumina 等內建功能,可以識別眾所周知的或庫函式。 BinDiff 或 Diaphora 等第三方外掛允許查詢二進位制版本之間的差異以識別更改、修復甚至後門。

教育
挑戰
逆向工程需要大量的經驗、培訓甚至直覺。 但是如果沒有合適的工具,即使是最熟練的逆向工程師也會花費大量時間來執行最乏味的任務,甚至無法發現關鍵的資訊位。

方法
IDA Pro 是教授二進位制分析的完美工具:它速度快、功能強大且易於使用,支援開箱即用的大多數處理器和檔案格式,甚至可以作為教育免費許可證供機構使用。 發現 IDA Pro 被世界各地的大學、線上或離線課程、培訓和研討會等使用也就不足為奇了。

支援的處理器
支援的處理器/作業系統/檔案格式組合的列表非常大,很難一一列舉。 請檢視我們的相簿,其中包含大量處理器的反彙編示例。

IDA 家庭版
IDA Home 有 5 個版本,每個版本都支援常見的處理器系列之一:
x86/x64
ARM/ARM64
MIPS/MIPS64
PowerPC/PPC64
Motorola 68K/Coldfire
IDA專業版
IDA 專業版支援下列處理器。 我們的免費 SDK 中提供了一些處理器模組的原始碼。

AMD K6-2 3D-Now! extensions
32-bit ARM Architecture versions from v3 to v8 including Thumb, Thumb-2, DSP instructions and NEON Advanced SIMD instructions.
oARMv4 / ARMv4T: ARM7 cores (ARM7TDMI / ARM710T / ARM720T / ARM740T), ARM9 cores (ARM9TDMI / ARM920T / ARM922T / ARM940T)
oARMv5 / ARMv5TE / ARMv5TEJ: ARM9 cores (ARM946E-S/ ARM966E-S/ ARM968E-S/ ARM926EJ-S/ ARM996HS), ARM10E (ARM1020E / ARM1022E / ARM1026EJ-S)
oARMv6 / ARMv6T2 / ARMv6Z / ARMv6K: ARM11 cores (ARM1136J(F)-S / ARM1156T2(F)-S / ARM1176JZ(F)-S / ARM11 MPCore)
oARMv6-M: Cortex-M0 / Cortex-M0+ / Cortex-M1 (e.g. NXP LPC800/LPC1xxx, Freescale Kinetis L and M series, STM32 F0 series etc.)
oARMv7-M: Cortex-M3 (e.g. NXP LPC17xx/18xx/13xx, STM32 F1/F2/L1 series, TI Stellaris, Toshiba TX03 / TMPM3xx etc.)
oARMv7E-M: Cortex-M4 (e.g. NXP LPC43xx, STM32 F3/F4 series, TI Stellaris LM4F, Freescale Kinetis K series and W series, Atmel AT91SAM4 etc.)
oARMv7-R: Cortex-R4(F)/Cortex-R5/Cortex-R7 (e.g. TI TMS570LS etc.)
oARMv7-A: Cortex-A5 / Cortex-A7 / Cortex-A8 / Cortex-A9 / Cortex-A12 / Cortex-A15 (e.g. TI Sitara, TI OMAP series, Samsung S5PC100 and Exynos, Nvidia Tegra, Freescale i.MX, Allwinner A-Series and many others)
oARMv7 (custom): Apple A4/A5/A5X/A6/A6X (Swift microarchitecture, used in Apple’s iPhone/iPod/iPad/AppleTV), Qualcomm Snapdragon [Note: this list is incomplete; code for any ARM-compliant core can be disassembled]
ARC (Argonaut RISC Core)
ATMEL AVR (comes with source code)
DEC PDP-11(comes with source code)
Fujitsu FR (comes with source code)
GameBoy
Hitachi/RenesasH8/300,H8/300L,H8/300H,H8S/2000,H8S/2600, H8SX (comes with source code)
H8/330, H8/322, H8/323, H8/325, H8/326-329, H8/336-338, H8/350, H8/3048F, H8/3202, H8/3212, H8/3214, H8/3216, H8/3217, H8/3256, H8/3257, H8/3292, H8/3294, H8/3296, H8/3297, H8/3315, H8/3318, H8/3334Y, H8/3336Y, H8/3337Y, H8/3337YF, H8/3394, H8/3396, H8/3397, H8/3534, H8/3434, H8/3434F, H8/3436, H8/3437, H8/3437F, H8/3522
H8/3612, H8/3613, H8/3614, H8/3712, H8/3713, H8/3714, H8/3723, H8/3724, H8/3725, H8/3726, H8/3812, H8/3813, H8/3814, H8/3833-37, H8/3875, H8/3876, H8/3877, H8/3924, H8/3925, H8/3926, H8/3927, H8/3945-47
H8/3002, H8/3040-3042, H8/3003, H8/3030-32, H8/3048, H8/3070, H8/3071, H8/3072
H8S/2246, H8S/2245, H8S/2244, H8S/2243, H8S/2242, H8S/2241, H8S/2133, H8S/2144F, H8S/2357F, H8S/2143, H8S/2142F, H8S/2345F, H8S/2343, H8S/2341, H8S/2237, H8S/2235, H8S/2233, H8S/2227, H8S/2225, H8S/2223, H8S/2240, H8S/2242, H8S/2350, H8S/2352, H8S/2340, H8S/2355, H8S/2353, H8S/2351, H8S/2134F, H8S/2132F
H8S/2655R, H8S/2653R, H8S/2655
Hitachi H8/500 (comes with source code)
Hitachi HD 6301, HD 6303, Hitachi HD 64180
INTEL 8080
INTEL 8085
INTEL 80196 (comes with source code)
INTEL 8051 (comes with source code)
INTEL 860XR (comes with source code)
INTEL 960 (comes with source code)
INTEL 80×86 and 80×87
INTEL Pentium family, including SSE, SSE2, SSE3, SSE4
Java Virtual Machine (comes with source code)
KR1878 (comes with source code)
Microsoft .NET (Common Language Infrastructure bytecode)
Mitsubishi MELPS740 or Renesas 740 (comes with source code)
Hitachi/Renesas M16C
MN102 (comes only with source code)
MOS Technologies 6502 (comes with source code)
Motorola/FreescaleMC680xx, CPU32 (68330), MC6301, MC6303, MC6800, MC6801, MC6803, MC6805, MC6808, HCS08, MC6809, MC6811, M68H12C, ColdFire
Motorola MC6812/MC68HC12/CPU12
Freescale HCS12, HCS12X (including XGATE coprocessor)
NSC CR16 (comes only with source code)
NEC V850 series (including V850E1, V850E1F, V850ES, V850E2, V850E2M) (comes with source code)
Renesas RH850 series (RH850G3K, RH850G3M, RH850G3KH, RH850G3MH) (comes with source code)
EFI Byte Code (EBC) (comes with source code)
SPU (Synergistic Processing Unit of the Cell BE) (comes with source code)
MSP430, MSP430X (comes with source code)
PIC 12XX, PIC 14XX, PIC 18XX, PIC 16XXX (comes with source code)
Rockwell C39 (comes only with source code)
SAM8 (comes with source code)
SGS Thomson ST-7, and ST-20 (comes with source code)
TLCS900 (comes only with source code)
unSP from SunPlus
Sony SPC700
Philips XA series (51XA G3)(comes with source code)
Intel xScale
Z80, Zilog Z8, Zilog Z180, Zilog Z380 (comes with source code)
x64 architecture (Intel x64 and AMD64)
ARM64 Architecture (aka AArch64)
oARMv8-A: Cortex-A50/Cortex-A53/Cortex-A57
oARMv8 (custom): Apple A7 (Cyclone microarchitecture, used in iPhone 5s)
Analog Devices AD218x series (ADSP-2181, ADSP-2183, ADSP-2184(L/N), ADSP-2185(L/M/N), ADSP-2186(L/M/N), ADSP-2187(L/N), ADSP-2188M/N, ADSP-2189M/N)
Dalvik (Android bytecode, DEX)
DEC Alpha
DSP563xx, DSP566xx, DSP561XX (comes with source code)
TI TMS320C2X, TMS320C5X, TMS320C6X, TMS320C64X, TMS 320C54xx, TMS320C55xx, TMS320C3 (comes with source code)
TI TMS320C27x/TMS320C28x
Hewlett-Packard HP-PA (comes with source code)
Hitachi/Renesas SuperH series: SH1, SH2, SH3, Hitachi SH4 (Dreamcast), SH-4A, SH-2A, SH2A-FPU
IBM/Motorola PowerPC/POWER architecture, including Power ISA extensions:
oBook E (Embedded Controller Instructions)
oFreescale ISA extentions (isel etc.)
oSPE (Signal Processing Engine) instructions
oAltiVec (SIMD) instructions
oHypervisor and virtualization instructions
oAll instructions from the Power ISA 2.06 specification (Vector, Decimal Floating Point, Integer Multiply-Accumulate, VSX etc.)
oCell BE (Broadband Engine) instructions (used in PlayStation 3)
oVLE (Variable Length Encoding) compressed instruction set
oXenon (Xbox 360) instructions, including VMX128 extension
oPaired Single SIMD instructions (PowerPC 750CL/Gekko/Broadway/Espresso, used in Nintendo Wii and WiiU)
Motorola/Freescale PowerPC-based cores and processors, including (but not limited to):
oMPC5xx series: MPC533 / MPC535 / MPC555 / MPC556 / MPC561 / MPC562 / MPC563 / MPC564 / MPC566Note: code compression features of MPC534/MPC564/MPC556/MPC566 (Burst Buffer Controller) are currently not supported
oMPC8xx series (PowerQUICC): MPC821/MPC850/MPC860
oMPC8xxx series (PowerQUICC II, PowerQUICC II Pro, PowerQUICC III): MPC82xx / MPC83xx / MPC85xx / MPC87xx
oMPC5xxx series (Qorivva): MPC55xx, MPC56xx, MPC57xx
oPower PC 4xx, 6xx, 74xx, e200 (including e200z0 with VLE), e500 (including e500v1, e500v2 and e500mc), e600, e700, e5500, e6500 cores
oQorIQ series: P1, P2, P3, P4, P5 and T1, T2, T4 families
Infineon Tricore architecture (up to architecture v1.6.2 (AURIX))
Intel IA-64 Architecture – Itanium.
Motorola DSP 56K
Motorola MC6816
MIPS
oMIPS Mark I (R2000)
oMIPS Mark II (R3000)
oMIPS Mark III: (R4000, R4200, R4300, R4400, and R4600)
oMIPS Mark IV: R8000, R10000, R5900 (Playstation 2)
oMIPS32, MIPS32r2, MIPS32r3 and MIPS64, MIPS64r2, MIPS64r3
oAllegrex CPU (Playstation Portable), including VFPU instructions
oCavium Octeon ISA extensions
oMIPS16 (MIPS16e) Application Specific Extension
oMIPS-MT, MIPS-3D, smartMIPS Application Specific Extensions
oToshiba TX19/TX19A Family Application Specific Extension (MIPS16e+ aka MIPS16e-TX)
Mitsubishi M32R(comes with source code)
Mitsubishi M7700 (comes with source code)
Mitsubishi M7900 (comes with source code)
Nec 78K0 and Nec 78K0S (comes with source code)
STMicroelectronics ST9+, ST-10 (comes with source code)
SPARCII, ULTRASPARC
Siemens C166(flow)
Fujitsu F2MC-16L, Fujitsu F2MC-LC (comes with source code)
16-bit Microchip PIC series (PIC24, dsPIC: PIC24XX, PIC30XX, PIC33XX)
偵錯程式模組
在 IDA Pro 中,所有偵錯程式模組都可用。

不支援的處理器
如果您的目標處理器未包含在上面的列表中,您有兩個選擇:

要求我們在將來的某個時候新增對處理器的支援:我們歡迎您提供有關應將哪些處理器新增到 IDA Pro 的反饋。
使用我們的 SDK 並開發您自己的 SDK(對所有人免費,但不受支援)。

支援的檔案型別
IDA Pro 可以反彙編所有流行的檔案格式。 該列表包含一些(但不是全部)IDA Pro 處理的檔案型別。
MS DOS
EXE File
MS DOS COM File
MS DOS Driver
New Executable (NE)
Linear Executable (LX)
Linear Executable (LE)
Portable Executable (PE) (x86, x64, ARM, etc)
Windows CE PE (ARM, SH-3, SH-4, MIPS)
Mach-O for OS X and iOS (x86, x64, ARM and PPC)
Dalvik Executable (DEX)
EPOC (Symbian OS executable)
Windows Crash Dump (DMP)
XBOX Executable (XBE)
Intel Hex Object File
MOS Technology Hex Object File
Netware Loadable Module (NLM)
Common Object File Format (COFF)
Binary File
Object Module Format (OMF)
OMF library
S-record format
ZIP archive
JAR archive
Executable and Linkable Format (ELF)
Watcom DOS32 Extender (W32RUN)
Linux a.out (AOUT)
PalmPilot program file
AIX ar library (AIAFF)
PEF (Mac OS or Be OS executable)
QNX 16 and 32-bits
Nintendo (N64)
SNES ROM file (SMC)
Motorola DSP56000 .LOD
Sony Playstation PSX executable files,
object (psyq) files
library (psyq) files
在相簿中檢視支援的處理器列表和許多處理器拆解的螢幕截圖。

更多試用請訪問:

公司名稱:上海道寧資訊科技有限公司
地  址:上海浦東新區金橋路1399號(福建天安大廈)2105室
總  機::021-50318395,021-58995797,021-58996110