飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2397|回复: 6

PYG学员作业1完成了!请学长们批改!3Q

[复制链接]
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-3-15 16:51:34 | 显示全部楼层 |阅读模式
    【破文标题】快刀斩乱麻 V2.1的破解(我菜,现在只会暴力破解)
    【破解工具】OD,W32Dasm,UE
    【保护方式】注册名+序号
    【破文作者】crazysky
    【组  织】PYG学员
    【破解声明】我的破解很菜,不要笑我~~~!
    【电  邮】[email protected]
    【破解过程】
    刚开始时,用OD加载它,Ctrl+N查找当前模块中的名称,但找了很久也没找对中断点!没办法,用W32DASM反汇编它看看有没有新的发现!用W32DASM反汇编它后,在参考->串式数据参考中发现了"注册码不正确"这一内容,双击它,来到它对应的代码区,我想这里应该就是提示注册不成功的函数开始处!
    代码如下:
    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:00401503(C)
    |
    :004014D7 8A0429                  mov al, byte ptr [ecx+ebp]
    :004014DA 83E07F                  and eax, 0000007F
    :004014DD 69C03B2E0800            imul eax, 00082E3B
    :004014E3 8BF0                    mov esi, eax
    :004014E5 B8E10217B8              mov eax, B81702E1
    :004014EA F7EE                    imul esi
    :004014EC 03D6                    add edx, esi
    :004014EE C1FA06                  sar edx, 06
    :004014F1 8BC2                    mov eax, edx
    :004014F3 C1E81F                  shr eax, 1F
    :004014F6 03D0                    add edx, eax
    :004014F8 41                      inc ecx
    :004014F9 83F91E                  cmp ecx, 0000001E
    :004014FC 8DBC177A078500          lea edi, dword ptr [edi+edx+0085077A]
    :00401503 7CD2                    jl 004014D7
    :00401505 A1545C4100              mov eax, dword ptr [00415C54]
    :0040150A 5D                      pop ebp
    :0040150B 3BC7                    cmp eax, edi
    :0040150D EB14                    jmp 00401523
    :0040150F 53                      push ebx
    :00401510 53                      push ebx

    * Possible StringData Ref from Data Obj ->"注册码不正确!"
                                      |
    :00401511 6858504100              push 00415058

    * Reference To: MFC42.Ordinal:04B0, Ord:04B0h
                                      |
    :00401516 E8AFBF0000              Call 0040D4CA                                ;提示注册不正确函数
    :0040151B 393D545C4100            cmp dword ptr [00415C54], edi
    :00401521 755C                    jne 0040157F

    我想上面的就是注册检证过程!
    所以我再用OD加载它,在
    :004014D7 8A0429                  mov al, byte ptr [ecx+ebp]
    和:00401516 E8AFBF0000              Call 0040D4CA       
    下设下断点!
    F9运行程序,输入用户名:crazysky        注册码:987654321
    断在4014D7处,发现如下代码好像是注册算法过程:
    :004014D7 8A0429                  mov al, byte ptr [ecx+ebp]                ;取用户名字符 ,一次取一个字母
    :004014DA 83E07F                  and eax, 0000007F
    :004014DD 69C03B2E0800            imul eax, 00082E3B
    :004014E3 8BF0                    mov esi, eax
    :004014E5 B8E10217B8              mov eax, B81702E1
    :004014EA F7EE                    imul esi
    :004014EC 03D6                    add edx, esi
    :004014EE C1FA06                  sar edx, 06
    :004014F1 8BC2                    mov eax, edx
    :004014F3 C1E81F                  shr eax, 1F
    :004014F6 03D0                    add edx, eax
    :004014F8 41                      inc ecx
    :004014F9 83F91E                  cmp ecx, 0000001E
    :004014FC 8DBC177A078500          lea edi, dword ptr [edi+edx+0085077A] ;用户名经过1E次循环计算后得到的数据吧!(不知道对不对)
    :00401503 7CD2                    jl 004014D7                                ;回到取用户名字符处,即是回到004014D7处.
    :00401505 A1 545C4100             mov eax,dword ptr ds:[415C54]                ;这里我猜应该是注册码运算后的检证码(是注册码算法运算后的数据吧?)
    :0040150A 5D                          pop ebp
    :0040150B 3BC7                          cmp eax,edi                                ;用户名和注册码运算后得到的数据比较
    :0040150D 74 14                       je short x-cut.00401523                ;相等,则跳到401523处(注册成功处)
    :0040150F 53                          push ebx
    :00401510 53                          push ebx
    :00401511 68 58504100                  push x-cut.00415058
    :00401516 E8 AFBF0000                   call <jmp.&MFC42.#1200>                ;提示注册不正确函数
    :0040151B 393D 545C4100           cmp dword ptr ds:[415C54],edi
    :00401521 75 5C                   jnz short x-cut.0040157F
    :00401523 8D4C24 18                      lea ecx,dword ptr ss:[esp+18]
    :00401527 8D5424 0C                    lea edx,dword ptr ss:[esp+C]

    以上分析不知道对不对?高手不要笑我哦~!
    但是我找不到注册码算法的代码处,所以不知道它是怎样运算注册码的!
    没办法,只好将用户名和注册码验证处暴力改成验证成功(即不论注册码对不对,都跳到注册成功处)
    改成如下:
    :0040150D 74 14                       je short x-cut.00401523
    :0040150D EB 14                       jmp short x-cut.00401523
    这样就不论注册码对不对都直接跳过!

    所以,我用UE打开X-CUT.EXE
    搜索代码5D3BC774145353685804100
    将它改为5D3BC7EB145353685804100
    保存,运行X-CUT.EXE随便输入用户名和注册码,注册->成功!

    这是我第一次破解应用软件,有什么不对的请学长们多多指教~~~!!~~!~!
    (PS:要请学长们帮我批改这次作业,3Q~~!)

    [ Last edited by crazysky on 2005-3-15 at 04:55 PM ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-3-15 17:15:05 | 显示全部楼层
    有了OD还要UE就显得多余了。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2005-3-15 17:42:34 | 显示全部楼层
    OD才用了几次,不太会改啊!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-30 17:42
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-3-15 21:28:27 | 显示全部楼层
    学习!我一般用C32ASM改!习惯中国自己的软件!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-30 17:42
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-3-15 21:30:35 | 显示全部楼层
    鼓励哦!行动很快哦!相信的破解技术要是坚持下来会提高很多的!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2005-3-15 22:57:45 | 显示全部楼层
    谢谢鼓励!我会继续努力的!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2005-3-16 06:56:15 | 显示全部楼层
    看来你的汇编功底还可以哦!算法都可以了解一些!
    不错,支持!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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