飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3988|回复: 7

[原创] Computer Alarm Clock V2.2 算法分析 + 注册机源代码

[复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2015-8-18 14:06:09 | 显示全部楼层 |阅读模式
    本帖最后由 GeekCat 于 2015-8-18 15:24 编辑

    1、软件没有加壳;
    2、字符串查找、工具找按键事件切入关键点
    3、软柿子算法简单,主要是为了学写注册机
    4、请不要用中文名注册会失败的,你问为什么啊~~~~,我是刚学会简单C#语法的小菜中文还不会玩,希望懂的教我一下,先谢过了~~

    5、算法分析代码:

    1. 00483A9D  |.  8945 FC       mov dword ptr ss:[ebp-0x4],eax
    2. 00483AA0  |.  837D F4 00    cmp dword ptr ss:[ebp-0xC],0x0           ;  注册名不为空
    3. 00483AA4  |.  74 5B         je short cac.00483B01
    4. 00483AA6  |.  8D4D EC       lea ecx,dword ptr ss:[ebp-0x14]
    5. 00483AA9  |.  BA 03000000   mov edx,0x3
    6. 00483AAE  |.  8B45 F0       mov eax,dword ptr ss:[ebp-0x10]          ;  (ASCII "1234567890qwertyuiop")
    7. 00483AB1  |.  E8 024CFBFF   call cac.004386B8
    8. 00483AB6  |.  8D8D 08FEFFFF lea ecx,dword ptr ss:[ebp-0x1F8]         ;  取注册码前3位
    9. 00483ABC  |.  BA 0E000000   mov edx,0xE
    10. 00483AC1  |.  8B45 F0       mov eax,dword ptr ss:[ebp-0x10]          ;  (ASCII "1234567890qwertyuiop")
    11. 00483AC4  |.  E8 EF4BFBFF   call cac.004386B8                        ;  取注册码前14位
    12. 00483AC9  |.  8B85 08FEFFFF mov eax,dword ptr ss:[ebp-0x1F8]         ;  (ASCII "1234567890qwer")注册码前14位
    13. 00483ACF  |.  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
    14. 00483AD2  |.  BA 02000000   mov edx,0x2
    15. 00483AD7  |.  E8 F84BFBFF   call cac.004386D4                        ;  前14位中的后两位“er”即注册码13、14两位
    16. 00483ADC  |.  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]           ;  (ASCII "GeekCat921")
    17. 00483ADF  |.  E8 B40FF8FF   call cac.00404A98                        ;  计算注册名长度
    18. 00483AE4  |.  85C0          test eax,eax
    19. 00483AE6  |.  7E 19         jle short cac.00483B01
    20. 00483AE8  |.  BA 01000000   mov edx,0x1                              ;  edx初始化为1
    21. 00483AED  |>  8B4D F4       /mov ecx,dword ptr ss:[ebp-0xC]          ;  (ASCII "GeekCat921")
    22. 00483AF0  |.  8A4C11 FF     |mov cl,byte ptr ds:[ecx+edx-0x1]        ;  依次取注册名的每一位AS值入cl
    23. 00483AF4  |.  81E1 FF000000 |and ecx,0xFF                            ;  高24位清零
    24. 00483AFA  |.  014D FC       |add dword ptr ss:[ebp-0x4],ecx          ;  累加和入[ebp-0x4]=0x330
    25. 00483AFD  |.  42            |inc edx
    26. 00483AFE  |.  48            |dec eax
    27. 00483AFF  |.^ 75 EC         \jnz short cac.00483AED
    28. 00483B01  |>  8D55 F4       lea edx,dword ptr ss:[ebp-0xC]           ;  (ASCII "GeekCat921")
    29. 00483B04  |.  8B45 FC       mov eax,dword ptr ss:[ebp-0x4]           ;  0x330
    30. 00483B07  |.  E8 A052F8FF   call cac.00408DAC                        ;  16进制转10进制
    31. 00483B0C  |.  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
    32. 00483B0F  |.  BA 01000000   mov edx,0x1
    33. 00483B14  |.  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]           ;  累加和0x330=(ASCII "816")
    34. 00483B17  |.  E8 B84BFBFF   call cac.004386D4                        ;  取累加10进制的最后一位
    35. 00483B1C  |.  8D4D E0       lea ecx,dword ptr ss:[ebp-0x20]
    36. 00483B1F  |.  BA 01000000   mov edx,0x1
    37. 00483B24  |.  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]           ;  累加和0x330=(ASCII "816")
    38. 00483B27  |.  E8 8C4BFBFF   call cac.004386B8                        ;  取累加10进制的第一位
    39. 00483B2C  |.  8D8D 04FEFFFF lea ecx,dword ptr ss:[ebp-0x1FC]
    40. 00483B32  |.  BA 04000000   mov edx,0x4
    41. 00483B37  |.  8B45 F0       mov eax,dword ptr ss:[ebp-0x10]          ;  (ASCII "1234567890qwertyuiop")
    42. 00483B3A  |.  E8 794BFBFF   call cac.004386B8                        ;  取注册码的前4位
    43. 00483B3F  |.  8B85 04FEFFFF mov eax,dword ptr ss:[ebp-0x1FC]         ;  (ASCII "1234")
    44. 00483B45  |.  8D4D DC       lea ecx,dword ptr ss:[ebp-0x24]
    45. 00483B48  |.  BA 01000000   mov edx,0x1
    46. 00483B4D  |.  E8 824BFBFF   call cac.004386D4                        ;  取注册码前四位的最后一位,即第4位
    47. 00483B52  |.  8D8D 00FEFFFF lea ecx,dword ptr ss:[ebp-0x200]
    48. 00483B58  |.  BA 09000000   mov edx,0x9
    49. 00483B5D  |.  8B45 F0       mov eax,dword ptr ss:[ebp-0x10]          ;  (ASCII "1234567890qwertyuiop")
    50. 00483B60  |.  E8 534BFBFF   call cac.004386B8                        ;  取注册码的前9位
    51. 00483B65  |.  8B85 00FEFFFF mov eax,dword ptr ss:[ebp-0x200]
    52. 00483B6B  |.  8D4D D8       lea ecx,dword ptr ss:[ebp-0x28]
    53. 00483B6E  |.  BA 01000000   mov edx,0x1
    54. 00483B73  |.  E8 5C4BFBFF   call cac.004386D4                        ;  取注册码前9位的最后一位,即第9位
    55. 00483B78  |.  C683 38040000>mov byte ptr ds:[ebx+0x438],0x0
    56. 00483B7F  |.  8B45 E4       mov eax,dword ptr ss:[ebp-0x1C]          ;  (UNICODE "6")累加和10进制的最后一位
    57. 00483B82  |.  8B55 DC       mov edx,dword ptr ss:[ebp-0x24]          ;  (UNICODE "4")注册码的第4位
    58. 00483B85  |.  E8 5210F8FF   call cac.00404BDC                        ;  累加和的10进制最后一位与注册的第4位
    59. 00483B8A  |.  75 32         jnz short cac.00483BBE
    60. 00483B8C  |.  8B45 E0       mov eax,dword ptr ss:[ebp-0x20]          ;  取累加10进制的第1位“8”
    61. 00483B8F  |.  8B55 D8       mov edx,dword ptr ss:[ebp-0x28]          ;  取注册码第9位"9"
    62. 00483B92  |.  E8 4510F8FF   call cac.00404BDC                        ;  累加和的10进制第1位与注册的第9位相等
    63. 00483B97  |.  75 25         jnz short cac.00483BBE
    64. 00483B99  |.  8B45 EC       mov eax,dword ptr ss:[ebp-0x14]          ;  注册码前3位(ASCII "123")
    65. 00483B9C  |.  BA 243C4800   mov edx,cac.00483C24                     ;  e3k
    66. 00483BA1  |.  E8 3610F8FF   call cac.00404BDC                        ;  注册码前三位跟“e3k”相等
    67. 00483BA6  |.  75 16         jnz short cac.00483BBE
    68. 00483BA8  |.  8B45 E8       mov eax,dword ptr ss:[ebp-0x18]          ;  注册码13、14两位“er”
    69. 00483BAB  |.  BA 303C4800   mov edx,cac.00483C30                     ;  n3
    70. 00483BB0  |.  E8 2710F8FF   call cac.00404BDC                        ;  注册码13、14两位跟“n3”相等
    71. 00483BB5  |.  75 07         jnz short cac.00483BBE
    72. 00483BB7  |.  C683 38040000>mov byte ptr ds:[ebx+0x438],0x1

    复制代码


    6、算法总结:
    1、注册名每个字符AS值累加,累加值16转10进制
    2、注册码的第4位为累加值16转10进制后的个位
    3、注册码的第9位为累加值16转10进制后的第1位
    4、注册码的前3位必需为“e3k”
    5、注册码的前13、14两位必需为“n3”

    7、注册机源代码:

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace Computer_Alarm_Clock
    11. {
    12.     public partial class Form1 : Form
    13.     {
    14.         public Form1()
    15.         {
    16.             InitializeComponent();
    17.         }
    18.         private void btnKeyGen_Click(object sender, EventArgs e)
    19.         {
    20.             if (txtName.Text.Trim() != "")
    21.             {
    22.                 string str123 = "e3k";
    23.                 string str1314 = "n3";
    24.                 int total = 0;
    25.                 for (int i = 0; i < txtName.Text.Trim().Length; i++)
    26.                 {
    27.                     total = total + Convert.ToInt32(txtName.Text.Trim()[i]);
    28.                 }
    29.                 string fourStr = (total % 10).ToString();            //注册码第4位
    30.                 string nineStr = (total.ToString()).Substring(0, 1);  //注册码第9位
    31.                 Random randomKey = new Random();
    32.                 string randomFour = randomKey.Next(1000, 9999).ToString();//注册码5至8位
    33.                 string randomThree = randomKey.Next(100, 999).ToString(); //注册码的10至12位
    34.                 string Key = str123 + fourStr + randomFour + nineStr + randomThree + str1314;
    35.                 txtKey.Text = Key;
    36.                 labCopy.Visible = true;
    37.                 labCopy.Text = "注册码复制成功";
    38.             }
    39.             else
    40.             {
    41.                 MessageBox.Show("请输入你的注册名", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
    42.             }
    43.         }
    44.         private void Form1_Load(object sender, EventArgs e)
    45.         {
    46.             labCopy.Visible = false;
    47.         }
    48.         private void linkPYG_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    49.         {
    50.             System.Diagnostics.Process.Start("[url=https://www.chinapyg.com]https://www.chinapyg.com[/url]");
    51.         }
    52.         private void txtName_TextChanged(object sender, EventArgs e)
    53.         {
    54.             labCopy.Visible = false; //订单号修改“复制成功”隐藏
    55.             txtKey.Text = "";        //订单号修改清空注册码框
    56.         }
    57.         private void txtName_MouseLeave(object sender, EventArgs e)
    58.         {
    59.             labCopy.Visible = false;
    60.         }
    61.         private void txtName_DoubleClick(object sender, EventArgs e)
    62.         {
    63.             if (txtName.Text != "")
    64.             {
    65.                 Clipboard.SetText(txtName.Text);
    66.                 labCopy.Visible = true;
    67.                 labCopy.Text = "注册名复制成功";
    68.             }
    69.         }
    70.         private void txtKey_DoubleClick(object sender, EventArgs e)
    71.         {
    72.             if (txtKey.Text != "")
    73.             {
    74.                 Clipboard.SetText(txtKey.Text);
    75.                 labCopy.Visible = true;
    76.                 labCopy.Text = "注册码复制成功";
    77.             }
    78.         }
    79.     }
    80. }

    复制代码


    11.png 22.png

    33.png 44.png

    Computer Alarm Clock注册机源代码.rar (109.48 KB, 下载次数: 19)

    评分

    参与人数 2威望 +44 飘云币 +44 收起 理由
    theend + 4 + 4
    Dxer + 40 + 40 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2015-8-18 14:14:24 | 显示全部楼层
    坐着沙发,前排学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-1 01:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-8-18 19:37:48 | 显示全部楼层
    见证又一算法牛的崛起。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2015-8-18 20:41:46 | 显示全部楼层
    这是算法帝的节奏么

    点评

    软柿子哦,你们都不想搞了,我只能玩这个了~~  详情 回复 发表于 2015-8-19 10:24
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

     楼主| 发表于 2015-8-19 10:24:47 | 显示全部楼层
    wgz001 发表于 2015-8-18 20:41
    这是算法帝的节奏么

    软柿子哦,你们都不想搞了,我只能玩这个了~~
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2023-5-29 09:29
  • 签到天数: 469 天

    [LV.9]以坛为家II

    发表于 2015-8-19 15:20:00 | 显示全部楼层
    很不错,分析到位。
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2015-8-20 15:15:16 | 显示全部楼层
    C#这么给力啊。我还在玩我的C++
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-4-1 09:59
  • 签到天数: 76 天

    [LV.6]常住居民II

    发表于 2015-8-20 15:25:11 | 显示全部楼层
    哈哈,Geekcat大婶越来越给力,辛苦了收下学习了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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