如何轻松地对软件进行逆向工程?

How to Reverse Engineer Software Easily?

我是软件逆向工程的新手, 其实我想从免费和开源中学习软件逆向工程,我的问题是有经验的人可以推荐我一些网站或YouTube频道吗? 请推荐....

您想反转哪种可执行文件?

Windows 个可执行文件(PE 可执行文件 A.K.A..exe 文件)

  • OllyDBG(免费):一个非常好的可执行调试器(您可以用它更改反汇编代码)
  • IDA PRO(商业版,价格昂贵):如果你想做二元分析,这就是你需要的程序。
  • Hiew(商业版,相当便宜):反汇编器+十六进制编辑器。我过去(10 年前)用过它,这个程序没有 GUI

Linux 个可执行文件(ELF 文件)

  • GDB(Free/opensource):GNU 调试器。
  • Hopper(商用,便宜):反汇编器 + 伪 C 反编译器(这个工具很棒!)
  • Evan 的调试器(free/opensoure):这与 OllyDBG 非常相似,但对于 linux
  • Insight(Free/opensource,有点过时了 AFAIK):一个非常好的 GDB GUI。
  • IDA PRO(商业,昂贵):如果你想做二进制分析,这是你需要的程序(Linux版本)。

MacOS 可执行文件(MACH-O 文件):

  • Hopper(商业,便宜):Hopper 可以反汇编和反编译 OSX 个可执行文件。
  • IDA PRO(商业,昂贵):如果你想做二进制分析,这是你需要的程序(OSX版本)。
  • 抱歉,我对 OSX 上的逆向工程知之甚少。

Android 可执行文件(APK 包内的 .DEX)

  • APK 工具 (Free/opensource):反汇编程序和汇编程序 (SMALI)。如果您想对 Android 应用程序进行逆向工程,这可能是您唯一需要的工具。
  • JEB (Commercial): Android反汇编器(SMALI)和反编译器(JAVA),该程序可以反编译Javaclass中的DEX。官网有demo
  • IDA PRO(商业版,价格昂贵):IDA 可以反汇编 Android 个可执行文件

iOS 个可执行文件:

  • IDA Pro(商业版,价格昂贵):IDA 可以反汇编 iOS 个可执行文件
  • Hopper(商业,便宜):Hopper 可以反汇编和反编译 iOS 个可执行文件。

书籍:

  • 逆向:逆向工程的秘密 - Eldad Eilam
  • IDA Pro 书籍:世界上最受欢迎的反汇编程序的非官方指南 - Chris Eagle
  • 实用逆向工程:x86、x64、ARM、Windows 内核、逆向工具和混淆 - Bruce Dang、Alexandre Gazet、Elias Bachaalany、Sebastien Josse
  • 学习 Linux 二元分析 - Ryan O'neil

网站:

  • Opensecuritytraining.info:很多关于逆向工程和底层编程的视频。
  • Reverseengineering.stackexchange.com: 回答你关于 RE 的问题。

youtube 上也有很多视频,但主要是游戏破解等。 逆向工程一开始可能很难,但它很酷很有趣,但请不要用你的技能做愚蠢的事情,比如注入病毒或盗版东西:让逆向工程成为一件好事:)