没有Source Code 如何修改程式??

某些专案因为历史久远没有Source Code,但有个需求需要异动里面的程式该怎么办??

难道只能整个反组译,查看程式码翻一份做新的吗?

不~~其实有办法直接对于DLL进行修改

只需使用  Reflexil 搭配 ILSpy 或其他支援的反组译软体 

此文同步发布在 DotBlog

Reflexil 是一个组译编辑器插件目前支援 Reflector, ILSpy 和 Telerik's JustDecompile.

下载连结

Reflexil Release 2.2 搭配 ILSpy version 3.2 

前置动作,安装

Reflexil 下载

下载 reflexil.for.ILSpy.2.2.bin.zip,不用下载AIO

作者有说

ILSpy version 3.2 (ILSpy 4 is not currently compatible with Reflexil, given the use of System.Reflection.Metadata, deprecating Mono.Cecil usage)
ILSpy 4 当前版本 ILSpy.2.2 并不支援

ILSpy 3.2 下载

下载完后就把全部的DLL放在同一个资料夹下,并开启 ILSpy.exe

按下上方的齿轮UI 就可获得下方蓝色的Reflexil 修改框框.


组件修改

需求

目前组件 有个ClassA 类别,里面有一个prop1属性 型态是string, 我们希望在这新增另一个属性

使用滑鼠右键点击类别ClassA,我们可以看到很多方式可以注入新的程式码

在这我们选择inject property.

我们需要修改的是

Item Name (使用属性的名称)Property Type(使用属性类别)

选择完后按下OK,我们就会发现prop2新属性会出现在ClassA中.

新增完后不代表已经将修改储存!!

我们需要点选组件,之后再按下Save AS 把本次修改储存

日后我们就可以使用新的属性在我们程式中了!!

小结

此插件还可以新增,插入许多东西时属非常强大,有兴趣的玩家可再自行深入琢磨.


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章