本教程带你怎么使用调试、逆向.net的神器dnSpy,将给出一个简单的示例程序,并完整地介绍如何逆向,让你快速入门。

需要咱们先下载dnSpy.net软件,见文末。我下载的版本目录结构如下:

dnSpy软件目录结构

示例程序

编写一个winform的登录程序, LoginTest.exe,输入正确的账号密码之后,跳转到主界面,否则提示账号密码错误。

登录主界面

登录错误提示

登录成功后进入主界面

loginFrm源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LoginTest
{
    public partial class loginFrm : Form
    {
        public loginFrm()
        {
            InitializeComponent();
        }
        public  static  string UserName = "";
        public static string PassWord = "";
        private void login_btn_Click(object sender, EventArgs e)
        {
            if (txtUserName.Text.Trim() == "")
            {
                MessageBox.Show("请输入账号后,再提交!");
                return;
            }
            if (txtPassWord.Text.Trim() == "")
            {
                MessageBox.Show("请输入密码后,再提交!");
                return;
            }
            UserName = txtUserName.Text.Trim();
            PassWord = txtPassWord.Text.Trim();
            if (UserName == "sword" && PassWord == "123456")
            {
                MainForm mainFrm = new MainForm();//创建一个新页面              
                mainFrm.Show();//显示新页面
                this.Hide();//隐藏当前页面
            }
            else {
                MessageBox.Show("账号密码错误!");
                return;
       
            }
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            txtUserName.Text = "";
            txtPassWord.Text = "";

        }
    }
}

mainForm源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LoginTest
{
    public partial class MainForm : Form
    {
        private string UserName = "";
        private string password = "";
        public MainForm()
        {
            InitializeComponent();          
            UserName = loginFrm.UserName;
            password = loginFrm.PassWord;
            lbl_Username.Text = "用户名:"   UserName;
            lbl_Password.Text = "密  码:"   password;
        }
    }
}

当我们忘记了账号密码,或者这个程序我们本来就不知道密码,那该怎么办呢?

不怕,我们直接来改造它!

启动 dnSpy,[文件]->[打开],找到 LoginTest.exe 打开,dnSpy 会自动反编译,可以直接打开反编译后的源码:

反编译LoginTest.exe

在源码上右键编辑方法(c#),改成如下代码(右键可以看到断点等其他调试功能,可以像VS等IDE一样调试)

修改源代码

重新编译后,[文件]->[全部保存] 保存成新的可执行文件(可以看到重新编译后注释的代码全部被优化掉了)

保存反编译后为ModifyLoginTest.exe

运行逆向修改后的程序 ModifyLoginTest.exe

输入修改后的账号密码

主界面信息变为修改后的账号密码

是不是很简单?不过,可不要拿逆向去干坏事哦^_^

如需本文源码及工具可以直接联系我。

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源