Relyze是一款二进制分析工具,可以用来分析你的软件,对你电脑上的软件进行逆向工程和分析,对于喜欢搞软件破解的朋友来说非常有用!
Relyze软件功能
1、加载PE和ELF二进制文件
导航二进制结构并发现它的组成方式。可视化数据并使用符号丰富分析。
2、分析x86,x64和ARM代码
让分析重建控制流图,解决间接调用,生成引用,发现堆栈变量等。
3、互动分析
在工作时修改和注释分析。使用交互式控制流,调用和参考图来探索代码和数据之间的关系。
4、二进制差异
对两个二进制文件执行差异分析,并探索它们的相似之处和不同之处。
5、现代界面
该软件采用时尚的现代界面和平面UI设计理念,将分析带入中心舞台。
6、插件框架
丰富的Ruby插件框架允许您使用自己的插件扩展该软件的功能。
7、可视化数据
使用熵图来识别打包或加密的数据以及其他异常。熵图覆盖相应的文件部分并且是交互式的,因此您可以导航到结构或代码视图以了解更多信息。
8、探索结构
深入研究文件结构,以便确切了解它的组成方式。使用十六进制编辑器进一步探索结构,即时解码和搜索数据。您还可以利用自定义解码器来处理部分数据。
探索结构
9、多线程分析
该软件可以执行并行分析并利用所有可用的处理器内核,允许您浏览大型二进制文件并尽快完成分析。
10、编辑代码
通过为每个支持的体系结构提供内置汇编程序,您可以动态编辑指令并修补二进制文件。分析将重新处理更改的指令以更新分析。插件框架公开了对汇编程序的完全访问权限,因此您可以根据需要编写脚本。
11、导航控制流程图
该软件使用交互式控制流程图可视化功能,允许您导航功能代码路径并与局部变量,指令和其他属性进行交互
12、导航调用图
使用多种图形布局算法生成和探索交互式调用图。我们基于DirectX的硬件加速图形渲染引擎允许您使用黄油流畅的界面探索大型复杂图形。
13、功能分析
自动分析识别函数,它们的参数和其他元数据,例如调用约定。函数局部变量会自动分析并显示在函数控制流图中,以便您可以与它们进行交互,发现对本地的引用,更新其数据类型等。
14、查看所有代码路径
获取具有自动跳转表和异常处理程序分析的函数的完整控制流图。发现原本不可见的代码路径。
15、解决间接呼叫
可能的分析可以解决间接调用目标,为您提供功能逻辑的完整画面。
16、找到一切
快速搜索和识别分析的有趣部分或浏览所有内容。段,导入,导出,函数,字符串,书签,符号行和搜索结果等项目合并在一个统一的位置,以便于遍历。
17、数据类型分析
自动分析可以通过分析或在可用时通过符号辅助来发现数据并识别合适的数据类型。识别基元类型,字符串,复杂结构等。
18、静态库分析
通过静态库分析自动识别静态库代码中常见的链接,例如编译器运行时。已识别的静态库函数将重命名为其原始函数名称,从而加快分析代码的速度。
19、创建和管理自定义数据类型
通过使用C / C ++声明定义它们来管理可用的数据类型并创建新类型。您还可以导入C / C ++头文件以访问其中定义的数据类型。将可用数据类型导出为C / C ++标头,以便与您自己的工具进行互操作。
创建和管理自定义数据类型
20、可视化关系
使用交互式参考图表发现代码和数据之间的关系。您可以生成特定目标或源自特定目标的参考图。与这些参考图表交互并浏览您发现的代码和数据。
21、找到路径
使用图形路径突出显示来发现图形中任意两个节点之间的所有路径。确定有趣代码块的最短路径,或参考图中某些数据的所有潜在路径。
22、交互式二进制差异
对两个二进制文件执行差异分析,发现它们的差异和相似之处。了解已修改,删除或添加的功能。在验证安全修复程序或分析恶意软件变体时,非常适合进行补丁分析。
23、自定义地址模式
根据相对虚拟地址或虚拟地址显示和导航代码。当您将该软件与调试器一起使用并且必须处理地址空间布局随机化(ASLR)时,立即将二进制文件重新基于新的虚拟基址。
24、使用插件扩展
利用丰富的Ruby插件框架,以扩展Relyze的新功能,并针对二进制文件执行定制的分析或研究。集成的插件编辑器可让您快速测试您的想法,一切都按预期运行,无需额外配置或第三方库。
25、存档一切
使用集成的库管理器归档您分析的每个文件,以便随着时间的推移建立语料库。使用自定义标记和说明应用您的存档,以便轻松查找和分类它们。
反汇编与逆向编程的区别
反汇编:一般是只对编译器根据高级语言生成的本机二进制可直接在芯片上执行的机器码”解析“为人类可读的汇编形式的代码(实际上最最早期的计算机操作员具备直接阅读机器码和使用机器码编程的能力,不需要转换为汇编形式,这是计算机普及,程序规模也爆炸性增大后,人们就有需要转换为汇编代码来读懂机器码程序)
早期的反汇编目的是编译器生产商用来检查编译器生成代码的性能。
当今主要在得不到源代码的情况下,研究分析其他人的程序,如病毒程序的分析,系统漏洞的挖掘,或者黑\灰色产业链里的山寨抄袭功能等。通过反汇编分析其功能、算法、逻辑等。
反汇编实际就属于逆向过程,分析得到别人的功能、算法、逻辑后,再根据得到的信息再开发、增加补丁开发、防御产品开发等,在开发的过程根据实际需求而言,比如分析汇编代码得到的一个算法,可以用任意其它编程语言再现,这就是逆向编程了
逆向编程属于逆向工程,
逆向编程一般指根据反向分析别人程序的功能而使用其它编程语言编程再现该功能。
反向分析(逆向工程)不仅仅是反汇编,对不同系统平台语言平台芯片平台的不同也囊括不同内容,如反汇编则基本有对各种芯片(如8086、arm、c51等芯片的反汇编)
反汇编实际属于反编译,反编译就包括各种语言从低级或中间级语言到高级语言的解析
如.NET平台的C#就可由中间语言MSIL反编译成C#
Java平台的就可由.class中的Java字节码反编译为Java代码
后有其它的dex虚拟机的字节码,自定义的虚拟机字节码等等
总言之,反汇编属于反编译的一个分支,
反编译是实现逆向编程的必经步骤
这些都属于IT界的”逆向工程“范畴。
- PC官方版
- 安卓官方手机版
- IOS官方手机版