打开EXE
然后会在最下面出现打开的exe。
结构如下图:类---方法。
点击方法后,会在右面出现,方法的具体代码。
ILspy很强大,甚至方法的参数都和源代码相同,只是方法里面的参数名字会自动生成。
那么,如何保存反编译的源代码?
整体保存源代码,可以点击你的反编译的程序。如图
选择程序集或是里面的类或是方法后。点击File->savecode。
如果是导出exe全部,会生成一个类库。保存类库即可。
那么如何运行编译反编译的源码?
重新建立一个对应的项目(反编译源码是winform就建立一个winform程序。)
在解决方案上 添加------->现有项。然后删除新建立的空的winform代码。保留刚才添加进来的源码。如图所示:
然后直接点击运行...直接可以运行软件了。
反编译后的软件,直接生产了类,大家可以根据需要修改。
6
毕竟.NET 和JAVA 属于中间语言,很好反编译。那么如何保护自己的代码安全?防止别人反编译或是查看自己的源码呢,下面的经验中将进行介绍:如何给代码加壳...
如果你通过下面的语句企图像其他.NET应用程序一样获取Assembly中的版本号的话,你将永远得到一个0.0.0.0的字符串。System.Reflection.Assembly.GetAssembly(this.GetTyp e()).GetName().Version.ToString()很多人能说出一堆理由来告诉我企图在ASP.NET程序中获取程序集版本号是多么愚蠢的一件事,我对此也非常的理解,并表示认同,但如果得到变态的要求的话我们还是需要动手来实现这件事情的。首先在App_Code文件下下增加一个AssemblyInfo.cs文件,文件的内容模板可以从其他.NET应用程序中复制。其次,在Global.asax文件的Application_Start段落中增加如下代码:Global.asax// Load Assembly最近在学习.NET的时,需要在客户端软件中保存用户的一些设置,比如是否在登录框中保存上次登录名等信息,就用到了.NET中的应用程序设置功能。如果使用用户范围的设置,程序会在磁盘上创建user.config用来存储修改后设置值,对 user.config所在的文件夹,我产生了一些兴趣,并做了一些研究。现举个例子来说明:C:/Documents and Settings/Admin/Local Settings/Application Data/Microsoft/test.exe_Url_3ypvtlafqkef0gkp1kl5i2idjssaxajb/1.0.0.0/user.config
其中
“C:/Documents and Settings/Admin/Local Settings/Application Data”是LocalApplicationData特殊文件夹
“Microsoft”程序集的厂商名称
“Admin”是当前Windows用户名
“test.exe”是程序集友好名称
“1.0.0.0”是程序集版本
“user.config”是存储用户配置信息的文件,该文件举例如下:
“Url_3ypvtlafqkef0gkp1kl5i2idjssaxajb”该字符串是将程序集的厂商信息、版本信息、绝对路径进行哈希计算,得到的唯一值,可避免不同的程序生成相同的文件路径。
如果要想通过编程的方式对user.config文件做一些灵活的控制,就必须得到该文件的绝对路径,为了获取.NET生成user.config唯
一路径的方法,我使用Reflector反编译了System.Config程序集,终于得到了其中的方法,做了一些简化。现做一些介绍:
(1)ClientConfigPaths类,只有一个public方法GetUserConfigFilePath,此方法即可获取user.config的绝对路径
(2)StringUtil类,一个辅助类,用来做一些字符串 *** 作
(3)使用方法:
ClientConfigPaths ccp = new ClientConfigPaths()
textBox1.Text = ccp.GetUserConfigFilePath()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)