逆向工程 dll 并直接重新上传到服务器

Posted

技术标签:

【中文标题】逆向工程 dll 并直接重新上传到服务器【英文标题】:Reverse engineering dll and reuploading directly to server 【发布时间】:2018-11-16 15:30:26 【问题描述】:

我的任务是编辑现有网站,但是客户端无法再访问源代码,因此我访问了虚拟机上可以访问的内容。但是,我可以从 VM 获得的唯一文件是前端文件。我需要更改控制器中的某些内容,因此我正在研究对项目 DLL 进行逆向工程。

是否可以只反编译当前的 dll,创建一个新项目,复制所有内容,编译一个新的工作 dll,然后将 dll 文件重新上传到服务器?根据我作为程序员的经验,dll 被赋予一个 GUID 标识符,该标识符在部署时与解决方案一起编译。我认为重新创建项目将为新的 DLL 分配不同的 GUID。上传到服务器就可以了吗?

感谢任何帮助和澄清。谢谢。

【问题讨论】:

【参考方案1】:

是的,重新上传的 DLL 应该没问题

但是,在强命名程序集的情况下,任何引用该 DLL 的东西都不会太高兴。在这种情况下;您需要对它们执行相同的过程并链接到您的新项目。无论如何,您可能都想这样做,这样您就不会被他们的行为所困。

IIS 本身不会关心;它只是在寻找带有入口点的程序集。

【讨论】:

【参考方案2】:

这是一个类似问题的答案:How do I decompile a .dll file?

这更像是一种可能...尝试一下,看看它是否有效。您需要知道库中绑定了哪些框架和程序集,以及它使用的编程语言。

【讨论】:

【参考方案3】:

是的,除非“上传”过程具有我们不知道的某些特殊性(例如将 GUID 分配给 DLL),否则从头开始重新构建 DLL 将起作用。

然而,实际上,根据所使用的语言,自动反编译可能并不那么简单,而且手动执行是一项复杂而困难的任务,因此我会谨慎处理该任务。

【讨论】:

以上是关于逆向工程 dll 并直接重新上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 .net网站怎么重新生成bin下 工程名.dll文件

DLL调试方法

DLL上传私有Nuget服务器并配置 VS 中Nuget源

如何防止Unity3D代码被反编译

《逆向工程核心原理》之DLL注入

FreeLibraryAndExitThread 在卸载注入的 DLL 时使程序崩溃