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) 來消除威脅、評估損害程度並瞭解攻擊是如何實施的,以防止未來發生相似事件。這些團隊必須從計算機、移動設備、網絡設備甚至分佈式系統中收集數字證據。所以,它們必須可以處理多種二進制代碼格式。在許多狀況下,代碼被混淆,目的是使調查更難、更耗時。法醫調查人員須要精確且多功能的工具來幫助他們完成這些任務。sass
方法
IDA Pro 能夠分析在取證調查期間收集的二進制代碼。它幾乎能夠處理在現代處理器上運行的任何代碼,而且可使用自定義腳本和插件擴展其功能。這使得它在分析嚴重混淆的代碼時特別有用。 IDA 已經在現場針對真實世界的惡意軟件進行了無情的實戰測試,這使其成爲許多 CERT 組織的首選工具。安全
滲透測試
挑戰
爲了增強安全性,軟件開發人員有強烈的動機攻擊他們本身的軟件。通常的理念是,最好本身主動發現安全漏洞 - 在其餘人發現並惡意使用它來對付您的客戶以前。安全審計能夠由公司內的專業團隊或第三方顧問執行,但它們幾乎老是須要像 IDA 這樣的工具的精確性。服務器
方法
能夠更主動地使用 IDA 來檢測關鍵任務軟件中的可利用漏洞。一般這涉及識別負責處理用戶輸入的邏輯,而後積極分析邏輯錯誤。一般,從原始機器代碼反編譯軟件時更容易發現此類錯誤,由於在編寫原始源代碼時,它沒有懶惰的程序員所作的任何偏見或假設。安全審計員知道要尋找什麼樣的錯誤,它們多是極其有害的。網絡
知識產權
挑戰
知識產權是許多公司的重要資產。 雖然是無形的,但它一般表明公司最重要的財產。 知識產權能夠有多種形式,包括版權、專利、商標和商業祕密。 任何侵犯或侵犯知識產權的行爲都對許多公司的生存構成嚴重威脅。 對於軟件 IP,發現和證實此類違規的任務是一項挑戰。 咱們的社會不只須要手動工具,還須要自動工具來完成這項任務。架構
方法
IDA Pro 很是適合這項任務,由於它能夠用做開發自動系統以查找侵犯版權、知識產權盜竊和專利侵權的基礎。 手動檢查也仍然可用。electron
動態分析與調試
挑戰
反彙編計算機程序能夠揭示其行爲的大量信息,但有許多方法能夠限制原始反彙編的有用性。 惡意軟件做者積極嘗試使他們的可執行文件在被分析時看起來無害,而後在實際執行時表現得大不相同。 因爲不可預見的狀況,即便是精心設計的非惡意程序也可能在運行時出現故障。 分析師和工程師依賴於容許他們在代碼運行時觀察代碼的工具。 不少時候,這是理解和解決問題的惟一方法。分佈式
方法
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/Renesas H8/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/Freescale MC680xx, 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 / MPC566 Note: 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