飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3693|回复: 8

[原创] 发表下自己写的CrackMe

[复制链接]
  • TA的每日心情
    开心
    2016-11-4 23:26
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2011-4-30 10:37:23 | 显示全部楼层 |阅读模式
    觉得论坛有点冷~
    就想活跃一下哈哈~~
    另外想发表下自己写的CrackMe,
    一是想看看论坛大侠的算法分析能力。
    二是希望大家指出我写的算法的不够地方。
    1。都一个CrackMe是明码比较没有什么很难;
    2. 第二CrackMe非明天比较的。
    3.这个CrackMe也是没有有加壳,没有做防爆。因为我只是想和大家一起研究算法。也就什么也没有加了~
    呵呵;):
    4.这个CrackMe可以用任意的用户名进行注册,不像第一个CrackMe哪样限定了几个字符。

    我说说我CrackMe思路:
    1. 把用户名x进加密得到字符s。
    2.把加密后在与用户名逻辑异或运算F;
    3.在把X S F进行运算得到密文。
    4.把注册码也做了个加密
    5.最后两个加密的密文进行比较~
    呵呵说的这么复杂~~
    只认真看看就很容易写算法注册机了~~~~。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x

    评分

    参与人数 1威望 +20 飘云币 +40 收起 理由
    MOV + 20 + 40 多谢您的参与!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-5-2 18:25:15 | 显示全部楼层
    高手分析一下吧,LLLLLL。。。。。。555555
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-10-25 13:07
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2011-5-2 20:42:06 | 显示全部楼层
    我研究了下  就是你输入的用户名的十六进制算出来的密文后为必须为双数
    比如  我输入用户名:a  z   r  e  a  l
                        53 59 62 56 53 3A                              
                        S  Y   b  V  S  :
    就拿 (r)来说明  

    r =  b(经过算法计算得到的) = 62



    这个call 00401201  |.  E8 FAFEFFFF   call    00401100  是用户名计算出来的密和输入注册码计算出来密文作比较判断

    好我们来看这个注册码计算关键代码:
    004011D8  |> /8A5404 30     /mov     dl, byte ptr [esp+eax+30]  取假码
    004011DC  |. |0FBECA        |movsx   ecx, dl                 
    004011DF  |. |81E1 0F000080 |and     ecx, 8000000F           取注册码十六进制与8000000F与  为X1      比如 我输入 字符串 a = 61(十六进制)  与  8000000F  进行与运算  所以 ecx=1
    004011E5  |. |79 05         |jns     short 004011EC      
    004011E7  |. |49            |dec     ecx
    004011E8  |. |83C9 F0       |or      ecx, FFFFFFF0
    004011EB  |. |41            |inc     ecx
    004011EC  |> |02CA          |add     cl, dl                 在就把注册码的十六进制  +  X1            dl= a =61 + X1  =  62(b)  关键就是这里
    004011EE  |. |884C04 30     |mov     byte ptr [esp+eax+30], cl
    004011F2  |. |40            |inc     eax
    004011F3  |. |3BC6          |cmp     eax, esi
    004011F5  |.^\7C E1         \jl      short 00401

    这样看就明白多了  , 如果还不明白的就多调试几次 就明白了

    就是  输入用户名 (r)  =  通过用户名计算出来的密文(b(62))  =   输入的注册码(a(61))  =  成功


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-5-2 21:06:01 | 显示全部楼层
    P
    8
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-5-3 09:50:24 | 显示全部楼层
    楼主可以多去玩下密码学库 三四行的代码 对于没基础过密码学库的人分析 将是非常痛苦的

    PS: 有时间可以多接触写编程开发方面的东西
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-10-25 13:07
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2011-5-3 10:00:53 | 显示全部楼层
    和N大说的一样,你有很好的编程功底,多学习下密码学,那是很让人头痛的
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-11-4 23:26
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2011-5-3 12:10:04 | 显示全部楼层
    ~~
    我正在学习~WIN32编程~
    也看NISY
    的C语言;
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-11-4 23:26
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2011-5-3 12:28:25 | 显示全部楼层
    我开始时对注册码也进行了加密的用的是~~
    jimei(char *s, char *y)
    {
       int sum;
       while ( *s != '\0')
       {
           sum = *s%0X10;
           *s  +=sum;
           s++;
       }
    }
    这样加出来的KEY2与用户名算出来的KEY2有很多是不相同的~。
    要对KEY2作大量的判断处理.因此用间单的加密方式:
    jimei(char *s, char *y)
    {
       while ( *s != '\0')
       {
          *s +=1;
          s++;
       }
    }
    也是方便像我一样的新手可以写出注册机。。。。。/:018 /:018
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-5-3 13:11:59 | 显示全部楼层
    什么算法都不重要,关键如何让别人带KEY都无法爆破才是王道中的王道
    (虽然没法做到,但还是尽可能去做)
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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