首页
社区
课程
招聘
[旧帖] [讨论]C#写了个CM给新手破解(有源码),重点在CrackMe2.2上。感觉有点难。前面的版本适合新手 0.00雪花
发表于: 2011-11-28 11:26 3109

[旧帖] [讨论]C#写了个CM给新手破解(有源码),重点在CrackMe2.2上。感觉有点难。前面的版本适合新手 0.00雪花

2011-11-28 11:26
3109
刚刚开始学习破解。用c#写了个CM使用的是.net 2.0框架集。

给新手们一个例子,看谁先破解出来

破解出来后,我会公布源码。

新手写的程序。大神莫喷:
o:

还有就是因为是C# 反编译起来比较容易,我有没钱买混淆工具。所以大家可以找出密码后在爆破试试。

希望已经破解的大鸟,能给些思路。。。。。。

CrackMe 2.0 重新上传,请破解了第一个的再尝试以下第二个吧,提示以下,密码都是在程序里面的。



CrackMe 2.2 未混淆  经过一番尝试,终于爆破成功。有需要的可以说。我把爆破的过程弄上来。

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (45)
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
我晕。。。。我讨厌 C#。。。。
2011-11-28 11:29
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
我刚刚自己试了下,不知道为什么,下API断点,段不下。
2011-11-28 11:41
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
TextBox1
2011-11-28 11:42
0
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
IDA 轻松5min搞掂~~~~飘过。。。
2011-11-28 11:43
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
偶崇拜你
2011-11-28 11:53
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
能简单介绍以下破解过程吗?
2011-11-28 11:54
0
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
TextBox1

明码比较的
上传的附件:
2011-11-28 12:02
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
private int b(string A_0)
{
    if (A_0 == "")
    {
        MessageBox.Show("Text can not null!");
        return -1;
    }
    if (A_0.Trim() != this.b)
    {
        MessageBox.Show("Wrong message!");
        return -1;
    }
    this.a = true;
    return 1;
}

 public a()
{
    this.a = false;
    this.b = "TextBox1";
    this.c = null;
    this.b();
}

 



使用软件:Reflector
2011-11-28 12:51
0
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
IDA 要把 数据段 改成代码段 才行。  

不过不是很方便而已。。。跟踪 Msgbox 和  TextBox

IDA无法列出图,而且所有的都是 数据段。

db 0
db 0 开头的都是 数组,可以组合起来显示。

text:004036FB                 db    0
.text:004036FC                 db    0
.text:004036FD                 db  0Dh
.text:004036FE                 db  45h ; E
.text:004036FF                 db    0
.text:00403700                 db  72h ; r
.text:00403701                 db    0
.text:00403702                 db  72h ; r
.text:00403703                 db    0
.text:00403704                 db  6Fh ; o
.text:00403705                 db    0
.text:00403706                 db  72h ; r
.text:00403707                 db    0
.text:00403708                 db  21h ; !
.text:00403709                 db    0
.text:0040370A                 db    0
.text:0040370B                 db    1
.text:0040370C                 db    0
.text:0040370D                 db  25h ; %
.text:0040370E                 db  54h ; T
.text:0040370F                 db    0
.text:00403710                 db  65h ; e
.text:00403711                 db    0
.text:00403712                 db  78h ; x
.text:00403713                 db    0
.text:00403714                 db  74h ; t
.text:00403715                 db    0
.text:00403716                 db  20h
.text:00403717                 db    0
.text:00403718                 db  63h ; c
.text:00403719                 db    0
.text:0040371A                 db  61h ; a
.text:0040371B                 db    0
.text:0040371C                 db  6Eh ; n
.text:0040371D                 db    0
.text:0040371E                 db  20h
.text:0040371F                 db    0
.text:00403720                 db  6Eh ; n
.text:00403721                 db    0
.text:00403722                 db  6Fh ; o
.text:00403723                 db    0
.text:00403724                 db  74h ; t
.text:00403725                 db    0
.text:00403726                 db  20h
.text:00403727                 db    0
.text:00403728                 db  6Eh ; n
.text:00403729                 db    0
.text:0040372A                 db  75h ; u
.text:0040372B                 db    0
.text:0040372C                 db  6Ch ; l
.text:0040372D                 db    0
.text:0040372E                 db  6Ch ; l
.text:0040372F                 db    0
.text:00403730                 db  21h ; !
.text:00403731                 db    0
.text:00403732                 db    0
.text:00403733                 db  1Dh
.text:00403734                 db  57h ; W
.text:00403735                 db    0
.text:00403736                 db  72h ; r
.text:00403737                 db    0
.text:00403738                 db  6Fh ; o
.text:00403739                 db    0
.text:0040373A                 db  6Eh ; n
.text:0040373B                 db    0
.text:0040373C                 db  67h ; g
.text:0040373D                 db    0
.text:0040373E                 db  20h
.text:0040373F                 db    0
.text:00403740                 db  6Dh ; m
.text:00403741                 db    0
.text:00403742                 db  65h ; e
.text:00403743                 db    0
.text:00403744                 db  73h ; s
.text:00403745                 db    0
.text:00403746                 db  73h ; s
.text:00403747                 db    0
.text:00403748                 db  61h ; a
.text:00403749                 db    0
.text:0040374A                 db  67h ; g
.text:0040374B                 db    0
.text:0040374C                 db  65h ; e
.text:0040374D                 db    0
.text:0040374E                 db  21h ; !
2011-11-28 12:59
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
重新编译了以下,加密了密码。
2011-11-28 13:22
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12

