用户操作
[即时聊天] [发私信] [加为好友]
Red_angelXID:Red_angelX
54022次访问,排名1979好友2人,关注者15
Red_angelX的文章
原创 53 篇
翻译 0 篇
转载 3 篇
评论 26 篇
Red_angelX的公告
新Blog:http://www.cnblogs.com/Red_angelX/ CSDN BLOG停用
最近评论
pplive0018:
lrongk:怎么没有原码
lqqldj:第一次看此类破解文章,大开眼界,谢谢.
afterruins:能把代码发下麽!学习学习!谢谢啊!
li_zhao_long@126.com
zhangwujian85:怎么下不了啊
文章分类
收藏
    相册
    推荐网站
    CodeProject
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 半仙算命v2007 build 01.01 注册算法分析收藏

    新一篇: C#递归求解八皇后 | 旧一篇: DEBUG API写简单的Loader

    【文章标题】: 半仙算命v2007 build 01.01 注册算法分析
    【文章作者】: Red_angelX
    【生产日期】: 20070117
    【软件名称】: 半仙算命v2007 build 01.01
    【软件大小】: 1823K
    【下载地址】: http://www.fuzi.cn/showdown.asp?soft_id=61

    【加壳方式】: 无
    【保护方式】: 注册码

    【编写语言】: Borland Delphi 6.0 - 7.0
    【使用工具】: OD+Dede
    【操作平台】: Win32
    【软件介绍】: 〖半仙算命〗软件集成了多种测算选项,测算内容、测算项目极其丰富,包括姓名吉凶测算、命运推算、科学起名向导、生男生女查询以及万年历、农历、中国黄历、皇历等等实用查询等。软件功能强大,使用简单、绿色、环保,只要你正确选择好出生的日期,即可自动转换为农历、属相、星座等然后软件将依此进行命运推算、姓名推算等等,软件运算参考数十种古代命理、算命、运程、吉凶书籍,有根有据。

    【附加说明】:本文只是学习和研究的目的,如果你要使用,请支持国产 

     以前做过几次内存注册机,每次出新的就要重做,很麻烦...,今天没事就来玩玩,记得老版本注册码是明文,猜想加密不会很复杂~

     查下,没壳?? 记得以前有壳还有自效验的啊,可能是绿色版已经被人搞过了的缘故吧,不管,反正我是要KeyGen,KeyGen出来了什么壳都不在眼里了,DeDe分析,找到注册过程在 553f34上,DeDe任务完了,开OD,载入,下断点,跑起来点注册,嘿嘿真断下了,下面是代码

     

    00553F34   .  55            push    ebp
    00553F35   
    .  8BEC          mov     ebp, esp
    ...................................................................................
    00553F70   
    .  B1 01         mov     cl, 1
    00553F72   
    .  BA 3C425500   mov     edx, 0055423C                    ;  ASCII "SOFTWAREMicrosoftYhds"
    00553F77   
    .  8BC6          mov     eax, esi
    00553F79   
    .  E8 9A5AF5FF   call    004A9A18
    00553F7E   
    .  68 80000000   push    80                               ; /BufSize = 80 (128.)
    00553F83   
    .  8D85 7BFFFFFF lea     eax, dword ptr [ebp-85]          ; |
    00553F89   
    .  50            push    eax                              ; |Buffer
    00553F8A   
    .  E8 5D33EBFF   call    <jmp.&kernel32.GetSystemDirector>; GetSystemDirectoryA
    00553F8F   
    .  8D45 FC       lea     eax, dword ptr [ebp-4]
    00553F92   
    .  8D95 7BFFFFFF lea     edx, dword ptr [ebp-85]
    00553F98   
    .  B9 81000000   mov     ecx, 81
    00553F9D   
    .  E8 4A0CEBFF   call    00404BEC
    00553FA2   
    .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
    00553FA8   
    .  8BBB FC020000 mov     edi, dword ptr [ebx+2FC]
    00553FAE   
    .  8BC7          mov     eax, edi
    00553FB0   
    .  E8 2B3FEFFF   call    00447EE0
    00553FB5   
    .  8B85 70FFFFFF mov     eax, dword ptr [ebp-90]          ;  name
    00553FBB   
    .  8D95 74FFFFFF lea     edx, dword ptr [ebp-8C]
    00553FC1   
    .  E8 0653EBFF   call    004092CC
    00553FC6   
    .  8B95 74FFFFFF mov     edx, dword ptr [ebp-8C]
    00553FCC   
    .  8BC7          mov     eax, edi
    00553FCE   
    .  E8 3D3FEFFF   call    00447F10
    00553FD3   
    .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
    00553FD9   
    .  8BBB 04030000 mov     edi, dword ptr [ebx+304]
    00553FDF   
    .  8BC7          mov     eax, edi
    00553FE1   
    .  E8 FA3EEFFF   call    00447EE0
    00553FE6   
    .  8B85 68FFFFFF mov     eax, dword ptr [ebp-98]          ;  key
    00553FEC   
    .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
    00553FF2   
    .  E8 D552EBFF   call    004092CC
    00553FF7   
    .  8B95 6CFFFFFF mov     edx, dword ptr [ebp-94]
    .............................................................
    00554065   .  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
    0055406B   
    .  E8 703EEFFF   call    00447EE0
    00554070   .  8B85 54FFFFFF mov     eax, dword ptr [ebp-AC]
    00554076   .  E8 0556EBFF   call    00409680                         ;  关键Call
    0055407B   
    .  B9 60110000   mov     ecx, 1160
    00554080   .  99            cdq
    00554081   .  F7F9          idiv    ecx
    00554083 > .  8BC2          mov     eax, edx                         ;  edx余数
    00554085   .  8D95 58FFFFFF lea     edx, dword ptr [ebp-A8]
    0055408B   
    .  E8 B0FDFFFF   call    00553E40                         ;  可疑

     

        代码全在这一片了,先取系统System32目录,往下面丢一个文件C201l.dll,注册码就丢在里面,不信?你随便输入个再打开看看~.

        过程大概是这样,554076是关键Call,算出一个值,除1160 的余数再异或一下转成10进制就是注册码的前几位~~

    55408B就是比较注册码是否合法的Call了,细跟了遍发现流程很简单~~,关键Call竟然就是把string转成Int,我晕~

        1.注册码(难怪只能输入数字) 对 1160 求余

        2.余数和0B25F1异或

        3.得到一个值就是注册码的前几位,后面还两位

        4.后面第一位是过程3的值的1.2位的char相加,对5求余后+ 44

        5.后面第二位是过程3的值的3.4位的char相加,对5求余后+ 33

        6.连接3.4.5就是注册码

        很简单吧,用自己的KeyMake写了个注册机:(C#)

       

    public string GenCode(string para1)
    {
    int sum = -1;
    string ret = "";
    try
    {
      sum 
    = int.Parse(para1);
    }

    catch(FormatException)
    {
    return "确认码只能是数字!";
    }

    //return sum.ToString();
    int edx = sum % 0x1160;
    edx 
    = edx ^ 0x0B25F1;
    ret 
    = edx.ToString();
    if(ret.Length < 4)
    {
    return "Error!";
    }

    int eax = (ret[0]+ret[1]) % 5 + 34;
    eax 
    -= 30;
    int ebx = (ret[2]+ret[3]) % 5 + 33;
    ebx 
    -= 30;
    return ret + eax.ToString() + ebx.ToString();
    }

     

       后给出一组测试的注册码:

       name:123456789

       key:73216457

       附:如果你要使用该软件,请购买正版支持国产软件

    发表于 @ 2007年01月17日 17:39:00|评论(loading...)|编辑

    新一篇: C#递归求解八皇后 | 旧一篇: DEBUG API写简单的Loader

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Red_angelX