飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4274|回复: 11

[已解决] 中华灯谜 破文

[复制链接]
  • TA的每日心情
    开心
    2023-6-2 15:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2010-6-1 19:13:32 | 显示全部楼层 |阅读模式
    Blackk第十轮第一课作业
           中级作业··
    如果错误,希望各位大大指出~~谢谢·

    0054EF19  |.  E8 6A8CEFFF   call    00447B88                         ;  取订单号位数
    0054EF1E  |.  8B85 64FFFFFF mov     eax, dword ptr [ebp-9C]          ;  订单号入EAX
    0054EF24  |.  E8 DBA6EBFF   call    00409604                         ;  订单号转为十六进制
    0054EF29  |.  B9 3A000000   mov     ecx, 3A                          ;  ECX=3A
    0054EF2E  |.  99            cdq
    0054EF2F  |.  F7F9          idiv    ecx
    0054EF31  |.  8BC2          mov     eax, edx                         ;  订单号/3A 余数送EAX 设为(Y)
    0054EF33  |.  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
    …………
    省略一些代码
    0054EF51  |.  E8 328CEFFF   call    00447B88
    0054EF56  |.  8B85 58FFFFFF mov     eax, dword ptr [ebp-A8]          ;  订单号入EAX
    0054EF5C  |.  E8 A3A6EBFF   call    00409604                         ;  订单号转16进制
    0054EF61  |.  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
    0054EF67  |.  E8 80DCFFFF   call    0054CBEC                             关键CALL1
    0054EF6C  |.  8B85 5CFFFFFF mov     eax, dword ptr [ebp-A4]
    0054EF72  |.  E8 8DA6EBFF   call    00409604
    0054EF77  |.  8D95 60FFFFFF lea     edx, dword ptr [ebp-A0]
    0054EF7D  |.  E8 4ADDFFFF   call    0054CCCC                             关键CALL2
    0054EF82  |.  8B95 60FFFFFF mov     edx, dword ptr [ebp-A0]
    0054EF88  |.  58            pop     eax
    0054EF89  |.  E8 E25CEBFF   call    00404C70                         ;  把Y和P拼凑 即为注册码
    0054EF8E  |.  8B95 68FFFFFF mov     edx, dword ptr [ebp-98]

    进入关键CALL1

    0054CC09  |.  81F3 F1250B00 xor     ebx, 0B25F1                      ;  订单号十六进制和B25F1异或
    0054CC0F  |.  8BC3          mov     eax, ebx
    0054CC11  |.  33D2          xor     edx, edx
    0054CC13  |.  52            push    edx
    0054CC14  |.  50            push    eax
    0054CC15  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    0054CC18  |.  E8 B3C9EBFF   call    004095D0                         ;  异或结果转十进制(设为K)
    0054CC1D  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CC20  |.  0FB600        movzx   eax, byte ptr [eax]
    0054CC23  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CC26  |.  0FB652 01     movzx   edx, byte ptr [edx+1]
    0054CC2A  |.  03C2          add     eax, edx                         ;  K的[1]+[2]=A
    0054CC2C  |.  B9 05000000   mov     ecx, 5
    0054CC31  |.  99            cdq
    0054CC32  |.  F7F9          idiv    ecx
    0054CC34  |.  80C2 34       add     dl, 34                           ;  A/5的余数加上34
    0054CC37  |.  8855 F8       mov     byte ptr [ebp-8], dl             ;  保存
    0054CC3A  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CC3D  |.  0FB640 02     movzx   eax, byte ptr [eax+2]
    0054CC41  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CC44  |.  0FB652 03     movzx   edx, byte ptr [edx+3]
    0054CC48  |.  03C2          add     eax, edx                         ;  K的[3]+[4]=B
    0054CC4A  |.  B9 05000000   mov     ecx, 5
    0054CC4F  |.  99            cdq
    0054CC50  |.  F7F9          idiv    ecx
    0054CC52  |.  8BDA          mov     ebx, edx
    0054CC54  |.  80C3 33       add     bl, 33                           ;  B/5的余数加33
    0054CC57  |.  885D F9       mov     byte ptr [ebp-7], bl             ;  保存
    0054CC5A  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    …………
    省略一些代码
    0054CC85  |.  B9 19000000   mov     ecx, 19
    0054CC8A  |.  E8 B982EBFF   call    00404F48                         ;  结果和K拼凑起来  结果设为R

    CALL2

    0054CCEB  |.  81F3 8776FBDD xor     ebx, DDFB7687                    ;  R和DDFB7687异或
    0054CCF1  |.  8BC3          mov     eax, ebx
    0054CCF3  |.  33D2          xor     edx, edx
    0054CCF5  |.  52            push    edx
    0054CCF6  |.  50            push    eax
    0054CCF7  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    0054CCFA  |.  E8 D1C8EBFF   call    004095D0                         ;  异或的结果转10进制(设为L)
    0054CCFF  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CD02  |.  0FB600        movzx   eax, byte ptr [eax]
    0054CD05  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CD08  |.  0FB652 01     movzx   edx, byte ptr [edx+1]
    0054CD0C  |.  03C2          add     eax, edx                         ;  L的[1]+[2]=E
    0054CD0E  |.  B9 05000000   mov     ecx, 5
    0054CD13  |.  99            cdq
    0054CD14  |.  F7F9          idiv    ecx
    0054CD16  |.  80C2 66       add     dl, 66                           ;  E/5的余数加66
    0054CD19  |.  8855 F8       mov     byte ptr [ebp-8], dl             ;  保存
    0054CD1C  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CD1F  |.  0FB640 02     movzx   eax, byte ptr [eax+2]
    0054CD23  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CD26  |.  0FB652 03     movzx   edx, byte ptr [edx+3]            ;  L的[3]+[4]=F
    0054CD2A  |.  03C2          add     eax, edx
    0054CD2C  |.  B9 05000000   mov     ecx, 5
    0054CD31  |.  99            cdq
    0054CD32  |.  F7F9          idiv    ecx
    0054CD34  |.  80C2 75       add     dl, 75                           ;  F/5的余数加75
    0054CD37  |.  8855 F9       mov     byte ptr [ebp-7], dl             ;  保存
    0054CD3A  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CD3D  |.  0FB640 04     movzx   eax, byte ptr [eax+4]
    0054CD41  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CD44  |.  0FB652 05     movzx   edx, byte ptr [edx+5]            ;  L的[5]+[6]=G
    0054CD48  |.  03C2          add     eax, edx
    0054CD4A  |.  B9 05000000   mov     ecx, 5
    0054CD4F  |.  99            cdq
    0054CD50  |.  F7F9          idiv    ecx
    0054CD52  |.  80C2 7A       add     dl, 7A                           ;  G/5的余数加上7A
    0054CD55  |.  8855 FA       mov     byte ptr [ebp-6], dl             ;  保存
    0054CD58  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0054CD5B  |.  0FB640 06     movzx   eax, byte ptr [eax+6]
    0054CD5F  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CD62  |.  0FB652 07     movzx   edx, byte ptr [edx+7]
    0054CD66  |.  03C2          add     eax, edx
    0054CD68  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0054CD6B  |.  0FB652 08     movzx   edx, byte ptr [edx+8]            ;  L的[7]+[8]+[9]=H
    0054CD6F  |.  03C2          add     eax, edx
    0054CD71  |.  B9 05000000   mov     ecx, 5
    0054CD76  |.  99            cdq
    0054CD77  |.  F7F9          idiv    ecx
    0054CD79  |.  80C2 69       add     dl, 69                           ;  H/5的余数加上69
    0054CD7C  |.  8855 FB       mov     byte ptr [ebp-5], dl             ;  保存
    …………
    省略一些代码
    0054CDE1  |.  B9 09000000   mov     ecx, 9
    0054CDE6  |.  E8 5D81EBFF   call    00404F48                         ;  和L一起拼凑结果 设为P


    算法总结:
    订单号的16进制 / 3A取余数  设为Y   假设是123123   Y=1E0F3 Mod 3A=2F(16)=47(10)  
    订单号的16进制 Xor  B25F1(定值)  转换 10进制 设为k    k=1E0F3 Xor B25F1=AC502=705794(10)

    (k的第一位和第二位的ASCII码值 Mod  5)+34    我这里为 7  保存

    (k的第三位和第四位的ASCII码值 Mod  5)+33    我这里为 6  保存

    依次拼凑到K的后面    设为R  R=70579476

    R 的16进制和定值 DDFB7687  异或  结果转为10进制  设为L   L=3654255507(10)

    (L 十进制的第1位和第2位的ASCII码值相加 MOD  5   )+66          结果换成字符,保存  我这里为f
    (L 十进制的第3位和第4位的ASCII码值相加后 MOD  5   )+75        结果换成字符,保存  我这里为u
    (L 十进制的第5位和第6位的ASCII码值相加后 MOD  5   )+7A        结果换成字符,保存  我这里为}
    (L 十进制的第7位和第8位第9位的ASCII值相加后 MOD  5 ) +上69    结果换成字符,保存  我这里为m

    结果最后拼凑为
    36m5u425}f5507  =  p
    p 和 Y 拼凑 即为最后的注册码 = 4736m5u425}f5507

    所以注册信息为:
    订单号:123123
    注册码:4736m5u425}f5507

    评分

    参与人数 1威望 +12 收起 理由
    杀很大 + 12 高手

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-3 13:46:32 | 显示全部楼层
    楼主啊,
    交作业是不是应该到软件调试的那个区啊,不是疑难交流的专区啊,我看人家都是在上一级的软件调试区交的作业。万一老师没看到楼主的作业,楼主就白写了。
    是不是。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-6-2 15:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2010-6-3 13:56:03 | 显示全部楼层
    回复 2# whdl


        谢谢提醒··不过这个是在好几天发的了··
    我早已在软件调试区发了作业。。只是这个帖子没删除··
       因为有杀大的加威望啊··呵呵·/:017
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-3 18:08:24 | 显示全部楼层
    交了就好!!!

    我也是瞎操心。呵呵!

    祝楼主开心。再见!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-6 01:19:39 | 显示全部楼层
    看不明白,感觉很深.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-6 21:23:26 | 显示全部楼层
    不错啊,楼主很用心
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-6 23:40:01 | 显示全部楼层
    很复杂的样子
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-6-2 15:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2010-6-7 11:58:38 | 显示全部楼层
    回复 6# cz245


        呵呵,在努力学习··
    尽量自己分析得细一点
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-6-2 15:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2010-6-7 11:59:23 | 显示全部楼层
    回复 7# 傻瓜


        慢慢看就可以看懂了,这样的算法并不复杂··
    可能 是我写的太复杂了·/:017
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-7-14 15:23:44 | 显示全部楼层
    谢谢分享~ 算法分析好累的感觉
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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