盲人用户的 IDA Pro、Immunity 和 OllyDbg 的最佳替代品

逆向工程 艾达 ollydbg 工具
2021-07-05 04:14:28

我完全失明,想学习逆向工程,这样我就可以发展我的职业生涯。不幸的是,使用屏幕阅读器的盲人无法访问 IDA Pro、Immunity 和 OllyDbg。

这些工具在 Windows 和 Linux 上有什么好的替代品吗?我在 Linux 上使用过 gdb,在 Windows 上也使用过 WinDbg。

如果不能使用三大件,我只需要一个关于什么是行业标准的建议?

谢谢,唐

4个回答

您可以在 Linux、WinDBG使用gdb,也可以尝试radare2:它不像前两个那样稳定,但它是为逆向工程、支持协议量身定制的;)所有这些都有一个文本界面应该适用于盲文接口。gdb://windbg://

但我猜想,radare2 对盲人来说的杀手锏是它有 ascii 控制流图:

                       =------------------------------------------------------=
                       | [0x400536]                                           |
                       | main:                                                |
                       | (fcn) sym.main 50                                    |
                       | ; arg int arg_0_2      @ rbp+0x2                     |
                       | ; var int local_0_1    @ rbp-0x1                     |
                       | push rbp                                             |
                       | mov rbp, rsp                                         |
                       | sub rsp, 0x10                                        |
                       | mov dword [rbp - 4], edi                             |
                       | mov qword [rbp - 0x10], rsi                          |
                       | cmp dword [rbp - 4], 2 ; test.c:2     if (argc > 2)  |
                       | jle 0x400557 ;[a]                                    |
                       =------------------------------------------------------=
                             t f
  .--------------------------' '------------------------------.
  |                                                           |
  |                                                           |
=--------------------------------------------------=      =--------------------------------------------------=
|  0x400557                                        |      |  0x40054b                                        |
| mov edi, 0x4005f7 ; test.c:5         puts("Oo"); |      | mov edi, 0x4005f4 ; test.c:3         puts("Ok"); |
| call sym.imp.puts ;[b]                           |      | call sym.imp.puts ;[b]                           |
=--------------------------------------------------=      | jmp 0x400561 ;[c]                                |
    v                                                     =--------------------------------------------------=
    |                                                         v
    '-----------------------------------.---------------------'
                                    |
                                    |
                                =-------------------------------------=
                                |  0x400561                           |
                                | mov eax, 0 ; test.c:6     return 0; |
                                | leave ; test.c:7 }                  |
                                | ret                                 |
                                =-------------------------------------=

关于radare2 的各种讨论中提供了很多幻灯片,但我想了解如何使用它的最简单方法是阅读radare2 书籍我很确定每个人都会很乐意帮助您/在 irc 频道上实现缺失的功能!

一个想法 - Visual Studio 具有良好的辅助功能(至少根据他们的博客)并且它可以显示已编译应用程序的汇编代码。如果您想了解编译后的结构在二进制中是什么样的,这很好。http://opensecuritytraining.info/IntroX86.html等课程专门使用 Visual Studio 进行代码分析。我知道本课程的视频从盲人的角度讲得不好,但即使您看不到正在发生的事情,它们仍然很有用。

此外,现在 Windbg 是一个非常好的调试器。如果您掌握了 Windbg,您将是无价的。Ollie 是为 wussies 设计的 :) Immunity 本质上是 Ollie 的几年前版本,带有一些用于漏洞利用开发的插件。

抱歉回复晚了,但我现在才注意到这个问题。

免责声明:我在 Hex-Rays 工作,主要从事 IDA 开发。

碰巧我们有一些盲人用户。在他们的帮助下,在最新版本的 IDA(尤其是 6.95)中,我们对可访问性进行了重大改进,尤其是在 Windows 和 Linux 上(OS X 工作得有些好,但不是很好)。因此,我建议您尝试使用演示版,看看它如何与您的屏幕阅读器配合使用。如有任何问题,请随时与我们联系;我们始终愿意让 IDA 更易于访问。

您可以尝试Bokken,它是 Radare2 和 Pyew 的前端。Pyew 是 Python 的恶意软件分析框架,但 Bokken 可以作为逆向工程工具链中的额外眼睛用于任何目的。

另一个不错的选择是EmilPRO,它是 objdump 的前端(来自 GNU binutils 包)。EmilPRO 的主要主张是支持多种架构,主要利用 GNU binutils 对流行文件类型(如 ELF、PE 和 Mach-O)的支持。它的名字是在 IDA Pro 上播放的。它支持 Qt 和 GTK。