【问题标题】:How to find Code generating known data?如何找到生成已知数据的代码?
【发布时间】:2011-04-08 12:25:10
【问题描述】:

通过调试程序,我只知道在单击按钮之前,一组已知数据不在内存中(通过内存搜索确认),而在单击它之后,数据在内存中(始终位于不同的位置)。

如何找到生成此数据的代码?

其中一个主要问题(可能很重要)是它是一个 .net 程序(我无法使用 Reflector 对其进行分析,因为它被混淆了)。所以我正在分析 .NET 生成的程序集(在 Olly / Immunity / IDA 中)。

【问题讨论】:

    标签: reverse-engineering


    【解决方案1】:

    如果是 .Net,您可以调试 IL 代码。虽然这并不容易,但应该可以找到将序列写入内存的 il 指令。

    尝试使用所谓的SOS 扩展名debugging tools for windows

    您也可以尝试是否可以从经过混淆的程序集生成 C# 代码以进行调试。但这肯定不会比 IL 可读性更好。

    【讨论】:

    • 我不能以某种方式找到由 .NET-Framework 生成的、生成我的预知数据的汇编指令吗?
    • 我不知道这样的方法。我能想到的唯一方法是从处理按钮单击事件的方法开始调试代码,如果你能在 il 中找到这一点。
    • 通过该代码进行调试几乎是不可能的,因为 .NET 会生成大量代码。我尝试了按钮单击的指令跟踪并在 8 小时后停止它,所以这几乎是不可行的。
    【解决方案2】:

    将作弊引擎添加到您的工具包中。

    如果您可以获得它将写入的地址,您可以右键单击它并选择“找出写入此地址的内容”。

    附注要获得相反的效果,您可以在内存视图中选择一条指令,右键单击并选择“找出该指令访问的地址”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      相关资源
      最近更新 更多