飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3889|回复: 5

[C/C++] 老虎的CM简单分析

[复制链接]

该用户从未签到

发表于 2010-3-3 01:13:05 | 显示全部楼层 |阅读模式
看到老孙和亮亮在玩,凑个热闹,这个是老虎好久前写的,总体设计上还是有些缺陷的,可能那个时候他也只是玩下而已。该CM属于简单型的,逆向算法的时候可以投机取巧。汇编代码的分析上就不写了,也就十来行,比较简单。

#include "stdafx.h"
#include <string.h>
#define keylen 18  // 输出KEY的长度

int main(int argc, char* argv[])
{
        char * pStr = "i am Bin Laden"; // 14
        char szKey[50];
        char szName[50]={0};

        puts("         老虎的CM注册机 \r\n");
        puts("说明:该穷举算法不能对所有用户名都有效,请尽量使用英文字符做用户名。");
        puts("注意:用户名长度应>=10 且 <=16!");
        printf("Please input your name: ");
        scanf("%s",szName);
        strcat(szName,pStr);
        char cc = 'A';
        do
        {
                for (unsigned int i = 0;i < strlen(szName);i++)
                {
                        szKey[i] = (*(szName + i) * cc ) % 0x1a + 0x41;
                }
        } while ( szKey[4+keylen] != cc && (cc++ <= 'Z'));
        if (cc <= 'Z')
        {
                printf("Your key is : ");
                for (int j = 4+keylen ; j>4;j--)
                {
                        printf("%c",*(szKey+j));
                }
                printf("\r\n");
        }
        else
        {
                puts("抱歉,该Name没有对应的Key!");
        }
        return 0;
}

0.JPG
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2010-3-3 22:40:02 | 显示全部楼层
友情提示下 这个KEY如果不做固定 即也来参与做一个循环的话 就会降低无KEY的可能性

代码就不修改了 这个东东不好玩哈
PYG19周年生日快乐!

该用户从未签到

发表于 2010-3-4 11:43:17 | 显示全部楼层
只能膜拜,无法学习
再次膜拜算法分析../:17
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2010-3-4 20:19:07 | 显示全部楼层
原帖由 boy 于 2010-3-4 11:43 发表
只能膜拜,无法学习
再次膜拜算法分析../:17


膜拜明哥当年分析的那个矩阵乘法 再次膜拜 ~
PYG19周年生日快乐!

该用户从未签到

发表于 2010-3-5 12:24:11 | 显示全部楼层
/:L 老秦是不是又受上尚打击了..
发现只要你一受打击就跑来打击我...为什么杯具的总是我~
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-8-23 14:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-3-12 22:19:04 | 显示全部楼层
    CreakMe 到底是怎么做才算是合格的?/:012
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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