100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ILSpy可以反编译c语言 如何使用ILSpy反编译.NET Framework程序集(读取其源代码)

ILSpy可以反编译c语言 如何使用ILSpy反编译.NET Framework程序集(读取其源代码)

时间:2019-08-16 14:50:02

相关推荐

ILSpy可以反编译c语言 如何使用ILSpy反编译.NET Framework程序集(读取其源代码)

本文概述

如果你认为WinForms .NET应用程序从一开始就是安全的并且无法读取源代码, 那么让我告诉你你错了。任何人都可以使用将可执行文件作为输入的反编译器, 并尝试创建高级源文件(应用程序的源代码)。建议在发布应用程序之前, 使用一些反编译工具对生成的可执行文件进行反编译, 以检查代码上的安全漏洞。除了检查可能的安全漏洞外, 如果你继承了没有文档或注释的应用程序, 那么查看带有反编译器的编译代码的行为可能非常有用。

如果你出于任何原因愿意反编译.NET程序集, 我们建议你使用ILSpy项目。 ILSpy是反编译器, 与Jadx(APK反编译器)的工作方式相同, 但是它不反编译Java, 而是反编译C#。 ILSpy是开源.NET程序集浏览器和反编译器。该反编译器最知名的功能是:

装配浏览

IL拆卸

支持C#5.0″异步”

反编译为C#

支持lambda和”收益率回报”

显示XML文档

反编译成VB

节省资源

将反编译的程序集另存为.csproj

搜索类型/方法/属性(子字符串)

基于超链接的类型/方法/属性导航

基本/派生类型导航

导航历史

BAML到XAML反编译器

将程序集另存为C#项目

查找字段/方法的用法

可通过插件(MEF)扩展

装配清单

在本文中, 你将了解在计算机上下载ILSpy以及反编译Visual Studio生成的可执行文件以最终查看其源代码的难易程度。

1.下载ILSpy二进制文件

没有官方的安装程序, ILSpy是便携式的。 ILSpy的二进制文件可以通过Github的”发行版”区域中的项目发行版获得, 也可以通过单击官方网站上的”下载二进制文件”来获得。压缩包包含截止日期的11个文件(1个可执行文件, 9个动态链接库和一个配置文件):

下载后, 你可以通过可执行文件使用ILSpy, 它不是命令行工具, 因为它包含GUI。

2.从WinForms应用程序反编译可执行文件

不要混为一谈, 我们将使用C#中的Visual Studio来反编译我们自己制作的应用程序之一。在我们的示例项目中, 我们将以最不安全的方式为唯一用户公开一个简单的登录表单:

凭证模型存储在源代码中的变量中, 这显然是安全缺陷。通过if语句, 我们将检查用户单击登录按钮时用户是否知道凭据。我们的应用程序的源代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Sandbox

{

public partial class Form1 : Form

{

public string globalUsername = "Batman";

public string globalPassword = "batmobil";

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

string username = textBox1.Text;

string password = textBox2.Text;

if(username == globalUsername && password == globalPassword)

{

MessageBox.Show("Login granted, awesome !");

}

else

{

MessageBox.Show("Login denied, check your credentials !");

}

}

}

}

现在, 我们将编译(构建解决方案)我们的项目, 以便在项目的bin / Debug文件夹中生成其二进制文件:

构建解决方案项目将更新调试二进制文件, 你可以在bin / Debug文件夹中找到应用程序的可执行文件, 例如C:\ Users \ me \ Documents \ visual studio \ Projects \ \ bin \ Debug。打开ILSpy, 在菜单栏中单击”文件”, 然后选择”打开”。文件浏览器将启动, 并允许你选择一个程序集, 在此示例中, 该程序集位于我们项目的Debug文件夹中:

选择可执行文件后, ILSpy将开始反编译过程, 并将所选文件作为项目添加到树形视图中。在那里, 你将能够探索文件和源代码的结构和资源。在我们的示例中, 我们有一个单一的表单, 即Form1, 可以通过ILSpy轻松查看:

你看对吗? ILSpy能够获取我们初始应用程序的源代码, 并且我们可以看到WinForms项目的”很棒的登录”算法。反编译显然也适用于非调试版本。

反编译愉快!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。