飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 22128|回复: 87

[原创] [PYG官方教程]开悟之门-跟飘云学算法-1

[复制链接]
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2008-10-17 17:52:31 | 显示全部楼层 |阅读模式

    特别说明:根据网友强烈要求~~特编写~继[PYG算法入门]系列之后的又一算法系列,希望大家学有所成
    教程约定:出于版权考虑~全部采用2008年之前的老版本软件做试验~ 仅做研究学习!

    【破文标题】奇门遁甲演义CASR 10.31 算法分析
    【破文作者】飘云[P.Y.G]
    【作者主页】https://www.chinapyg.com
    破解平台】WinXp
    【破解工具】PEiD0.94、OllyDbg
    【作者邮箱】piaoyun04@163.com
    【软件名称】奇门遁甲演义CASR 10.31
    【软件大小】1004KB
    【原版下载】http://www.onlinedown.net/soft/22167.htm
    【软件简介】恒古星旋中心商城精心推出『奇门遁甲演义』面向广大奇门爱好者
    一、精致的经典盘图
      完全仿照中国古代的奇门活盘并有所发展,盘图上每一块元素均可以点击查看说明或分析。另外还提供便于复制和传播的多种风格的纯文本局图
    二、众多的奇门类型
      支持拆补时家奇门、置闰拆补奇门、日家奇门、月家奇门、年家奇门一共五种奇门起局
    三、广阔的时间支持
      支持1901-2050年共150年时间,完全满足绝大多数用户的需要
    四、计算机预测功能
      计算机能够自行运用相应的奇门原理进行相关的课题预测,例如彩票、大盘、失盗等等,还可以看计算机的奇门推理过程
    五、详尽的古今注语
      1080格局的每一格局后均有详尽的现代注解和古注语,恒古星旋中心商城的作者们是将23万字硬敲进了程序,程序自动用彩色将常见的吉格凶格标明以便用户清楚看到
    六、时间搜索功能
      输入你所要搜索的要求,例如正北有奇门、吉星;天遁;青龙回首等等,程序能自动在设定的时间段内搜索出所有符合条件的时间
    七、简洁的方位吉凶
      将各个方位的吉凶程度计算机分析后用-8到18进行了27梯度量化,并用相应的颜色表示,便于用户及时快速知道各方吉凶
    八、时间调整功能
      运用时间调整技术将北京时间调为本地时间,使预测更加精确,内有中国各大城市一年24个半月的日出时间表直接选取即可,也可按照方法自行调整  
    九、完善的售后服务
      一次注册终身免费升级,所有问题均在24小时内得到答复。


    【破解过程】

    直逼主体算法(别问我怎么来的,不明白的话查看原来的算法教程~~~):
    0040CED4  |>push    ecx
    0040CED5  |>push    edx
    0040CED6  |>push    00437DF4                         ;  qmdjyy10
    0040CEDB  |>mov     ecx, esi
    0040CEDD  |>call    0040D1C0                         ;  计算"qmdjyy10" ASCII码总和  设为Sum1
    0040CEE2  |>lea     eax, dword ptr [esp+38]
    0040CEE6  |>lea     ecx, dword ptr [esp+60]
    0040CEEA  |>push    eax
    0040CEEB  |>lea     edx, dword ptr [esp+44]
    0040CEEF  |>push    ecx
    0040CEF0  |>push    edx
    0040CEF1  |>mov     ecx, esi
    0040CEF3  |>call    0040D1C0                         ;  计算用户名前12位ASCII码总和 设为Sum2
    0040CEF8  |>mov     edi, 00437DF4                    ;  qmdjyy10
    0040CEFD  |>or      ecx, FFFFFFFF                    ;  ecx 用户名长度
    0040CF00  |>xor     eax, eax                         ;  EAX清零初始化
    0040CF02  |>repne   scas byte ptr es:[edi]
    0040CF04  |>not     ecx
    0040CF06  |>cmp     ecx, 0C                          ;  上面计算 小于 0x0C则跳   这里ECX = 9
    0040CF09  |>jle     short 0040CF10
    0040CF0B  |>mov     ecx, 0C                          ;  否则ECX = 0x0C
    0040CF10  |>push    ebp
    0040CF11  |>xor     edi, edi                         ;  EDI清零初始化
    0040CF13  |>lea     ebp, dword ptr [ecx+1]
    0040CF16  |>lea     esi, dword ptr [esp+64]
    0040CF1A  |>/mov     eax, edi
    0040CF1C  |>|cdq                                     ;  把EAX中的字的符号扩展到EDX中去
    0040CF1D  |>|idiv    ecx                             ;  商存放EAX,余数存放EDX
    0040CF1F  |>|inc     edx                             ;  edx+1   设为变量i
    0040CF20  |>|cmp     edx, ebp
    0040CF22  |>|jge     short 0040CF39
    0040CF24  |>|mov     ebx, ebp                        ;  ebx = ebp = 10
    0040CF26  |>|lea     eax, dword ptr [esp+edx*4+B0]
    0040CF2D  |>|sub     ebx, edx                        ;  ebx-edx 作为循环次数
    0040CF2F  |>|/mov     edx, dword ptr [eax]           ;  从"qmdjyy10"字符串中 第i位起取逐位ASCII送edx
    0040CF31  |>||add     eax, 4                         ;  不解释了,自己看一下内存就知道如何要+4了
    0040CF34  |>||xor     dword ptr [esi], edx           ;  和用户名第i位ASCII异或,并覆盖第一位ASCII  最终结果设为Xor1
    0040CF36  |>||dec     ebx                            ;  循环次数减1
    0040CF37  |>|\jnz     short 0040CF2F
    0040CF39  |>|mov     eax, dword ptr [esp+40]         ;  Sum1
    0040CF3D  |>|mov     ebx, dword ptr [esp+3C]         ;  Sum2
    0040CF41  |>|mov     edx, dword ptr [esi]            ;  Xor1
    0040CF43  |>|sub     eax, ebx                        ;  Sum1 - Sum2
    0040CF45  |>|xor     eax, edx                        ;  (Sum1 - Sum2) xor Xor1
    0040CF47  |>|mov     ebx, 1A                         ;  ebx = 0x1A
    0040CF4C  |>|cdq
    0040CF4D  |>|xor     eax, edx
    0040CF4F  |>|add     esi, 4
    0040CF52  |>|sub     eax, edx
    0040CF54  |>|cdq
    0040CF55  |>|idiv    ebx                             ;  只关心余数EDX中的内容
    0040CF57  |>|add     dl, 41                          ;  0x41是什么??去查ASCII表吧! 是 'A',加上这个的意思就是保持输出的内容为字符~~~ 不知道的去恶补一下基础之基础~
    0040CF5A  |>|mov     byte ptr [esp+edi+2C], dl       ;  保存结果
    0040CF5E  |>|inc     edi                             ;  edi + 1
    0040CF5F  |>|cmp     edi, 0C                         ;  循环12次,别想了,注册码是12位
    0040CF62  |>\jl      short 0040CF1A

    【算法总结】
    1.取特征码"qmdjyy10" ASCII总和,设为Sum1;
    2.取用户名前12位ASCII总和,设为Sum2;
    3.采用两个循环生成注册码:
      外循环:12次,主要控制内循环中的变量i
      内循环:10 - i 次~~~ 特征码第I位开始逐位和ASCII第i位进行异或运算并覆盖之,最终结果设为XOR1;
    4.(Sum1 - Sum2) xor XOR1运算;
    5.一系列的扩张、取于运算;
    6.注册码生成

    【算法注册】
    我只贴出几个函数和框架,别偷懒,一起玩,根据算法,把循环部分完成之!!只要你拼接起来,不难吧?以后的注册机代码大都会这样做!
    1. {-------------------------------------------------------------------------------
    2.   过程名:    Sum_Ascii
    3.   作用:      计算字符串的ASCII总和
    4.   作者:      piaoyun
    5.   日期:      2008.10.17
    6.   参数:      str:string
    7.   返回值:    Integer
    8. -------------------------------------------------------------------------------}
    9. function Sum_Ascii(str:string):Integer;
    10. var
    11.   i:integer;
    12. begin
    13.   Result := 0;
    14.   for i := 1 to Length(str) do Result := Result + byte(str[i]);
    15. end;


    16. {-------------------------------------------------------------------------------
    17.   过程名:    ASM_Fun
    18.   作用:      算法分析中的那一系列头晕的东西,让它来处理~~~
    19.   作者:      piaoyun
    20.   日期:      2008.10.17
    21.   参数:      sum1,sum2,xor1:integer
    22.   返回值:    Char
    23. -------------------------------------------------------------------------------}
    24. function ASM_Fun(sum1,sum2,xor1:integer):Char;
    25. var
    26.   temp:Char;
    27. begin
    28.     asm
    29.       pushad
    30.       xor     eax,eax
    31.       xor     ebx,ebx
    32.       xor     edx,edx
    33.       mov     eax, sum1
    34.       mov     ebx, sum2
    35.       mov     edx, xor1
    36.       sub     eax, ebx
    37.       xor     eax, edx
    38.       mov     ebx, $1A
    39.       cdq
    40.       xor     eax, edx
    41.       add     esi, 4
    42.       sub     eax, edx
    43.       cdq
    44.       idiv    ebx
    45.       add     dl, $41
    46.       mov     temp,dl
    47.       popad
    48.     end;
    49.     Result := temp;
    50. end;

    51. procedure TForm1.btnOkClick(Sender: TObject);
    52. var
    53.   i,j,k:integer;
    54.   sum1,sum2,xor1:integer;
    55.   name:string;
    56.   sn:string;
    57. const
    58.   qmdj = 'qmdjyy10';
    59. begin
    60.   if edtName.Text <> '' then
    61.   begin
    62.     name := edtName.Text;
    63.     sum1 := Sum_Ascii(qmdj);
    64.     sum2 := Sum_Ascii(leftStr(edtName.Text,12));
    65.    
    66. //-----------------------------------
    67.     for i := 1 to 12 do
    68.     begin
    69.       //自己动脑筋拼接
    70.       for j := k to 10 do
    71.       begin
    72.       //自己动脑筋拼接
    73.       end;
    74.       sn := sn + ASM_Fun(sum1,sum2,xor1);
    75.     end;
    76.     //输出注册码
    77.     edtSn.Text := sn;
    78. //------------------------------------

    79.   end
    80.   else
    81.     ShowMessage('请输入用户名!');
    82. end;
    复制代码
    【版权声明】 本文原创于P.Y.G官方,纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-10-30 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2008-10-17 17:58:25 | 显示全部楼层
    顶上,坐上飘云老大的沙发。。。。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-2-11 09:23
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2008-10-17 18:11:31 | 显示全部楼层
    大家快来跟飘云老大学算法/:09 /:09
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-17 18:13:45 | 显示全部楼层
    /:001 /:001 /:001

    HOHO!!!!!!跟飘云老大学算法来了!!!!!!!!!!!!!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-17 18:38:28 | 显示全部楼层
    希望 能坚持带领我们走下去 !
        不希望 有太多的好的开头,只希望有一个美好的句号!:loveliness:
    感谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2008-10-17 19:36:06 | 显示全部楼层
    学习并继续关注。/:good
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-10-17 20:05:18 | 显示全部楼层
    学算法,学delphi/:018
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-17 20:52:07 | 显示全部楼层
    太好了,可以跟着老大学习算法了!/:018
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-17 21:29:34 | 显示全部楼层
    支持 .学习了!!:victory: :victory: :victory:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-17 21:52:50 | 显示全部楼层
    仔细阅读中。。。。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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