首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.NET调试模糊的DotPeek核心应用程序

使用.NET调试模糊的DotPeek核心应用程序
EN

Stack Overflow用户
提问于 2021-05-21 14:34:20
回答 1查看 266关注 0票数 1

我正在寻找一个可能的逻辑炸弹在我们的供应商软件工厂部署到生产的代码中。

为了读者的好奇心,这里有一个简短的概述。应用程序在某个时刻停止了无限等待的工作。对混淆的代码进行反编译后,我发现了一个奇怪的Thread.sleep,它不应该出现在MVC中,它的数量是通过当前滴答数与某个值的差来计算的。也就是说。

代码语言:javascript
复制
private long SomeFunction(long param) {
    if (param > 0)
        Thread.Sleep(param);
    return param;
}

private long GetSomeLongValue() {
    //Simplified. There is a lot of long to string and back
    return SomeFunction(Manipulate(DateTime.Now.Ticks - GetMysteryNumber()));
}

private long Manipulate(long param){
    if (param < 0)
        return param;
    else
        # Compute a random number of days between 0 and param / 86400000,
        # and return its milliseconds value, always positive
}

通过对系统时钟进行实验,我发现当应用程序工作时(在前)和停止(在1秒后)时,存在一个魔术 DateTime.Now值。实验结果一致,重复性好。

回到问题

我使用JetBrains DotPeek完成了所有这些工作。这是通过查看代码来完成的:人类静态分析。

问题是,我所称的SomeMysteryFunction太模糊了,以至于我真的无法知道它做了什么。我有完整的代码,但我想采取另一种方法。

我希望练习这个函数,尝试,看看它是否返回了可能等于有罪时间戳的一致值。该函数取决于GetCallingAssembly方法的结果,因此这将是背部疼痛。

我考虑运行某种Program.cs或单元测试,通过反射利用模糊函数,但我想使用DotPeek进行调试。为什么?

  • 拆卸可能是一片混乱
  • 我尝试了Telerik,但是我在DotPeek反编译异步方法(而不是在中)方面取得了更大的成功--它们的StateMachine表示

在我的工作经验中,我从来没有这样做过。我只需要确定这是否是故意的。

如何设置测试床环境,以便调试到由DotPeek解压缩的链接DLL中?

EN

回答 1

Stack Overflow用户

发布于 2021-12-09 14:21:55

这篇文章在.NET解压缩器的丛林中解释了所有值得使用的.NET解压缩器。

当然,免费开放源码软件工具dnSpy是您想要使用的那种类型的黑客--我想使用这个函数场景。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67638943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档