吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1408|回复: 40
上一主题 下一主题
收起左侧

[.NET逆向] 无壳C#做的简单程序的破解

[复制链接]
跳转到指定楼层
楼主
wasdzjh 发表于 2025-3-23 17:29 回帖奖励
本帖最后由 wasdzjh 于 2025-3-23 17:33 编辑

大家好, 我是wasdzjh ,很久没有出教程了,我写的教程也是对于新人有用,希望新人可以看到我的教程,有一些启发,跟着我的教程可以做一遍。多总结,多实践。不会就问论坛的大佬,我感觉热心人还是挺多的,氛围还是可以的。好了不说太多废话了,开始今天的破解之路。
==========================================废话分隔符=====================================================================
工具:dnspy
查壳工具peid0.95  
软件:我自己写的软件
==========================================准备分隔符======================================================================
第一步:查壳(没有壳子)

第二步:分析软件

输入加密前的字符11.点击下面加密会出现加密后的字符,输入密码,然后点击验证如果加密后的字符和你输入的密码一样,会弹出正确的对话框。

第二步:开始破解
破解一:
看到C#写的软件,首先想到的软件就是dnspy,这个软件可以清楚的看到里面的代码,除非是一些代码做了加密,会看不到。

看到里面的代码可以看到没有加密,接下来就是找关键的验证方法,我们一个一个排除。
Jami_Click
[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
private void Jami_Click(object sender, EventArgs e){
        bool flag = this.textBox1.Text == "" && this.textBox2.Text == "" && this.textBox3.Text == "";
        if (flag)
        {
                MessageBox.Show("不能为空", "温馨提示");
        }
        else
        {
                string text = this.textBox1.Text;
                string text2 = this.JmMD5(text);
                this.textBox2.Text = text2;
        }
}

代码的意思就是不能为空,然后text2就等于MD5加密后的字符,所以接下来就是找JmMD5 这个方法
[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
private string JmMD5(string input)
{
        string result;
        using (MD5 md = MD5.Create())
        {
                byte[] bytes = Encoding.UTF8.GetBytes(input);
                byte[] array = md.ComputeHash(bytes);
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < array.Length; i++)
                {
                        stringBuilder.Append(array[i].ToString("x2"));
                }
                result = stringBuilder.ToString();
        }
        return result;
}
  这个是MD5加密的方法(只限于了解)然后找到验证的方法(YanZheng_Click
[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
private void YanZheng_Click(object sender, EventArgs e)
{
        bool flag = this.textBox3.Text == "";
        if (flag)
        {
                MessageBox.Show("请输入正确密码", "温馨提示");
        }
        else
        {
                string text = this.textBox2.Text;
                string text2 = this.textBox3.Text;
                bool flag2 = text == text2;
                if (flag2)
                {
                        MessageBox.Show("正确", "验证结果");
                }
                else
                {
                        MessageBox.Show("错误", "验证结果");
                }
        }
}
可以看到正确的弹框,所以修改就在这个方法修改即可。我们的目的就是要一个正确的弹框,所以就让他直接输出一个正确的弹框即可。
选中任何一行----右键---编辑方法(Ctrl+shift+E)----将其他代码都删掉留下MessageBox.Show("正确", "验证结果");即可。如图:

然后点文件的保存模块即可。么有报错说明没有问题。接下来开始验证破解后的程序

破解二(网页破解法)
大家知道是MD5的加密方法,所以网上的在线MD5加密也是可以的,找到一个加密网站试试

破解三(断点破解法)
找到程序MD5加密的方法,然后32行下断点,然后点击运行,断下来就能看到加密后的数值。大家自行验证,如图:

至此,破解方法都告诉大家了,大家有什么不懂的可以问我。大家有CB的评分一下,热心也给点,感谢大家了,希望你们可以从中有些收获。本文献给菜鸟萌新玩家,大佬就别看了。



















免费评分

参与人数 5吾爱币 +11 热心值 +5 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fessicon + 1 + 1 谢谢@Thanks!
applepv + 1 + 1 谢谢@Thanks!
woyucheng + 1 + 1 谢谢@Thanks!
10830 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
BrutusScipio 发表于 2025-3-24 22:41
反汇编直接干到方法里了,其实可以先看看机器码 至于加密可以展开下常见几种加密方法的识别和尝试
沙发
10830 发表于 2025-3-23 17:34
3#
Orima 发表于 2025-3-23 17:47
4#
vdavidyang 发表于 2025-3-23 17:51
谢谢分享 让我认真研究学习一下
5#
ma1803160 发表于 2025-3-23 17:57
谢谢分享,参考学习学习一下
6#
linlin01 发表于 2025-3-23 18:02
很详细,看的很通透,容易看懂得,感谢学习了
7#
fabaonb 发表于 2025-3-23 18:05
谢谢分享
8#
3273850922 发表于 2025-3-23 18:21
感谢分享
9#
wuaipojieqqjj 发表于 2025-3-23 18:45
谢谢分享,参考学习学习一下
10#
swingsheep 发表于 2025-3-23 18:47
x谢谢分享,参考学习学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-27 09:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表