飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3236|回复: 6

野猫III申请加入[PYG]成员破文之三

[复制链接]
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-7-2 15:55:49 | 显示全部楼层 |阅读模式
    软件名称:LRC傻瓜编辑器 V1.22
    软件大小:  1290KB
    软件语言:  简体中文
    软件类别:  国产软件 / 共享版 / 媒体其它
    应用平台:  Win9x/NT/2000/XP
    加入时间:  加入时间:2006-6-30 17:06:18
    下载地址:http://www.onlinedown.net/soft/19248.htm
    软件介绍:
        本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。简单易用,人人都会。


    破解工具:PEID,W32DASM,OD
    +++++++++++W32DASM++++++++++++++++
    :0047B624 4E dec esi
    :0047B625 75C9 jne 0047B5F0

    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:0047B5E9(C)
    |
    :0047B627 8B45F4 mov eax, dword ptr [ebp-0C]
    :0047B62A E8A986F8FF call 00403CD8
    :0047B62F 83F80A cmp eax, 0000000A 。。。真码是否为10位
    :0047B632 7E26 jle 0047B65A 。。。小于则跳到47B65A处
    :0047B634 8D45E4 lea eax, dword ptr [ebp-1C]
    :0047B637 50 push eax
    :0047B638 B90A000000 mov ecx, 0000000A
    :0047B63D BA01000000 mov edx, 00000001
    :0047B642 8B45F4 mov eax, dword ptr [ebp-0C]
    :0047B645 E89688F8FF call 00403EE0
    :0047B64A 8B55E4 mov edx, dword ptr [ebp-1C]
    :0047B64D 8D45F4 lea eax, dword ptr [ebp-0C]

    * Possible StringData Ref from Code Obj ->"321"
    |
    :0047B650 B96CB74700 mov ecx, 0047B76C
    :0047B655 E8CA86F8FF call 00403D24

    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:0047B632(C)
    |
    :0047B65A 8D55E0 lea edx, dword ptr [ebp-20] 。。。跳来这里
    :0047B65D 8B45FC mov eax, dword ptr [ebp-04]
    :0047B660 8B8010030000 mov eax, dword ptr [eax+00000310]
    :0047B666 E8550CFBFF call 0042C2C0
    :0047B66B 8B55E0 mov edx, dword ptr [ebp-20]
    :0047B66E 8B45F4 mov eax, dword ptr [ebp-0C]
    :0047B671 E87287F8FF call 00403DE8
    :0047B676 0F85A0000000 jne 0047B71C 。。。。。。。。。。。关键跳转,不等OVER!
    :0047B67C 8B45FC mov eax, dword ptr [ebp-04]
    :0047B67F 8B80F4020000 mov eax, dword ptr [eax+000002F4]

    * Possible StringData Ref from Code Obj ->"您已经注册,多谢支持!"
    |
    :0047B685 BA78B74700 mov edx, 0047B778
    。。。。。。。。。注册成功的话软件会把注册信息写入注册表
    :0047B68A E8610CFBFF call 0042C2F0
    :0047B68F 8B45FC mov eax, dword ptr [ebp-04]
    :0047B692 8B80F8020000 mov eax, dword ptr [eax+000002F8]

    ++++++++++++++++OD++++++++++++++++
    0047B588 /. 55 PUSH EBP
    0047B589 |. 8BEC MOV EBP,ESP
    ~~~中间代码略~~~
    0047B5D2 |. 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
    0047B5D8 |. E8 E30CFBFF CALL 1.0042C2C0
    0047B5DD |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 用户名
    0047B5E0 |. E8 F386F8FF CALL 1.00403CD8
    0047B5E5 |. 8BF0 MOV ESI,EAX
    0047B5E7 |. 85F6 TEST ESI,ESI
    0047B5E9 |. 7E 3C JLE SHORT 1.0047B627
    0047B5EB |. BF 01000000 MOV EDI,1
    0047B5F0 |> /8B45 F8 /MOV EAX,DWORD PTR SS:[EBP-8] ; 用户名
    0047B5F3 |. |33DB |XOR EBX,EBX ; EBX清零
    0047B5F5 |. |8A5C38 FF |MOV BL,BYTE PTR DS:[EAX+EDI->; 逐位取值
    0047B5F9 |. |8BC3 |MOV EAX,EBX ; 将取值放到EAX中
    0047B5FB |. |F7EB |IMUL EBX ; EAX乘以EBX
    0047B5FD |. |F7EB |IMUL EBX ; EAX再乘以EBX
    0047B5FF |. |8945 EC |MOV DWORD PTR SS:[EBP-14],EA>; 所得的积放到EBP-14的位置
    0047B602 |. |DB45 EC |FILD DWORD PTR SS:[EBP-14] ; 将其的10进制整数到EBP-10位置
    0047B605 |. |D9FA |FSQRT ; 取它的平方根
    0047B607 |. |E8 D072F8FF |CALL 1.004028DC ; Call是取平方根的整数(四舍五入)
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    004028DC /$ 83EC 08 SUB ESP,8 ; ESP-8
    004028DF |. DF3C24 FISTP QWORD PTR SS:[ESP]
    004028E2 |. 9B WAIT
    004028E3 |. 58 POP EAX ; 弹出EAX
    004028E4 |. 5A POP EDX ; 弹出EDX
    004028E5 \. C3 RETN ; 返回
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    0047B60C |. 8BD8 |MOV EBX,EAX ; 所得的整数变成16进制放到EAX中
    0047B60E |. 8D55 E8 |LEA EDX,DWORD PTR SS:[EBP-18]
    0047B611 |. 8BC3 |MOV EAX,EBX ; EAX=EBX
    0047B613 |. E8 78CFF8FF |CALL 1.00408590 ; 转换成10进制
    0047B618 |. 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18]
    0047B61B |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
    0047B61E |. E8 BD86F8FF |CALL 1.00403CE0
    0047B623 |. 47 |INC EDI ; EDI每次加1
    0047B624 |. 4E |DEC ESI ; ESI每次减1
    0047B625 |.^ 75 C9 \JNZ SHORT 1.0047B5F0 ; 逐位取值完后跳出这个循环圈
    0047B627 |> 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 所得ASCII码排放到EAX中
    0047B62A |. E8 A986F8FF CALL 1.00403CD8 ; Call取位数
    0047B62F |. 83F8 0A CMP EAX,0A ; 位数与10比较
    0047B632 |. 7E 26 JLE SHORT 1.0047B65A ; 小于则跳,否则断续接下去进行运算操作
    0047B634 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C] ; 上面如果跳的话就是真码,如果不跳断续来这里运算。
    0047B637 |. 50 PUSH EAX
    0047B638 |. B9 0A000000 MOV ECX,0A ; ECX等于10
    0047B63D |. BA 01000000 MOV EDX,1 ; EDX等于1
    0047B642 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 逐位累取值放到EAX中
    0047B645 |. E8 9688F8FF CALL 1.00403EE0
    0047B64A |. 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C] ; Call取前面10位放到EDX中
    0047B64D |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
    0047B650 |. B9 6CB74700 MOV ECX,1.0047B76C ; ASCII "321"
    0047B655 |. E8 CA86F8FF CALL 1.00403D24 ; 作者预设码ASCII"321",排在后面组成真码
    0047B65A |> 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20] ; 取它的位数
    0047B65D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
    0047B660 |. 8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
    0047B666 |. E8 550CFBFF CALL 1.0042C2C0
    0047B66B |. 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20] ; 试练码
    0047B66E |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 最终真码
    0047B671 |. E8 7287F8FF CALL 1.00403DE8 ; KeyGen
    0047B676 |. 0F85 A0000000 JNZ 1.0047B71C ; 关键跳转,不等就OVER!
    0047B67C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
    0047B67F |. 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
    ~~~中间略~~
    0047B715 |> 8BC3 MOV EAX,EBX
    0047B717 |. E8 B476F8FF CALL 1.00402DD0
    0047B71C |> 33C0 XOR EAX,EAX ; 上面的关键跳转出错就跳来这里
    0047B71E |. 5A POP EDX
    0047B71F |. 59 POP ECX
    0047B720 |. 59 POP ECX
    0047B721 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
    0047B724 |. 68 5BB74700 PUSH 1.0047B75B
    0047B729 |> 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
    0047B72C |. E8 2783F8FF CALL 1.00403A58
    0047B731 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
    0047B734 |. BA 02000000 MOV EDX,2 ; EDX=2
    0047B739 |. E8 3E83F8FF CALL 1.00403A7C
    0047B73E |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; Call取真码
    0047B741 |. E8 1283F8FF CALL 1.00403A58
    0047B746 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
    0047B749 |. BA 02000000 MOV EDX,2
    0047B74E |. E8 2983F8FF CALL 1.00403A7C
    0047B753 \. C3 RETN
    0047B754 .^ E9 977DF8FF JMP 1.004034F0
    0047B759 .^ EB CE JMP SHORT 1.0047B729
    0047B75B . 5F POP EDI
    0047B75C . 5E POP ESI
    0047B75D . 5B POP EBX
    0047B75E . 8BE5 MOV ESP,EBP
    0047B760 . 5D POP EBP
    0047B761 . C3 RETN ; 返回


    ++++++++++++++++++++++++++++++++++
    算法分析:
    一、逐位取用户名的16进制值。
    二、每位用户值的立方。
    三、取它的平方根整数。如果小于或等于10位,转换成10进制就是真码,否则接下去第四步。
    四、取前面10位,再加上作者预设的ASCII码:"321"最终就是真码啦。

    ———————————————
    举例1:
    用户名:W
    16进制取值:47
    它的立方:A0C47 --->10进制是:658503
    平方根:811.48197761872691200 <---10进制
    四舍五入取整数得:811 ,由于它的位数小于或等于10位,所以就是真码。

    举例2:
    用户名:WildCatIII
    经过上面例1逐位取得最终的ASCII码:
    ASCII "8111076112210005489551249624624624"

    取前面10位就是:ASCII "8111076112"
    后面加上作者预设码:ASCII "321"
    最终真码就是:ASCII "8111076112321"

    破解说明:之前分析过这个软件的1.21版,算法相同,代码段相同。捡个宝! ;P ;P 


    +++++++++++++++++++++++++++非常感谢您的阅览!
    本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    1. 算法注册机E源码:(向大家讨教其它语言的算法注册机来学习咯~)
    2. .版本 2

    3. .程序集 窗口程序集1

    4. .子程序 __启动窗口_创建完毕

    5. 标题 = “KeyGen FoR LRC傻瓜编辑器 V1.22”


    6. .子程序 _编辑框1_内容被改变
    7. .局部变量 User, 文本型
    8. .局部变量 i, 整数型
    9. .局部变量 变量, 整数型
    10. .局部变量 Code, 文本型

    11. User = 编辑框1.内容
    12. i = 取文本长度 (编辑框1.内容)
    13. .计次循环首 (i, 变量)
    14.     Code = Code + 到文本 (四舍五入 (求平方根 (取代码 (User, 变量) × 取代码 (User, 变量) × 取代码 (User, 变量)), ))
    15. .计次循环尾 ()
    16. .如果 (取文本长度 (Code) ≥ 10)
    17.     编辑框2.内容 = 取文本左边 (Code, 10) + “321”
    18. .否则
    19.     否则 ()
    20.     编辑框2.内容 = Code
    21. .如果结束


    22. .子程序 否则



    23. .子程序 _按钮1_被单击

    24. 信息框 (“CoDe By WildCatIII[D.4s]” + #换行符 + #换行符 + “  -=原创于2006-07-02=-”, 0, “关于”)
    复制代码

    [ 本帖最后由 野猫III 于 2006-7-2 17:35 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-2 21:37:26 | 显示全部楼层
    坐上沙发了,呵呵!支持猫兄。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-14 15:35
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2006-7-2 21:45:58 | 显示全部楼层
    猫继续努力。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-2 21:48:00 | 显示全部楼层
    猫兄不日功成,祝贺之。。。。。。。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-2 21:55:30 | 显示全部楼层
    注册机要支持中文



    1. .版本 2

    2. .程序集 窗口程序集1

    3. .子程序 _按钮1_被单击
    4. .局部变量 NAME, 文本型
    5. .局部变量 LEN, 整数型
    6. .局部变量 N, 字节型
    7. .局部变量 I, 整数型
    8. .局部变量 CODE0, 双精度小数型
    9. .局部变量 CODEA, 文本型

    10. NAME = 编辑框1.内容
    11. LEN = 取文本长度 (NAME)
    12. CODEA = “”

    13. .变量循环首 (1, LEN, 1, I)
    14.     N = 取代码 (NAME, I)
    15.     CODE0 = 四舍五入 (求平方根 (N × N × N), )
    16.     CODEA = CODEA + 到文本 (CODE0)
    17. .变量循环尾 ()

    18. LEN = 取文本长度 (CODEA)

    19. .如果真 (LEN ≥ 10)
    20.     CODEA = 取文本左边 (CODEA, 10) + “321”
    21. .如果真结束

    22. 编辑框2.内容 = CODEA

    复制代码



    [ 本帖最后由 快雪时晴 于 2006-7-2 21:57 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2006-7-2 23:03:31 | 显示全部楼层
    谢谢 快雪时晴 兄弟!

    看来咱要向兄弟学习,努力补习这个中文的支持了。

    下次咱发的,一定要支持中文的!呵呵~~~

    不然的话,老大打咱PP好了。

    +++++++++++++++++++++++++++++++++
    分析给大家看看是否正确:

    .版本 2

    .程序集 窗口程序集1

    .子程序 _按钮1_被单击
    .局部变量 NAME, 文本型
    .局部变量 LEN, 整数型
    .局部变量 N, 字节型
    .局部变量 I, 整数型
    .局部变量 CODE0, 双精度小数型
    .局部变量 CODEA, 文本型

    NAME = 编辑框1.内容
    LEN = 取文本长度 (NAME)
    CODEA = “”          'Codea初如化

    .变量循环首 (1, LEN, 1, I)   '这里的是不是说Len每次加1,I每次加1?
        N = 取代码 (NAME, I)   '循环取用户代码(10进制)
        CODE0 = 四舍五入 (求平方根 (N × N × N), ) '立方,求得平方根后四舍五入,其结果成为一个“双精度小数型”数据
        CODEA = CODEA + 到文本 (CODE0) '结果放到CodeA中
    .变量循环尾 ()

    LEN = 取文本长度 (CODEA)

    .如果真 (LEN ≥ 10)    '注册码如果大于10或等于10位
        CODEA = 取文本左边 (CODEA, 10) + “321” '注册码要加上321
    .如果真结束

    编辑框2.内容 = CODEA

    [ 本帖最后由 野猫III 于 2006-7-3 00:03 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-3 09:12:06 | 显示全部楼层
    学习,收藏!!支持!!!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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