吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2223|回复: 14
收起左侧

[CrackMe] C# CrackMe 测试

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

因为C#代码反编译结果 == 源码,所以难度上很低,但是我尝试了一些方法,各位大佬能通过反编译正确获取到密码吗?
注意:本测试程序中使用写了一个小算法进行字符串处理,同样进行了代码混淆处理,上传两份,一个是经过自己简单混淆,另一个是通过程序混淆的。

本帖子中包含更多资源

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

x

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

 楼主| 一只小凡凡 发表于 2023-6-12 14:57
本帖最后由 一只小凡凡 于 2023-6-12 15:00 编辑

确实,普通的混淆,逆向软件会直接处理变量名,方法名等,也会删除一些混淆用的无意义代码,无法做到特别好的混淆程度,混淆软件也差不多,C#的唯一解就是开源,不让逆向走路,无敌!回到这个程序本身,这个算法的加密过程首先将输入字符串转换为Unicode字节序列,然后将每个字节模3,从而得到一个0到2之间的整数。最后,将这些整数映射到'o'、'O'和'0'字符,并将它们追加到结果字符串中,所以这个的正确答案就是有很多个解,只要符合这个转换规律的就是正确答案。

我在设计之初就将『UnPackMe◇CrackMe◇KeyGenMe◇ReverseMe』转换成了Oo0的形式放到了正确的判断上面,还是各位大佬牛波一啊!

[Java] 纯文本查看 复制代码
public class StringConverter
{
    // 转换字符集合
    private static readonly char[] ConversionChars = { 'o', 'O', '0' };
    // 取模的数字
    private const int ModulusNumber = 3;

    public string ConvertString(string inputString)
    {
        if (string.IsNullOrEmpty(inputString)) 
            return string.Empty;

        var bytes = Encoding.Unicode.GetBytes(inputString);
        var resultBuilder = new StringBuilder();

        foreach (var byte in bytes)
        {
            // 取模得到余数,然后映射到转换字符集合中的一个对应字符
            var conversionCharIndex = byte % ModulusNumber;
            resultBuilder.Append(ConversionChars[conversionCharIndex]);
        }

        return resultBuilder.ToString();
    }
}
凉游浅笔深画眉 发表于 2023-6-12 09:38
确实牛逼,依旧和源码没区别。

本帖子中包含更多资源

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

x
头像被屏蔽
qiqi2050352 发表于 2023-6-13 15:58
gailium 发表于 2023-6-13 08:06
zhanglei1371 发表于 2023-6-12 13:05
maxtocode似乎没见过破解的,强度相当大。

试试破解devx gamerecovery最新版
byh3025 发表于 2023-6-12 10:00
楼主的结果加密了,不知道怎么去解密

本帖子中包含更多资源

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

x
ps122 发表于 2023-6-12 10:08
和源码有区别吗?2122102220101022200212222201212012220

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +2 收起 理由
一只小凡凡 + 2 用心讨论,共获提升!

查看全部评分

vcdemon 发表于 2023-6-12 10:24
babbacbbbcacacbbbccbabbbbbcababcabbbc
答案应该有无数的可能性。
[Asm] 纯文本查看 复制代码
class Program
    {
        public static string oOoO0O0O00oO(string Oo0O0oO0oOo)
        {
            if (string.IsNullOrEmpty(Oo0O0oO0oOo))
            {
                return string.Empty;
            }
            byte[] bytes = Encoding.Unicode.GetBytes(Oo0O0oO0oOo);
            StringBuilder stringBuilder = new StringBuilder();
            foreach (byte b in bytes)
            {
                int num2 = (int)(b % 3);
                stringBuilder.Append(char_0[num2]);
            }
            return stringBuilder.ToString();
        }

        // Token: 0x04000003 RID: 3
        private static readonly char[] char_0 = new char[]
        {
            'o',
            'O',
            '0'
        };

        static void Main(string[] args)
        {
            string encrypt = "0oOo0o0oOooo0o0o0oooOoooOooo0o0o0ooooo0oOo0o0o0o0o0oooOo0oOo0oooOo0o0o0ooo";
            byte[] bytes = new byte[encrypt.Length];

            for (int i=0; i<encrypt.ToCharArray().Length;i++)
            {
                char c = encrypt.ToCharArray()[i];
                for (int num2 = 0; num2 < char_0.Length; num2++)
                {
                    byte b = 0;
                    if (char_0[num2] == c)
                    {
                        if (num2 == 0)
                        {
                            if (i % 2 == 0)
                            {
                                bytes[i] = 99;
                            }
                            else
                            {
                                bytes[i] = 0;
                            }
                        }
                        else
                        {
                            b = (byte)(96 + num2);
                            bytes[i] = b;
                        }
                        //bytes[i*2+1] = 0;
                        break;
                    }
                }
            }

            byte[] aa = Encoding.Unicode.GetBytes("a");


            string Oo0O0oO0oOo = Encoding.Unicode.GetString(bytes);
            Console.WriteLine(Oo0O0oO0oOo);
            string aaa = oOoO0O0O00oO(Oo0O0oO0oOo);
            Console.WriteLine(aaa);
            Console.ReadKey();
        }
    }

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +2 收起 理由
一只小凡凡 + 2 用心讨论,共获提升!

查看全部评分

山顶的一棵草 发表于 2023-6-12 10:53




abcdefghijklmnopqrstuvwxyz 对应的
大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小 小小 大小 零小

只要等于 0oOo0o0oOooo0o0o0oooOoooOooo0o0o0ooooo0oOo0o0o0o0o0oooOo0oOo0oooOo0o0o0ooo

本帖子中包含更多资源

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

x
wincao 发表于 2023-6-12 11:15
C#代码反编译结果 == 源码,真是没办法了吗…………我也想找到解决方法。
余吉 发表于 2023-6-12 11:18
你的密文有多个解啊
zhanglei1371 发表于 2023-6-12 13:05
wincao 发表于 2023-6-12 11:15
C#代码反编译结果 == 源码,真是没办法了吗…………我也想找到解决方法。

maxtocode似乎没见过破解的,强度相当大。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 12:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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