我完全是盲人,想学习做逆向工程,以便继续前进。不幸的是,盲人使用屏幕阅读器无法访问IDA Pro,Immunity和OllyDbg。

这些工具在Windows和Linux上是否都有很好的替代品?
我已经使用了gdb

如果不能使用这三个大工具,我只需要建议什么是行业标准?

,谢谢,


评论

是什么使软件屏幕阅读器变得友好?您是否可以概括并指出GUI内的所有内容对您来说一文不值?我仍然在Mac Terminal中使用旧的IDA Pro演示-因此“仅纯字符”-对我来说,它与任何新的Windows版本一样好。另外,它具有令人愉快的90年代复古MS-DOS外观。

@rad屏幕阅读器的可访问性在某种程度上难以描述。尽管使用Windbyg有点麻烦,但它不是可访问的,但是我在课堂上成功使用了它。基于文本的IDA版本可能正是我想要的。确实能很好地进行反汇编和/或反编译的操作将很有帮助。所有gui应用程序都无法访问,实际上许多gui程序都非常可访问。不幸的是,使用QT或GTK +开发套件编写的任何内容在大多数情况下都是无法访问的。

#1 楼

您可以在Linux,WinDBG上使用gdb,并可以尝试一下rade2:它不如前两个稳定,但它是为逆向工程量身定制的,并且支持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                                 |
                                =-------------------------------------=


关于rade2的各种讨论都有很多幻灯片,但是我想学习rade2的书是最简单的方法。我很确定每个人都会很乐意帮助您/在irc频道上实现缺少的功能!

评论


cygwin64的gdb似乎也可以很好地工作。

–dnraikes
16年2月16日在16:20

#2 楼

一个想法-Visual Studio具有良好的可访问性功能(至少根据他们的博客),并且可以显示已编译应用程序的汇编代码。如果您想了解二进制形式的编译结构,这很好。诸如http://opensecuritytraining.info/IntroX86.html之类的课程仅使用Visual Studio进行代码分析。我知道从盲人的角度来看,本课程的视频叙述不佳,但是即使您看不到正在发生的情况,它们仍然很有用。

Windbg还是非常不错的这些天调试器。如果您精通Windbg,您将无价。 Ollie是个小人物:) Immunity本质上是Ollie的旧版本,带有一些用于漏洞利用开发的插件。

评论


尽管我还没有尝试过最新的Visual Studio版本,但我从未发现它相对易于访问,但是我将再看看。

–dnraikes
16年2月16日在16:22

@dnraikes :(一般而言,逆向工程工具远未获得任何可访问的界面,它们几乎还没有脱离“带有文本界面的讨厌的hack”领域。

–维塔利·奥西波夫(Vitaly Osipov)
16年2月16日在20:48

#3 楼

对不起,我回答很晚,但是我现在才注意到这个问题。

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

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

#4 楼

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

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