飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3286|回复: 8

虽不是小组成员,斗胆发个PYG 5.4 Cracker 小组 课外练习10的注册过程.

[复制链接]
  • TA的每日心情
    难过
    2016-9-22 16:32
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2006-5-22 18:56:24 | 显示全部楼层 |阅读模式
    【文章标题】: PYG 5.4 Cracker 小组 课外练习10 PJ
    【文章作者】: hczcyy
    【作者邮箱】: hczcyy@163.com
    【作者QQ号】: 55346577
    【软件名称】: PYG 5.4 Cracker 小组 课外练习10
    【下载地址】: 上面
    【加壳方式】: 无
    【保护方式】: 机器码+序列号
    【使用工具】: peid,od
    【操作平台】: winxp+sp2
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
      1.下载,运行随便输入87654321,提示输入的注册码不对.
      2.用peid查壳,无壳显示ms c++7.0
      3.用od载入.查找"输入的注册码不对",双击,来到这里:
      
      004010F8    6A 68           push 68
      004010FA    FF75 08         push dword ptr ss:[ebp+8]
      004010FD    E8 CC000000     call <jmp.&USER32.GetDlgItemTextA>      //取得假码  "87654321"
      00401102    803D 6C304000 0>cmp byte ptr ds:[40306C],0              //比较第一个字符是否为"o",也就是比较是否输入
      00401109    74 69           je short Crackme1.00401174              //为空,为空则完
      0040110B    68 18304000     push Crackme1.00403018               ; 输入的序列号不正确!
      00401110    68 6C304000     push Crackme1.0040306C               ; e:\
      00401115    E8 F0000000     call <jmp.&KERNEL32.lstrcmpA>          //这个call是对假码进行比较,看是否为数字,不是数字则完
      0040111A    85C0            test eax,eax
      0040111C    74 56           je short Crackme1.00401174
      0040111E    B8 01000000     mov eax,1                               // eax=1
      00401123    0FA2            cpuid                                   //获取cpuid ==eax=6b4(我的机器是这个,不同的应该不同)
      00401125    8B0D 58304000   mov ecx,dword ptr ds:[403058]           //序列号入栈 "ec83e421"
      0040112B    33D2            xor edx,edx                             //清零 edx
      0040112D    F7E1            mul ecx                                 //eax=eca×eax
      0040112F    03C2            add eax,edx                             //eax=edx+eax (干脆edx清零了,这里怎么成了631?请高手指教)
      00401131    50              push eax                                //结果入栈 "64153365".
      00401132    68 3E304000     push Crackme1.0040303E               ; %1x    //把刚才计算出来的结果转换为字符串
      00401137    68 5C304000     push Crackme1.0040305C               ; ec83e421 //
      0040113C    E8 7B000000     call <jmp.&USER32.wsprintfA>
      00401141    83C4 0C         add esp,0C
      00401144    68 6C304000     push Crackme1.0040306C               ; e:\       //假码
      00401149    68 5C304000     push Crackme1.0040305C               ; ec83e421  //真码 ==>>  这里下内存注册机
      0040114E    E8 B7000000     call <jmp.&KERNEL32.lstrcmpA>                    //比较函数
      00401153    85C0            test eax,eax
      00401155    75 1D           jnz short Crackme1.00401174                     //关键跳转. 75==>>74 爆破
      00401157    6A 10           push 10
      00401159    E8 7C000000     call <jmp.&USER32.MessageBeep>
      0040115E    6A 00           push 0
      00401160    68 00304000     push Crackme1.00403000               ; 注册成功
      00401165    68 09304000     push Crackme1.00403009               ; 谢谢你的注册!
      0040116A    FF75 08         push dword ptr ss:[ebp+8]
      0040116D    E8 6E000000     call <jmp.&USER32.MessageBoxA>
      00401172    EB 0F           jmp short Crackme1.00401183
      00401174    68 18304000     push Crackme1.00403018               ; 输入的序列号不正确!
      00401179    6A 68           push 68
      0040117B    FF75 08         push dword ptr ss:[ebp+8]
      0040117E    E8 69000000     call <jmp.&USER32.SetDlgItemTextA>
      
      
    --------------------------------------------------------------------------------
    【经验总结】
      序列号:ec83e421
      注册码:64153365
      
      算法注册机我不会,因为用到了cpuid,估计这个用到了汇编编程.
      第一次发文,请大家多多指教.
      
    --------------------------------------------------------------------------------
    【版权声明】: 本文原创于PYG官方论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                           2006年05月22日 18:55:01
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-22 19:59:35 | 显示全部楼层
    原帖由 hczcyy 于 2006-5-22 18:56 发表
    【文章标题】: PYG 5.4 Cracker 小组 课外练习10 PJ
    【文章作者】: hczcyy
    【作者邮箱】: hczcyy@163.com
    【作者QQ号】: 55346577
    【软件名称】: PYG 5.4 Cracker 小组 课外练习10
    【下载地址】: 上面
    【加 ...


    牛人呀。。。我们小组随时欢迎兄弟来指导!呵呵。。。 :handshake :victory:
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2016-9-22 16:32
  • 签到天数: 4 天

    [LV.2]偶尔看看I

     楼主| 发表于 2006-5-22 20:01:38 | 显示全部楼层
    原帖由 野猫III 于 2006-5-22 19:59 发表


    牛人呀。。。我们小组随时欢迎兄弟来指导!呵呵。。。 :handshake :victory:


    谢谢对我的鼓励.
    我在TM上申请加入企业群了.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-22 22:29:41 | 显示全部楼层
    00401123    0FA2            cpuid                                   //获取cpuid ==eax=6b4(我的机器是这个,不同的应该不同)
      00401125    8B0D 58304000   mov ecx,dword ptr ds:[403058]           //序列号入栈 ""
      0040112B    33D2            xor edx,edx                             //清零 edx
      0040112D    F7E1            mul ecx                                 //eax=eca×eax
      0040112F    03C2            add eax,edx                             //eax=edx+eax (干脆edx清零了,这里怎么成了631?请高手指教)
      00401131    50              push eax                                //结果入栈 "64153365".
    因为ec83e421乖6b4=63164152d34即631    64152d34,如果不明白,这样理解因为EAX载不下了,所以放到EDX里面了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-22 23:47:18 | 显示全部楼层
    楼上 的分析的对的啊
    eax寄存器最大8位
    而63164152D34是11位
    所以前3位放到edx中  可以认为是进位
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-23 06:59:57 | 显示全部楼层
    呵呵 过来学习一下~
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2016-9-22 16:32
  • 签到天数: 4 天

    [LV.2]偶尔看看I

     楼主| 发表于 2006-5-23 16:57:07 | 显示全部楼层
    原帖由 lhl8730 于 2006-5-22 22:29 发表
    00401123    0FA2            cpuid                                   //获取cpuid ==eax=6b4(我的机器是这个,不同的应该不同)
      00401125    8B0D 58304000   mov ecx,dword ptr ds:           //序列号入栈  ...



    谢谢指导,我明白了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-6-8 20:04:08 | 显示全部楼层
    看来多看看算法过程还是有好处的,谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-12-1 10:24
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2006-6-12 12:46:16 | 显示全部楼层
    原帖由 fantasy 于 2006-5-22 23:47 发表
    楼上 的分析的对的啊
    eax寄存器最大8位
    而63164152D34是11位
    所以前3位放到edx中  可以认为是进位


    原来如此!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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