飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2657|回复: 7

[求助] 算法分析的几个入门疑惑

[复制链接]

该用户从未签到

发表于 2007-9-11 00:50:47 | 显示全部楼层 |阅读模式
为便于分析,用户名取abcd,用ollydbg进行追踪分析。
注册码计算的关键部分见下:
==============▲=计算开始=▲===============

:004011E0 33DB                    xor ebx, ebx    ---------->EBX清0
:004011E2 8A5C05E4                mov bl, byte ptr [ebp+eax-1C]--->依次取注册名字符的16进制值送入EBX的低位。
:004011E6 03D3                    add edx, ebx  ---------->EDX=EBX+EDX
              其中,EDX的初始值为0。EDX用来保存每次循环后的结果。
:004011E8 40                      inc eax          --------->EAX加1,作为计数器
:004011E9 3BC8                    cmp ecx, eax   --------->取完了吗?
:004011EB 7FF3                    jg 004011E0   --------->没取完就跳回循环。
=================计算结束=================
追踪过程中各寄存器值的列表清单:

光条位置        第一次        第二次
        EAX        EBX        ECX        EDX        EAX        EBX        ECX        EDX
4011E2        0        0        4        0        1        0        4        61
4011E6        0        61        4        0        1        62        4        61
4011E8        0        61        4        61        1        62        4        C3
4011E9        1        61        4        61        2        62        4        C3
4011EB                                                               
光条位置        第三次        第四次
        EAX        EBX        ECX        EDX        EAX        EBX        ECX        EDX
4011E2        2        0        4        C3        3        0        4        126
4011E6        2        63        4        C3        3        64        4        126
4011E8        2        63        4        126        3        64        4        18A
4011E9        3        63        4        126        4        64        4        18A
4011EB                                                               
说明:C3=61+62; 126=C3+63; 18A=126+64
18A=61+62+63+64        18A的十进制为394
总结:用户名abcd 注册码394
它的注册算法就是将姓名的所有字母ascii码之和相加,就是注册码。

本帖子中包含更多资源

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

x
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-9-11 00:53:37 | 显示全部楼层
这个是我看的有个入门篇的算法分析教程,但是看不太懂,入门就被卡住了,
入门疑惑:
1.追踪过程中各寄存器值的列表清单里光条在不同的位置,EAX,EBX,ECX,EDX的值相应随之变化,这个是操作那些步骤实现的啊?/:L
2.通过这些变化就可以断定:
C3=61+62; 126=C3+63; 18A=126+64
18A=61+62+63+64        18A的十进制为394

看的一知半解,如云里雾里一样,各位大佬 有时间帮俺指点下啊/:014
PYG19周年生日快乐!

该用户从未签到

发表于 2007-9-11 12:44:58 | 显示全部楼层
EBX清0==> 开始取每一位用户名的ASCII
EDX初试数值为0就是为了保存最后的计算结果
ECX中保存的是最初 用户名的位数
EAX做累加器 计算用户名取了几位

计算结束 下方的数据不需要再看~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-9-11 14:37:20 | 显示全部楼层
看来还是欠缺太多
回去好好研究研究再
PYG19周年生日快乐!

该用户从未签到

发表于 2007-9-11 23:53:13 | 显示全部楼层
谢谢不懂破解大侠的文章
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-9-12 08:12:59 | 显示全部楼层
原帖由 网际飞鹰 于 2007-9-11 23:53 发表
谢谢不懂破解大侠的文章


我吐血晕过去:funk:
PYG19周年生日快乐!

该用户从未签到

发表于 2007-9-12 09:49:08 | 显示全部楼层
哈哈,一山会还有一山低 /:018
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-2-2 16:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-9-15 21:25:08 | 显示全部楼层
    支持版主好好学习,学好了可以教我们了。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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