吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 1870|回复: 22
收起左侧

[ReverseMe] .net 5.0的ReverseMe,欢迎来艹

  [复制链接]
jy04468108 发表于 2021-5-9 10:41
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 jy04468108 于 2021-5-9 11:55 编辑

基于.net 5.0。如果没有运行环境的请自行下载。
下载地址:https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-5.0.5-windows-x64-installer
我没在其他电脑上测试过,这个运行时应该可以用吧。

分析算法,不要直接修改messagebox的内容,这谁都会。

失败截图:



成功截图:



crackme文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 6吾爱币 +6 热心值 +6 收起 理由
iamhk + 1 + 1 谢谢@Thanks!
alittlebear + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yyb414 + 1 + 1 谢谢@Thanks!
杨辣子 + 1 + 1 裤子都脱了, 就这?车呢?
ming1332236 + 1 + 1 热心回复!
asq56747277 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

asq56747277 发表于 2021-5-9 13:06
本帖最后由 asq56747277 于 2021-5-9 14:06 编辑

对称加密没有Key怎么办,只能是通过对明文结果反向加密,之后加密结果与目标结果对比来暴力枚举出Key么

既然楼主直接说了混淆器,那就直接用de4dot来反混淆,不过官方版本用不了,在论坛翻了翻找到一个对.NET Reactor特攻的de4dot版本
首先先对函数以及用到的变量进行重命名方便后续分析
byte_0 => EncryptedResult
byte_1 => Rijndael_IV
string_0 => Key_Dynamic
smethod_0 => MD5Encrypt
smethod_1 => Encrypt8bitText
smethod_2 => DecryptRijndael
method_0 => RepeatEncrypt

分析之后了解到了验证的流程

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        byte[] bytes = Form1.DecryptRijndael(Form1.EncryptedResult, this.textBox1.Text.Substring(0, 3) + this.Key_Dynamic.Substring(3));
        string @string = Encoding.UTF8.GetString(bytes);
        MessageBox.Show(@string);
    }
    catch (Exception)
    {
        MessageBox.Show("密码错误");
    }
}

在输出结果的函数 button1_Click 内, 对 EncryptedResult 也就是加密后的 密码正确 这个字符串 进行解密, 以第一个文本框前3位加循环加密后的 Key_Dynamic 的3位之后的组成Key来进行解密. 假如Key不对会抛出 Padding is invalid and cannot be removed. 这个错误之后会到catch块中最终输出 密码错误

循环加密的实现

private void RepeatEncrypt(ref int EncryptCount, string Result)
{
    if (EncryptCount <= 0)
    {
        EncryptCount = this.textBox2.Text.Length;
        this.Key_Dynamic = Result;
    }
    else
    {
        EncryptCount--;
        Result = Form1.Encrypt8bitText(Result);
        this.RepeatEncrypt(ref EncryptCount, Result);
    }
}
private static string Encrypt8bitText(string Text2Encrypt)
{
    return BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(Text2Encrypt)), 4, 8).Replace("-", "");
}

加密次数为第二个文本框的文本长度, 每次加密会对需要加密的文本进行MD5处理, 之后从第5个字节(MD5结果)取8个字节并转换为文本. 一共循环 EncryptCount 次, 最终将结果保存到全局字段 Key_Dynamic 中.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 3吾爱币 +2 热心值 +2 收起 理由
西毒杀破浪 + 1 用心讨论,共获提升!
huiker231 + 1 谢谢讲解,今天没B了
jy04468108 + 1 + 1 我很赞同!

查看全部评分

如南风过境z 发表于 2021-5-9 11:39


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| jy04468108 发表于 2021-5-9 14:08
本帖最后由 jy04468108 于 2021-5-9 14:11 编辑
asq56747277 发表于 2021-5-9 13:06
[md]对称加密没有Key怎么办,只能是通过对明文结果反向加密,之后加密结果与目标结果对比来暴力枚举出Key么 ...

我可以直接给出,前三位是:“WWW”
也就是说,用户名是以WWW开头的长度大于3的任意字符串即可。

当然了,你分析的大部分都对,唯一不对的是,key的后面几位,是经过了长度次的md5加密之后,再截取的,所以密码位数是不一定的。

为何不尝试一下修改密文呢,这样岂不是最快?
 楼主| jy04468108 发表于 2021-5-9 11:03
自认为这个还是有难度的,我目前只想到一种破解思路。
花好s月圆 发表于 2021-5-9 11:06
jy04468108 发表于 2021-5-9 11:03
自认为这个还是有难度的,我目前只想到一种破解思路。

加壳了吗?
 楼主| jy04468108 发表于 2021-5-9 11:24

加的弱壳,.NET Reactor
C#不加壳,代码全都可见,那就没意思了啊。
 楼主| jy04468108 发表于 2021-5-9 11:51

直接修改messagebox的内容,那就没有意思了。
花好s月圆 发表于 2021-5-9 12:04
jy04468108 发表于 2021-5-9 11:24
加的弱壳,.NET Reactor
C#不加壳,代码全都可见,那就没意思了啊。

我身边没电脑,不过我的初步想法是文本查找“密码正确”“密码错误”,找到关键跳转,修改关键跳转。
 楼主| jy04468108 发表于 2021-5-9 12:25
花好s月圆 发表于 2021-5-9 12:04
我身边没电脑,不过我的初步想法是文本查找“密码正确”“密码错误”,找到关键跳转,修改关键跳转。

没这么简单的。而且这是。net,不是C++。
 楼主| jy04468108 发表于 2021-5-9 13:15
asq56747277 发表于 2021-5-9 13:06
对称加密没有Key怎么办,只能是通过对明文结果反向加密,之后加密结果与目标结果对比来暴力枚举出Key么

我的初衷是让大家修改密文。从而实现破解。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2021-6-23 13:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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