【问题标题】:Is there a possibility to change other's application code in Visual Basic?是否有可能在 Visual Basic 中更改其他应用程序代码?
【发布时间】:2016-01-08 23:57:03
【问题描述】:

我刚刚在 OllyDbg 中反转了一个crackme,我想知道是否可以使用用 VB.NET 编写的应用程序修改它的代码。例如,将 JNZ(在指定地址)更改为 JMP。

编辑:

我知道有一个误解。我说的是在 Visual Basic.NET(以编程方式更改 EXE 代码)中创建修补程序来修补已经反转的应用程序。我知道 Write/ReadProcessMemory 允许我在应用程序执行后注入代码(在这种情况下它是加载程序而不是修补程序),但是如何永久覆盖 EXE?

【问题讨论】:

  • 逻辑上(我的意思是...如果您对计算机软件有基本的了解),您不能直接修改正在运行的应用程序(不在可接受的复杂度范围内)。您可以获取给定的源代码,对其进行修改(如果需要,编译此代码),然后再次执行(修改后的版本)应用程序。无论如何,这篇文章完全是题外话,因为这是一个关于(非常)基本想法的通用问题。

标签: vb.net reverse-engineering ollydbg


【解决方案1】:

将 JNZ 更改为 JMP 有点绕过应用程序内部的某种验证(是否购买的序列号,所以如果您有源代码,您可以只注释您不希望您的应用程序使用哪些行执行

【讨论】:

    【解决方案2】:

    使用某些工具可以修补已编译的程序,您甚至可以通过代码注入在运行时执行此操作。 但是,正如我从您的问题中了解到的那样,您说的是 vb .NET 应用程序,而不是常规的 VB 应用程序。 VB .NET 应用程序编译为字节码(MSIL 代码)而不是像常规 VB 应用程序那样的二进制文件,这使得逆向更容易,您实际上可以使用 ILSPY 之类的工具将 .exe 文件“反编译”为其源代码(参见 google ),打补丁,然后重新编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多