首页
社区
课程
招聘
[旧帖] [求助]知道源码和加密后的码,怎么搞清楚加密算法? 0.00雪花
发表于: 2007-6-3 23:05 7344

[旧帖] [求助]知道源码和加密后的码,怎么搞清楚加密算法? 0.00雪花

2007-6-3 23:05
7344
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
不是吧,很简单的,给你做个示范吧,下面是我写的加密程序

#include<iostream.h>
#include<stdio.h>
#include<string.h>
void TT(int a);
void CRACK(void);
int ZHEN(int i);
int SUM(int a,int b,int c);
main()
{
    cout<<"                ---------------------------------------"<<endl;
    cout<<"                   --------------yingyue------------"<<endl;
    cout<<"                  --------------vvvvvvaa@tom.com------"<<endl;
    cout<<"                -----------------CrackMe 2--------------"<<endl;
    cout<<"                    >>>>>>>>>>  不要爆破  <<<<<<<<<<<           "<<endl;
    char name[20];
    int len,code,w,j;
    int *p=new int [1300];          // 骗人的
    int sn,i,a;
    cout<<endl<<endl;
    cout<<">>> 请输入你的大名吧 :";
    cin.get(name,20);
    len=strlen(name);
    if(len<3)
    return 0;
    cout<<endl<<endl;
    cout<<">>> 请输入你的假码吧 :";
    cin>>code;
    for(i=0;i<len*101;i++)       //输入了 8 个字符后,这里输出了 24
    {
        sn=i;
        a=sn;          // a 取得当前 i 的值
        sn*=2;
        sn=i-3;
        sn=ZHEN(a);                 //整个循环里就只有这个有用的
        w=sn*4;
        j=w*2+33;
        p[i]=i*3/2;               // 骗人的
    }
    cout<<endl<<endl;
    delete [] p;      //释放动态数组
    if(a<783)     //这里变相要你的用户名不能小于8位
    return 0;
    sn=sn+name[2]+name[4];  //这里把注册码和用户名勾挂
    a=SUM(code,sn,len);   // 把上面流水循环最后的结果流到这个函数继续工作
    TT(a);        // 显示 成功.失败 函数
}
//----------------------------------   下面是函数定义部份
int ZHEN(int a)
{
    int sn;
    sn=a/90*3;
    return sn;
}
int SUM(int code,int a,int len)
{
    int b=a*10,sn;
    int s,v;
    sn=(len*b^-54321)/(b/len);
    s=code-(code-len*1.5);
    v=code+(code/s);
    if(sn-v==0)         ////////////   留意留意留意啊,就是这里做比较
    return 11;
    else
    return 1;
}
void CRACK(int a)
{
    if(a!=11)
    {
    cout<<">>>>> 恭喜你,还有努力啊!"<<endl;
    getchar();
    }
}
void TT(int  a)
{
    if(a==11)
    {
    cout<<">>>>> 叫你输入假码,你就输入真码,严重佩服你的能力,强"<<endl;
    getchar();
    }
    CRACK(a);
}

——————————————————————————————————

if(sn-v==0)         ////////////   留意留意留意啊,就是这里做比较

但这个程序不是明码的,你就在这里下个断点,乱输入几个注册码,拿到样本后就穷举一下, OK ?
2007-6-3 23:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我要做的不是破解软件,而是根据加密前后的数据文件,找出数据加密的密匙和算法,不知道楼上说的和这个有关系没有,我不懂,请原谅
2007-6-4 11:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
希望新老高手指教一下啊。希望有人能提供该类功能的工具。谢谢。等待中。。。。。。。。。
2007-6-4 11:21
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
5
除了一些很简单的一眼能看出来的算法外,你所说的通过加密前后的文件就能知道加密算法是不可能的。
2007-6-4 14:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢楼上,看来只能放弃这个思路了
2007-6-4 14:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我说的是文件加密,里边有大量的数据供分析,加密前后的文件都有,没有类似的分析软件吗?
2007-6-5 19:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我想还是应该有类似的软件吧?谁知道阿,提供下,谢谢了
2007-6-5 19:46
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
9
你需要知道是哪个程序加密了这个文件,然后跟踪调试该程序,找出它的加密算法。
否则......嘿嘿,就是找到 Bruce Schneier 和 Ron Rivest,估计也无能为力...
2007-6-6 07:20
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
即使知道算法 想知道密钥也是几乎没有可能的
2007-6-6 08:47
0
雪    币: 1203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这几乎是不太可能的事情,要具体问题具体分析,不可能有通用的办法的。
2007-6-6 18:01
0
游客
登录 | 注册 方可回帖
返回
//