打开EXE
然后会在最下面出现打开的exe。
结构如下图:类---方法。
点击方法后,会在右面出现,方法的具体代码。
ILspy很强大,甚至方法的参数都和源代码相同,只是方法里面的参数名字会自动生成。
那么,如何保存反编译的源代码?
整体保存源代码,可以点击你的反编译的程序。如图
选择程序集或是里面的类或是方法后。点击File->savecode。
如果是导出exe全部,会生成一个类库。保存类库即可。
那么如何运行编译反编译的源码?
重新建立一个对应的项目(反编译源码是winform就建立一个winform程序。)
在解决方案上 添加------->现有项。然后删除新建立的空的winform代码。保留刚才添加进来的源码。如图所示:
然后直接点击运行...直接可以运行软件了。
反编译后的软件,直接生产了类,大家可以根据需要修改。
6
毕竟.NET 和JAVA 属于中间语言,很好反编译。那么如何保护自己的代码安全?防止别人反编译或是查看自己的源码呢,下面的经验中将进行介绍:如何给代码加壳...
您好!易语言可以通过使用.NET框架提供的反射机制来调用其他程序集中的变量。具体步骤如下:1. 引用程序集:在易语言中,通过使用.NET框架提供的Assembly类来引用其他程序集。可以使用Assembly类的LoadFile方法来加载程序集文件,然后使用Assembly类的GetType方法获取程序集中的类型。
2. 获取变量:获取程序集中的变量可以使用Type类的GetField或GetProperty方法。这些方法可以根据变量名称获取变量信息。
3. 调用变量:获取变量信息后,可以使用GetValue方法获取变量的值。如果变量是静态的,则可以直接使用Type类的InvokeMember方法调用变量。
需要注意的是,调用其他程序集中的变量需要确保程序集已经被正确加载,并且变量的访问权限符合要求。
希望这个回答能够帮助您!
public partial class About : System.Web.UI.Page{
public string AssemblyTitle
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false)
if (attributes.Length >0)
{
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]
if (titleAttribute.Title != "")
{
return titleAttribute.Title
}
}
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase)
}
}
public string AssemblyVersion
{
get
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString()
}
}
public string AssemblyDescription
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)
if (attributes.Length == 0)
{
return ""
}
return ((AssemblyDescriptionAttribute)attributes[0]).Description
}
}
public string AssemblyProduct
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false)
if (attributes.Length == 0)
{
return ""
}
return ((AssemblyProductAttribute)attributes[0]).Product
}
}
public string AssemblyCopyright
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)
if (attributes.Length == 0)
{
return ""
}
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright
}
}
public string AssemblyCompany
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false)
if (attributes.Length == 0)
{
return ""
}
return ((AssemblyCompanyAttribute)attributes[0]).Company
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)