飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8047|回复: 14

[分享] 一个软件的使用过程

  [复制链接]
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2014-9-21 07:18:08 | 显示全部楼层 |阅读模式
    感谢PYG,本文主要目的是学习使用PYG专用算法注册机生成器,让菜鸟也可以写注册机,
    工具在此:
                [20130925更新]PYG专用算法注册机生成器 ver 1.0.0.7
                https://www.chinapyg.com/thread-70039-1-1.html
    官方教学视频在此:
                 PYG专用算法注册机生成器配套教程-第一讲
                 https://www.chinapyg.com/thread-72385-1-1.html
                 PYG专用算法注册机生成器配套教程-第二讲
                 https://www.chinapyg.com/thread-72386-1-1.html

    目标程序:PC AutoShutdown 5.9.0.0  
    注册文件保存位置:
    C:\Documents and Settings\All Users\Application Data\PC Auto Shutdown\AutoShutdown.ini

    Username=1
    code=LdfPAS&23FC82

    注册码分段验证

    OD载入目标程序,找到注册按钮事件处,下断,输入用户名和假码,断在下面的位置

    1. 004AC298   .  55            PUSH    EBP                              ;  注册
    2. 004AC299   .  8BEC          MOV     EBP, ESP
    3. 004AC29B   .  B9 10000000   MOV     ECX, 0x10
    4. 004AC2A0   >  6A 00         PUSH    0x0
    5. 004AC2A2   .  6A 00         PUSH    0x0
    复制代码
    下面是MD5了一个注册码,与一个内置的MD5比较(不知知道是不是通用注册码)

    1. 004AC358   .  E8 BF7DFFFF   CALL    004A411C                                    ;  AutoShut.004A411C
    2. 004AC35D   .  8B45 C4       MOV     EAX, DWORD PTR SS:[EBP-0x3C]                ;  假码md5--->eax
    3. 004AC360   .  BA A0C84A00   MOV     EDX, 0x4AC8A0                               ;  FAB282623843E2327403D39E252AE27B
    4. 004AC365   .  E8 AA86F5FF   CALL    00404A14                                    ;  AutoShut.00404A14
    5. 004AC36A   .  0F85 BE010000 JNZ     004AC52E                                    ;  AutoShut.004AC52E
    复制代码
    如果CALL往里面走就会看到MD5的计算过程
    1. 004A35F0   .  20 4D 44 35 2>ASCII   " MD5 Message-Dig"
    2. 004A3600   .  65 73 74 20 2>ASCII   "est (c) 97-98 F."
    3. 004A3610   .  20 50 69 65 7>ASCII   " Piette V1.02 ",0
    4. 004A361F      00            DB      00
    5. 004A3620  /$  53            PUSH    EBX
    6. 004A3621  |.  8BD8          MOV     EBX, EAX
    7. 004A3623  |.  8BC3          MOV     EAX, EBX
    8. 004A3625  |.  33C9          XOR     ECX, ECX
    9. 004A3627  |.  BA 58000000   MOV     EDX, 0x58
    10. 004A362C  |.  E8 87FAF5FF   CALL    004030B8                                    ;  AutoShut.004030B8
    11. 004A3631  |.  C703 01234567 MOV     DWORD PTR DS:[EBX], 0x67452301      //MD5标志性数字
    12. 004A3637  |.  C743 04 89ABC>MOV     DWORD PTR DS:[EBX+0x4], 0xEFCDAB89   
    13. 004A363E  |.  C743 08 FEDCB>MOV     DWORD PTR DS:[EBX+0x8], 0x98BADCFE
    14. 004A3645  |.  C743 0C 76543>MOV     DWORD PTR DS:[EBX+0xC], 0x10325476
    15. 004A364C  |.  5B            POP     EBX

    16. 004A4070  /$  55            PUSH    EBP //这是计算过程
    复制代码
    注册码是分段验证的
    第一段为固定字符LdfPAS&
    1. 004AC531   .  50            PUSH    EAX                                         ;  取字符串的中指定字符的函数
    2. 004AC532   .  B9 07000000   MOV     ECX, 0x7                                    ;  取的长度
    3. 004AC537   .  BA 01000000   MOV     EDX, 0x1                                    ;  第一位开始
    4. 004AC53C   .  8B45 F4       MOV     EAX, DWORD PTR SS:[EBP-0xC]
    5. 004AC53F   .  E8 E485F5FF   CALL    00404B28                                    ;  AutoShut.00404B28
    复制代码
    1. 004AC54F   .  8B45 AC       MOV     EAX, DWORD PTR SS:[EBP-0x54]                ;  前7位的验证
    2. 004AC552   .  BA E0C94A00   MOV     EDX, 0x4AC9E0                               ;  MD5(LdfPAS&)=749FE87A625A53C7EA205BD929931D57
    3. 004AC557   .  E8 B884F5FF   CALL    00404A14                                    ;  AutoShut.00404A14
    4. 004AC55C   .  0F85 D7020000 JNZ     004AC839                                    ;  AutoShut.004AC839
    复制代码
    第8、9位的验证
    1. 004AC571   .  B9 02000000   MOV     ECX, 0x2                           ;  取字符的长度
    2. 004AC576   .  BA 08000000   MOV     EDX, 0x8                           ;  第8位开始
    3. 004AC57B   .  8B45 F4       MOV     EAX, DWORD PTR SS:[EBP-0xC]
    4. 004AC57E   .  E8 A585F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    5. 004AC583   .  8B45 A8       MOV     EAX, DWORD PTR SS:[EBP-0x58]
    6. 004AC586   .  50            PUSH    EAX
    7. 004AC587   .  8D45 A4       LEA     EAX, DWORD PTR SS:[EBP-0x5C]
    8. 004AC58A   .  50            PUSH    EAX
    9. 004AC58B   .  B9 02000000   MOV     ECX, 0x2                           ;  取用户名MD5后的字符串中第D位开始的两个字符
    10. 004AC590   .  BA 0D000000   MOV     EDX, 0xD
    11. 004AC595   .  8B45 F0       MOV     EAX, DWORD PTR SS:[EBP-0x10]
    12. 004AC598   .  E8 8B85F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    13. 004AC59D   .  8B55 A4       MOV     EDX, DWORD PTR SS:[EBP-0x5C]
    14. 004AC5A0   .  58            POP     EAX
    15. 004AC5A1   .  E8 6E84F5FF   CALL    00404A14                           ; 验证
    16. 004AC5A6   .  0F85 8D020000 JNZ     004AC839                           ;  AutoShut.004AC839
    复制代码
    第10、11、12位的验证
    1. 004AC571   .  B9 02000000   MOV     ECX, 0x2                           ;  取字符的长度
    2. 004AC576   .  BA 08000000   MOV     EDX, 0x8                           ;  第8位开始
    3. 004AC57B   .  8B45 F4       MOV     EAX, DWORD PTR SS:[EBP-0xC]
    4. 004AC57E   .  E8 A585F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    5. 004AC583   .  8B45 A8       MOV     EAX, DWORD PTR SS:[EBP-0x58]
    6. 004AC586   .  50            PUSH    EAX
    7. 004AC587   .  8D45 A4       LEA     EAX, DWORD PTR SS:[EBP-0x5C]
    8. 004AC58A   .  50            PUSH    EAX
    9. 004AC58B   .  B9 02000000   MOV     ECX, 0x2                           ;  取用户名MD5后的字符串中第D位开始的两个字符
    10. 004AC590   .  BA 0D000000   MOV     EDX, 0xD
    11. 004AC595   .  8B45 F0       MOV     EAX, DWORD PTR SS:[EBP-0x10]
    12. 004AC598   .  E8 8B85F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    13. 004AC59D   .  8B55 A4       MOV     EDX, DWORD PTR SS:[EBP-0x5C]
    14. 004AC5A0   .  58            POP     EAX
    15. 004AC5A1   .  E8 6E84F5FF   CALL    00404A14                           ; 验证
    16. 004AC5A6   .  0F85 8D020000 JNZ     004AC839                           ;  AutoShut.004AC839

    17. 第10、11、12位的验证
    18. 004AC5B0   .  B9 0B000000   MOV     ECX, 0xB                           ;  取字符长度
    19. 004AC5B5   .  BA 11000000   MOV     EDX, 0x11                          ;  开始位置
    20. 004AC5BA   .  8B45 F0       MOV     EAX, DWORD PTR SS:[EBP-0x10]
    21. 004AC5BD   .  E8 6685F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    22. 004AC5C2   .  8B45 9C       MOV     EAX, DWORD PTR SS:[EBP-0x64]
    23. 004AC5C5   .  8D55 A0       LEA     EDX, DWORD PTR SS:[EBP-0x60]
    24. 004AC5C8   .  E8 4F7BFFFF   CALL    004A411C                           ;  对取得的字符MD5一下
    25. 004AC5CD   .  8B55 A0       MOV     EDX, DWORD PTR SS:[EBP-0x60]
    26. 004AC5D0   .  8D45 F0       LEA     EAX, DWORD PTR SS:[EBP-0x10]
    27. 004AC5D3   .  E8 C880F5FF   CALL    004046A0                           ;  AutoShut.004046A0
    28. 004AC5D8   .  8D45 98       LEA     EAX, DWORD PTR SS:[EBP-0x68]
    29. 004AC5DB   .  50            PUSH    EAX
    30. 004AC5DC   .  B9 03000000   MOV     ECX, 0x3                           ;  长度
    31. 004AC5E1   .  BA 0A000000   MOV     EDX, 0xA                           ;  假码中开始位置
    32. 004AC5E6   .  8B45 F4       MOV     EAX, DWORD PTR SS:[EBP-0xC]
    33. 004AC5E9   .  E8 3A85F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    34. 004AC5EE   .  8B45 98       MOV     EAX, DWORD PTR SS:[EBP-0x68]
    35. 004AC5F1   .  50            PUSH    EAX
    36. 004AC5F2   .  8D45 94       LEA     EAX, DWORD PTR SS:[EBP-0x6C]
    37. 004AC5F5   .  50            PUSH    EAX
    38. 004AC5F6   .  B9 03000000   MOV     ECX, 0x3
    39. 004AC5FB   .  BA 14000000   MOV     EDX, 0x14
    40. 004AC600   .  8B45 F0       MOV     EAX, DWORD PTR SS:[EBP-0x10]
    41. 004AC603   .  E8 2085F5FF   CALL    00404B28                           ;  AutoShut.00404B28
    42. 004AC608   .  8B55 94       MOV     EDX, DWORD PTR SS:[EBP-0x6C]
    43. 004AC60B   .  58            POP     EAX
    44. 004AC60C   .  E8 0384F5FF   CALL    00404A14                           ;  验证
    45. 004AC611   .  0F85 22020000 JNZ     004AC839  
    复制代码

    算法总结如下:
    假定函数strA(B,C)---->从字符串strA中取字符 开始位置B 大小为C
    (涉及到的字母全为大写)
    1.用户名的MD5=strA
    2.strA(0x11,0xB)=strB
    3.MD5(strB)=strC

    注册码="LdfPAS&"+strA(0xD,2)+strC(0x14,3)

    QQ截图20140921071534.png









    PC AutoShutdown 5.9.0.0 keygen.rar

    862.75 KB, 阅读权限: 8, 下载次数: 9, 下载积分: 飘云币 -2 枚

    售价: 5 枚飘云币  [记录]

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-4 10:11
  • 签到天数: 490 天

    [LV.9]以坛为家II

    发表于 2014-9-21 08:35:36 | 显示全部楼层
    支持写注册机。
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-7-18 13:59
  • 签到天数: 65 天

    [LV.6]常住居民II

    发表于 2014-9-21 09:23:57 | 显示全部楼层
    高手啊。膜拜
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2014-9-21 15:23:03 | 显示全部楼层
    顶 会写注册机的。学习了
    PYG19周年生日快乐!
  • TA的每日心情

    2024-11-7 19:04
  • 签到天数: 1320 天

    [LV.10]以坛为家III

    发表于 2014-9-21 21:23:08 | 显示全部楼层
    兄弟你真帅气
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-2-17 10:46
  • 签到天数: 927 天

    [LV.10]以坛为家III

    发表于 2014-9-22 20:12:00 | 显示全部楼层
    高手,你太厉害了。我怎么也学习不会的
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-8-7 03:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2014-11-2 17:26:53 | 显示全部楼层
    很好的教程,谢谢,学习了
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2022-11-15 21:57
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-11-3 17:15:00 | 显示全部楼层
    真高手,看都看不懂,要学的东东太多了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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