public b()
{
    this.a = false;
    this.b = "textBox1.Text";
    this.c = null;
    this.b();
}


internal class d
{
    // Methods
    public d();
    public string a(string A_0);
}

 


 public string a(string A_0)
{
    string str = "T";
    for (int i = A_0.Length - 1; i >= 0; i--)
    {
        str = str + A_0.Substring(i, 1);
    }
    return str;
}

 


private string b(string A_0)
{
    byte[] bytes = Encoding.Default.GetBytes(A_0.ToCharArray());
    byte[] buffer2 = new MD5CryptoServiceProvider().ComputeHash(bytes);
    d d = new d();
    return d.a(BitConverter.ToString(buffer2).Replace("-", ""));
}

 


private int c(string A_0)
{
    if (A_0 == "")
    {
        MessageBox.Show("Text can not null!");
        return -1;
    }
    if (A_0.Trim() != this.b(this.b))
    {
        MessageBox.Show("Wrong message!");
        return -1;
    }
    this.a = true;
    return 1;
}

 



密码明文:textBox1.Text
加密函数:
private string b(string A_0)
{
    byte[] bytes = Encoding.Default.GetBytes(A_0.ToCharArray());
    byte[] buffer2 = new MD5CryptoServiceProvider().ComputeHash(bytes);
    d d = new d();
    return d.a(BitConverter.ToString(buffer2).Replace("-", ""));
}

密文:
TCE9FD18E8F3794F50FC61FABFF46CA8C

知道了明文是:textBox1.Text

可以通过以下C#代码获取加密后的密文:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        class d
        {
            
            public string a(string A_0)
            {
                string str = "T";
                for (int i = A_0.Length - 1; i >= 0; i--)
                {
                    str = str + A_0.Substring(i, 1);
                }
                return str;
            }
        }

        private string b(string A_0)
        {
            byte[] bytes = Encoding.Default.GetBytes(A_0.ToCharArray());
            byte[] buffer2 = new MD5CryptoServiceProvider().ComputeHash(bytes);
            d d = new d();
            return d.a(BitConverter.ToString(buffer2).Replace("-", ""));
        }


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

        }
    }
}
2011-11-28 13:41
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
换了个程序,有点换汤不换药的感觉
2011-11-28 13:55
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
14
TCE9FD18E8F3794F50FC61FABFF46CA8C
2011-11-28 14:02
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
}
    if (A_0.Trim() != this.b)
    {
        MessageBox.Show("Wrong message!");
        return -1;
    }

public a()
{
    this.a = false;
    this.b = "TextBox1";    this.c = null;
    this.b();
}
2011-11-28 14:06
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
大神好威武
2011-11-28 14:09
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
你这个我没看懂
2011-11-28 14:32
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
2.1 和2.0 貌似一样,难道LZ传错了?
2011-11-28 14:39
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
谢谢我传错附件了。
2011-11-28 14:43
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
20
11
22
2011-11-28 14:53
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
由于验证出现bug导致输入错误的密码就会成功破解,新的版本中已经更改。
2011-11-28 15:09
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
2.1 任意用户名,任意密码都可以成功?
2011-11-28 15:12
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
LZ的2.1有问题。

用户名、密码只要不为空就能成功。。。。。
2011-11-28 15:12
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
2.1直接跳过,2.2已更改错误

2.1逻辑错了点问题
2011-11-28 15:15
0
雪    币: 52
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
2.1直接跳过,2.2已更改错误

2.1逻辑错了点问题
2011-11-28 15:16
0
游客
登录 | 注册 方可回帖
返回
//