飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9685|回复: 14

[PYG]算法分析入门第十二课

[复制链接]
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2005-7-31 16:44:06 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第十二课
    【破文作者】飘云[PYG]
    破解平台】WinXp
    【作者邮箱】[email protected]
    【软件名称】ADSL密码终结者 2005
    【软件大小】2.9MB
    【下载地址】http://adsl.gpzx.net/xiazai.asp
    【软件说明】1.采用多线程设计,一小时可以扫描近6万个IP地址,扫描速度是目前最快的,在晚上在线人多的时候扫描,经测试,一小时最多时可破解800个以上的帐号;
    2.自带了目前市面*通、*信常给用户发的adsl猫的型号对应的默认用户名和密码,破解率高达80%以上;
    3.程序整合了目前最新的全球IP数据库,可以针对性的扫描某一个省、市范围的adsl用户。支持根据省、市名查询IP段,或根据IP地址查询所在地理位置;
    4.完善的扫描结果管理,所以扫描出来的帐号和密码均能自动查询出所在地理位置,并且保存在程序数据库中。可以根据省市名查询破解的帐号和密码;
    5.具有扫描历史记录,可以将当前扫描的IP范围保存在历史记录数据库中,下次打开时继续扫描;
    6.破解率高,只要对方的adsl支持网页管理界面,就可以用自带的密码字典试出管理用户名和密码,如果以后出现新的adsl型号的猫,只要帮助中的说明将默认用户名和密码添加到密码字典中即可;
    【破解工具】PEiD 0.92中文版、OD二哥修改版
    【保护方式】序列号+注册码
    【破解目的】学习破解。熟练应用各种工具。
    【破解声明】我乃小菜鸟一只,偶得一点心得,愿与大家分享:)
    【破解过程】由于这里主要讨论算法分析,脱壳 去自效验部分没有写上,具体请看 视频区的录像~
    004ED2B7    .  53             push ebx
    004ED2B8    .  8BD8           mov ebx,eax
    004ED2BA    .  33C0           xor eax,eax
    004ED2BC    .  55             push ebp
    004ED2BD    .  68 5AD44E00    push 2.004ED45A
    004ED2C2    .  64:FF30        push dword ptr fs:[eax]
    004ED2C5    .  64:8920        mov dword ptr fs:[eax],esp
    004ED2C8    .  8D55 F4        lea edx,dword ptr ss:[ebp-C]
    004ED2CB    .  8B83 0C030000  mov eax,dword ptr ds:[ebx+30C]
    004ED2D1    .  E8 EE6BF7FF    call 2.00463EC4
    004ED2D6    .  8B45 F4        mov eax,dword ptr ss:[ebp-C]
    004ED2D9    .  E8 0E73F1FF    call 2.004045EC
    004ED2DE    .  83F8 10        cmp eax,10                          ;  是否16位
    004ED2E1    .  74 14          je short 2.004ED2F7                 ;  是则跳
    004ED2E3    .  E8 6803F2FF    call 2.0040D650
    004ED2E8    .  B8 70D44E00    mov eax,2.004ED470
    004ED2ED    .  E8 729EF4FF    call 2.00437164
    004ED2F2    .  E9 38010000    jmp 2.004ED42F
    004ED2F7    >  33C9           xor ecx,ecx
    004ED2F9    .  B2 01          mov dl,1
    004ED2FB    .  A1 CCBB4100    mov eax,dword ptr ds:[41BBCC]
    004ED300    .  E8 1B3CF3FF    call 2.00420F20
    004ED305    .  8945 FC        mov dword ptr ss:[ebp-4],eax
    004ED308    .  8D55 EC        lea edx,dword ptr ss:[ebp-14]
    004ED30B    .  A1 E4214F00    mov eax,dword ptr ds:[4F21E4]
    004ED310    .  8B00           mov eax,dword ptr ds:[eax]
    004ED312    .  E8 256EF9FF    call 2.0048413C
    004ED317    .  8B45 EC        mov eax,dword ptr ss:[ebp-14]
    004ED31A    .  8D55 F0        lea edx,dword ptr ss:[ebp-10]
    004ED31D    .  E8 E2C1F1FF    call 2.00409504
    004ED322    .  8D45 F0        lea eax,dword ptr ss:[ebp-10]
    004ED325    .  BA 8CD44E00    mov edx,2.004ED48C                  ;  ASCII "licence.dat"
    004ED32A    .  E8 C572F1FF    call 2.004045F4
    004ED32F    .  8B45 F0        mov eax,dword ptr ss:[ebp-10]
    004ED332    .  E8 3DC1F1FF    call 2.00409474
    004ED337    .  84C0           test al,al
    004ED339    .  75 40          jnz short 2.004ED37B
    004ED33B    .  68 FFFF0000    push 0FFFF
    004ED340    .  8D55 E4        lea edx,dword ptr ss:[ebp-1C]
    004ED343    .  A1 E4214F00    mov eax,dword ptr ds:[4F21E4]
    004ED348    .  8B00           mov eax,dword ptr ds:[eax]
    004ED34A    .  E8 ED6DF9FF    call 2.0048413C
    004ED34F    .  8B45 E4        mov eax,dword ptr ss:[ebp-1C]
    004ED352    .  8D55 E8        lea edx,dword ptr ss:[ebp-18]
    004ED355    .  E8 AAC1F1FF    call 2.00409504
    004ED35A    .  8D45 E8        lea eax,dword ptr ss:[ebp-18]
    004ED35D    .  BA 8CD44E00    mov edx,2.004ED48C                  ;  ASCII "licence.dat"
    004ED362    .  E8 8D72F1FF    call 2.004045F4
    004ED367    .  8B4D E8        mov ecx,dword ptr ss:[ebp-18]       ; |
    004ED36A    .  B2 01          mov dl,1                            ; |
    004ED36C    .  A1 60BA4100    mov eax,dword ptr ds:[41BA60]       ; |
    004ED371    .  E8 7A37F3FF    call 2.00420AF0                     ; \2.00420AF0
    004ED376    .  8945 F8        mov dword ptr ss:[ebp-8],eax
    004ED379    .  EB 3B          jmp short 2.004ED3B6
    004ED37B    >  6A 42          push 42
    004ED37D    .  8D55 DC        lea edx,dword ptr ss:[ebp-24]
    004ED380    .  A1 E4214F00    mov eax,dword ptr ds:[4F21E4]
    004ED385    .  8B00           mov eax,dword ptr ds:[eax]
    004ED387    .  E8 B06DF9FF    call 2.0048413C
    004ED38C    .  8B45 DC        mov eax,dword ptr ss:[ebp-24]
    004ED38F    .  8D55 E0        lea edx,dword ptr ss:[ebp-20]
    004ED2B8   mov ebx,eax
    004ED2BA   xor eax,eax
    004ED2BC   push ebp
    004ED2BD   push 2.004ED45A
    004ED2C2   push dword ptr fs:[eax]
    004ED2C5   mov dword ptr fs:[eax],esp
    004ED2C8   lea edx,dword ptr ss:[ebp-C]
    004ED2CB   mov eax,dword ptr ds:[ebx+30C]
    004ED2D1   call 2.00463EC4
    004ED2D6   mov eax,dword ptr ss:[ebp-C]
    004ED2D9   call 2.004045EC
    004ED2DE   cmp eax,10                          ;  是否16位
    004ED2E1   je short 2.004ED2F7                 ;  是则跳
    004ED2E3   call 2.0040D650
    004ED2E8   mov eax,2.004ED470
    004ED2ED   call 2.00437164
    004ED2F2   jmp 2.004ED42F
    004ED2F7   xor ecx,ecx
    004ED2F9   mov dl,1
    004ED2FB   mov eax,dword ptr ds:[41BBCC]
    004ED300   call 2.00420F20
    004ED305   mov dword ptr ss:[ebp-4],eax
    004ED308   lea edx,dword ptr ss:[ebp-14]
    004ED30B   mov eax,dword ptr ds:[4F21E4]
    004ED310   mov eax,dword ptr ds:[eax]
    004ED312   call 2.0048413C
    004ED317   mov eax,dword ptr ss:[ebp-14]
    004ED31A   lea edx,dword ptr ss:[ebp-10]
    004ED31D   call 2.00409504
    004ED322   lea eax,dword ptr ss:[ebp-10]
    004ED325   mov edx,2.004ED48C                  ;  ASCII "licence.dat"
    004ED32A   call 2.004045F4
    004ED32F   mov eax,dword ptr ss:[ebp-10]
    004ED332   call 2.00409474
    004ED337   test al,al
    004ED339   jnz short 2.004ED37B
    004ED33B   push 0FFFF
    004ED340   lea edx,dword ptr ss:[ebp-1C]
    004ED343   mov eax,dword ptr ds:[4F21E4]
    004ED348   mov eax,dword ptr ds:[eax]
    004ED34A   call 2.0048413C
    004ED34F   mov eax,dword ptr ss:[ebp-1C]
    004ED352   lea edx,dword ptr ss:[ebp-18]
    004ED355   call 2.00409504
    004ED35A   lea eax,dword ptr ss:[ebp-18]
    004ED35D   mov edx,2.004ED48C                  ;  ASCII "licence.dat"
    004ED362   call 2.004045F4
    004ED367   mov ecx,dword ptr ss:[ebp-18]       ; |
    004ED36A   mov dl,1                            ; |
    004ED36C   mov eax,dword ptr ds:[41BA60]       ; |
    004ED371   call 2.00420AF0                     ; \2.00420AF0
    004ED376   mov dword ptr ss:[ebp-8],eax
    004ED379   jmp short 2.004ED3B6
    004ED37B   push 42
    004ED37D   lea edx,dword ptr ss:[ebp-24]
    004ED380   mov eax,dword ptr ds:[4F21E4]
    004ED385   mov eax,dword ptr ds:[eax]
    004ED387   call 2.0048413C
    004ED38C   mov eax,dword ptr ss:[ebp-24]
    004ED38F   lea edx,dword ptr ss:[ebp-20]
    004ED392   call 2.00409504
    004ED397   lea eax,dword ptr ss:[ebp-20]       ;  注册码保存在licence.dat
    004ED39A   mov edx,2.004ED48C                  ;  ASCII "licence.dat"
    004ED39F   call 2.004045F4
    004ED3A4   mov ecx,dword ptr ss:[ebp-20]       ; |
    004ED3A7   mov dl,1                            ; |
    004ED3A9   mov eax,dword ptr ds:[41BA60]       ; |
    004ED3AE   call 2.00420AF0                     ; \2.00420AF0
    004ED3B3   mov dword ptr ss:[ebp-8],eax
    004ED3B6   xor eax,eax
    004ED3B8   push ebp
    004ED3B9   push 2.004ED419
    004ED3BE   push dword ptr fs:[eax]
    004ED3C1   mov dword ptr fs:[eax],esp
    004ED3C4   lea edx,dword ptr ss:[ebp-28]
    004ED3C7   mov eax,dword ptr ds:[ebx+30C]
    004ED3CD   call 2.00463EC4
    004ED3D2   mov edx,dword ptr ss:[ebp-28]       ;  假码
    004ED3D5   mov eax,dword ptr ss:[ebp-4]
    004ED3D8   call 2.00421034
    004ED3DD   push 0
    004ED3DF   push 0
    004ED3E1   mov edx,dword ptr ss:[ebp-4]
    004ED3E4   mov eax,dword ptr ss:[ebp-8]
    004ED3E7   call 2.00420874
    004ED3EC   call 2.0040D650
    004ED3F1   mov eax,2.004ED4A0
    004ED3F6   call 2.00437164                     ;  提示 重新启动来验证
    004ED3FB   xor eax,eax
    004ED3FD   pop edx
    004ED3FE   pop ecx
    004ED3FF   pop ecx
    004ED400   mov dword ptr fs:[eax],edx
    004ED403   push 2.004ED420
    004ED408   mov eax,dword ptr ss:[ebp-8]
    004ED40B   call 2.00403438
    004ED410   mov eax,dword ptr ss:[ebp-4]
    004ED413   call 2.00403438
    004ED418   retn


    既然注册信息保存在licence.dat  那么我们就对来找“licence.dat”,  还是用字符插件,可以发现有5处

    Ultra String Reference,项目 1140
    Address=004ED325
    Disassembly=mov edx,2.004ED48C
    Text String=licence.dat


    Ultra String Reference,项目 1141
    Address=004ED35D
    Disassembly=mov edx,2.004ED48C
    Text String=licence.dat


    Ultra String Reference,项目 1142
    Address=004ED39A
    Disassembly=mov edx,2.004ED48C
    Text String=licence.dat



    Ultra String Reference,项目 1148
    Address=004ED8B9
    Disassembly=mov edx,2.004EDA3C
    Text String=licence.dat


    Ultra String Reference,项目 1150
    Address=004ED97A
    Disassembly=mov edx,2.004EDA3C
    Text String=licence.dat


    仔细分析一下就会发现,前三处在上面的代码中已经出现了,明显不是验证注册码的,
    那我们就在004ED8B9下端吧!   


    重新运行,嘿嘿!! 断下了


    004ED8B9   mov edx,2.004EDA3C                  ;  ASCII "licence.dat"
    004ED8BE   call 2.004045F4
    004ED8C3   mov eax,dword ptr ss:[ebp-20]
    004ED8C6   call 2.00409474
    004ED8CB   test al,al
    004ED8CD   jnz short 2.004ED8D8
    004ED8CF   mov byte ptr ss:[ebp-1],0
    004ED8D3   jmp 2.004ED9FB
    004ED8D8   lea edx,dword ptr ss:[ebp-34]
    004ED8DB   mov eax,2.004EDA50                  ;  ASCII "iloveyanyan"
    004ED8E0   call 2.004A11C0
    004ED8E5   lea eax,dword ptr ss:[ebp-34]
    004ED8E8   lea edx,dword ptr ss:[ebp-10]
    004ED8EB   call 2.004A1234                     ;  将“iloveyanyan”进行标准MD5换算
    004ED8F0   mov eax,ebx
    004ED8F2   call 2.004ED67C
    004ED8F7   xor edx,edx
    004ED8F9   push edx                            ; /Arg2 => 00000000
    004ED8FA   push eax                            ; |Arg1
    004ED8FB   lea eax,dword ptr ss:[ebp-38]       ; |
    004ED8FE   call 2.00409058                     ; \2.00409058
    004ED903   mov eax,dword ptr ss:[ebp-38]       ;  序列号
    004ED906   lea edx,dword ptr ss:[ebp-34]
    004ED909   call 2.004A11C0
    004ED90E   lea eax,dword ptr ss:[ebp-34]
    004ED911   lea edx,dword ptr ss:[ebp-14]
    004ED914   call 2.004A1234                     ;  对序列号进行标准MD5换算
    004ED919   push dword ptr ss:[ebp-14]          ;  转换后的序列号
    004ED91C   push dword ptr ss:[ebp-10]          ;  转换后的“iloveyanyan”
    004ED91F   push dword ptr ss:[ebp-14]          ;  转换后的序列号
    004ED922   lea eax,dword ptr ss:[ebp-18]
    004ED925   mov edx,3
    004ED92A   call 2.004046AC                     ;  将3者连接
    004ED92F   lea edx,dword ptr ss:[ebp-34]
    004ED932   mov eax,dword ptr ss:[ebp-18]
    004ED935   call 2.004A11C0
    004ED93A   lea eax,dword ptr ss:[ebp-34]
    004ED93D   lea edx,dword ptr ss:[ebp-1C]
    004ED940   call 2.004A1234                     ;  再次进行MD5换算(设为a)
    004ED945   lea eax,dword ptr ss:[ebp-1C]
    004ED948   push eax
    004ED949   mov ecx,10                          ;  传入参数16
    004ED94E   mov edx,1                           ;  参数1
    004ED953   mov eax,dword ptr ss:[ebp-1C]
    004ED956   call 2.0040484C                     ;  从a中第一位开始取16位
    004ED95B   push 40
    004ED95D   lea edx,dword ptr ss:[ebp-40]
    004ED960   mov eax,dword ptr ds:[4F21E4]
    004ED965   mov eax,dword ptr ds:[eax]
    004ED967   call 2.0048413C
    004ED96C   mov eax,dword ptr ss:[ebp-40]
    004ED96F   lea edx,dword ptr ss:[ebp-3C]
    004ED972   call 2.00409504                     ;  开始读取licence.dat的内容了~  对比之用
    004ED977   lea eax,dword ptr ss:[ebp-3C]
    004ED97A   mov edx,2.004EDA3C                  ;  ASCII "licence.dat"
    004ED97F   call 2.004045F4
    004ED984   mov ecx,dword ptr ss:[ebp-3C]       ; |
    004ED987   mov dl,1                            ; |
    004ED989   mov eax,dword ptr ds:[41BA60]       ; |
    004ED98E   call 2.00420AF0                     ; \2.00420AF0
    004ED993   mov dword ptr ss:[ebp-8],eax
    004ED996   xor ecx,ecx
    004ED998   mov dl,1
    004ED99A   mov eax,dword ptr ds:[41BBCC]
    004ED99F   call 2.00420F20
    004ED9A4   mov dword ptr ss:[ebp-C],eax
    004ED9A7   xor eax,eax
    004ED9A9   push ebp
    004ED9AA   push 2.004ED9F4
    004ED9AF   push dword ptr fs:[eax]
    004ED9B2   mov dword ptr fs:[eax],esp
    004ED9B5   push 0
    004ED9B7   push 0
    004ED9B9   mov edx,dword ptr ss:[ebp-8]
    004ED9BC   mov eax,dword ptr ss:[ebp-C]
    004ED9BF   call 2.00420874
    004ED9C4   mov eax,dword ptr ss:[ebp-1C]       ;  真码
    004ED9C7   mov edx,dword ptr ss:[ebp-C]
    004ED9CA   mov edx,dword ptr ds:[edx+4]        ;  假码
    004ED9CD   call 2.00404738                     ;  这里可以做内存注册机了!
    004ED9D2   sete byte ptr ss:[ebp-1]
    004ED9D6   xor eax,eax
    004ED9D8   pop edx
    004ED9D9   pop ecx
    004ED9DA   pop ecx
    004ED9DB   mov dword ptr fs:[eax],edx
    004ED9DE   push 2.004ED9FB
    004ED9E3   mov eax,dword ptr ss:[ebp-8]
    004ED9E6   call 2.00403438
    004ED9EB   mov eax,dword ptr ss:[ebp-C]
    004ED9EE   call 2.00403438
    004ED9F3   retn

    【算法总结】将固定字符“iloveyanyan”进行MD5换算,然后将序列号进行MD5换算,再按照MD5(序列号)+MD5(iloveyanyan)+MD5(序列号)
    再对其进行MD5转换,最后取16位即位注册码!
    【算法注册机】
    自己写吧~~ 简单啊!
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-8-1 14:12:22 | 显示全部楼层
    又有文章学习了^-^
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-8-3 17:02:49 | 显示全部楼层
    仔细看了!有点难度。还有MD5这片,偶空白。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-8-12 12:31:15 | 显示全部楼层

    不错,继续

    看过视频了,辛苦了,老大。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-9-2 13:20:58 | 显示全部楼层
    学习算法,感谢坛主!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-10-16 20:41:58 | 显示全部楼层
    顶.............
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-10-16 22:18:28 | 显示全部楼层
    飘云老大真厉害~~学习的说
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

     楼主| 发表于 2005-10-17 07:52:17 | 显示全部楼层
    Originally posted by ihhvqu at 2005-10-16 08:41 PM:
    顶.............



    警告一次!
    扣5分!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-10-27 11:14:27 | 显示全部楼层
    飘云老大,不好意思,我只是想把全部的算法教程都顶上来,我好收集,结果顶了后它没上来,结果把复顶,就就成了  一个贴子顶了很多下.............
          很不好意思......
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 11:35:36 | 显示全部楼层
    学习,学习
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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