飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2654|回复: 1

申请加入破文1

[复制链接]

该用户从未签到

发表于 2005-8-25 19:45:11 | 显示全部楼层 |阅读模式
壁纸雷达 v2005b.3算法分析

作者:sy888222
下载页面:http://www.shareware.cn/pub/12661.html
软件简介:壁纸雷达是一款小巧的壁纸工具软件,她最突出的特色是能每天从互联网上下载最新最酷的壁纸,并在您不知不觉中为您铺在桌面上。
主要特色:
  自动下载壁纸 (无需打开浏览器, 没有病毒! 没有弹出广告!). 
  支持系统热键,你可以用热键快速的实现壁纸的切换和清除. 
  设有壁纸收藏夹,您可以将自己喜欢的壁纸挑出来用于日常更换桌面. 
  您可以自行设定壁纸切换的时间和方式 . 
  自带屏保程序,将壁纸直接作为屏保图片显示 (包括150种切换特效 ). 
  自动检测电脑是否在线. 
  软件自动升级. 
  可以控制桌面图标的隐藏和显示. 
  占用很少的系统资源. 
破解说明:我是菜鸟,文中分析有不对的地方请各位高手指正!

查壳:Borland Delphi 6.0 - 7.0 无壳 ,对菜鸟来说最好不过了!现在的壳太猛了,多数搞不定哈!
安装完成后注册不在主程序,分析主程序并不能找到注册提示信息,在目录下的wrmain这个文件注册,用OD载入这个文件找到注册错误提示
双击"注册码不正确,请查实"提示信息,来到004D34E2处

004D3380  /. 55       push ebp //在此下断,F8往下走
004D3381  |. 8BEC      mov ebp,esp
004D3383  |. 81C4 F4FEFFFF  add esp,-10C
004D3389  |. 53       push ebx
004D338A  |. 56       push esi
004D338B  |. 57       push edi
004D338C  |. 33C9      xor ecx,ecx
004D338E  |. 894D F4     mov dword ptr ss:[ebp-C],ecx
004D3391  |. 894D FC     mov dword ptr ss:[ebp-4],ecx
004D3394  |. 8BF0      mov esi,eax
004D3396  |. 33C0      xor eax,eax
004D3398  |. 55       push ebp
004D3399  |. 68 42354D00   push wrmain.004D3542
004D339E  |. 64:FF30     push dword ptr fs:[eax]
004D33A1  |. 64:8920     mov dword ptr fs:[eax],esp
004D33A4  |. 66:C745 FA 4F04 mov word ptr ss:[ebp-6],44F
004D33AA  |. 8D55 F4     lea edx,dword ptr ss:[ebp-C]
004D33AD  |. 8B86 68030000  mov eax,dword ptr ds:[esi+368]
004D33B3  |. E8 00E0F6FF   call wrmain.004413B8
004D33B8  |. 8B45 F4     mov eax,dword ptr ss:[ebp-C] //注册码->EAX
004D33BB  |. 8D55 FC     lea edx,dword ptr ss:[ebp-4]
004D33BE  |. E8 2D5AF3FF   call wrmain.00408DF0
004D33C3  |. 8B45 FC     mov eax,dword ptr ss:[ebp-4]
004D33C6  |. E8 C517F3FF   call wrmain.00404B90
004D33CB  |. 83F8 0B     cmp eax,0B //注册码位数和12比较
004D33CE  |. 0F8E 2F010000  jle wrmain.004D3503 //小于等于就跳,跳即OVER
004D33D4  |. 33DB      xor ebx,ebx
004D33D6  |. 8B45 FC     mov eax,dword ptr ss:[ebp-4] //注册码->EAX
004D33D9  |. E8 B217F3FF   call wrmain.00404B90
004D33DE  |. 8BD0      mov edx,eax
004D33E0  |. 85D2      test edx,edx
004D33E2  |. 7E 26      jle short wrmain.004D340A
004D33E4  |. B8 01000000   mov eax,1 //1->EAX开始计数
004D33E9  |> 8B4D FC     /mov ecx,dword ptr ss:[ebp-4] //注册码->ECX
004D33EC  |. 0FB64C01 FF   |movzx ecx,byte ptr ds:[ecx+eax-1] //循环取注册码
004D33F1  |. 0FB77D FA    |movzx edi,word ptr ss:[ebp-6] //EDI=[ebp-6]=44F
004D33F5  |. C1EF 08     |shr edi,8 //EDI逻辑右移8位,为4
004D33F8  |. 33CF      |xor ecx,edi //ECX=ECX xor EDI
004D33FA  |. BF 12000000   |mov edi,12 //12->EDI
004D33FF  |. 2BF8      |sub edi,eax //EDI=EDI-EAX(eax初始为1,循环一次加1)
004D3401  |. 0FAFCF     |imul ecx,edi //ECX=ECX*EDI
004D3404  |. 03D9      |add ebx,ecx //计算结果累加->EBX
004D3406  |. 40       |inc eax //计数器加1,完成一个注册码运算
004D3407  |. 4A       |dec edx
004D3408  |.^ 75 DF      \jnz short wrmain.004D33E9 //取完往下走
004D340A  |> 8B45 FC     mov eax,dword ptr ss:[ebp-4]
004D340D  |. 0FB640 05    movzx eax,byte ptr ds:[eax+5] //取注册码第六位->EAX
004D3411  |. 6BC0 13     imul eax,eax,13 //注册码第六位*13
004D3414  |. 50       push eax
004D3415  |. 8BC3      mov eax,ebx
004D3417  |. 5A       pop edx
004D3418  |. 8BCA      mov ecx,edx
004D341A  |. 99       cdq
004D341B  |. F7F9      idiv ecx // 1C1E/3A3->商EAX,余数EDX
004D341D  |. 85D2      test edx,edx  //测试EDX
004D341F  |. 0F85 AD000000  jnz wrmain.004D34D2  //EDX不为0就跳,也就是必须能被注册码第六位*13整除
跳即OVER,在这里爆破还须搞定重起验证!
004D3425  |. 6A 00      push 0
004D3427  |. A1 EC654D00   mov eax,dword ptr ds:[4D65EC]
004D342C  |. 8B00      mov eax,dword ptr ds:[eax]
004D342E  |. E8 5519F3FF   call wrmain.00404D88
004D3433  |. 8BC8      mov ecx,eax
004D3435  |. BA 50354D00   mov edx,wrmain.004D3550
004D343A  |. A1 D0684D00   mov eax,dword ptr ds:[4D68D0]
004D343F  |. 8B00      mov eax,dword ptr ds:[eax]
004D3441  |. E8 F6E0F8FF   call wrmain.0046153C
004D3446  |. 8B86 68030000  mov eax,dword ptr ds:[esi+368]
004D344C  |. B2 01      mov dl,1
004D344E  |. E8 99E6F5FF   call wrmain.00431AEC
004D3453  |. 8B86 34030000  mov eax,dword ptr ds:[esi+334]
004D3459  |. 33D2      xor edx,edx
004D345B  |. 8B08      mov ecx,dword ptr ds:[eax]
004D345D  |. FF51 64     call dword ptr ds:[ecx+64]
004D3460  |. 8B86 DC030000  mov eax,dword ptr ds:[esi+3DC]
004D3466  |. B2 01      mov dl,1
004D3468  |. E8 7FE6F5FF   call wrmain.00431AEC
004D346D  |. 8B86 BC030000  mov eax,dword ptr ds:[esi+3BC]
004D3473  |. B2 01      mov dl,1
004D3475  |. 8B08      mov ecx,dword ptr ds:[eax]
004D3477  |. FF51 64     call dword ptr ds:[ecx+64]
004D347A  |. 8B86 E4030000  mov eax,dword ptr ds:[esi+3E4]
004D3480  |. 33D2      xor edx,edx
004D3482  |. E8 61DFF6FF   call wrmain.004413E8
004D3487  |. 8D85 F4FEFFFF  lea eax,dword ptr ss:[ebp-10C]
004D348D  |. 8B55 FC     mov edx,dword ptr ss:[ebp-4]
004D3490  |. B9 FF000000   mov ecx,0FF
004D3495  |. E8 D216F3FF   call wrmain.00404B6C
004D349A  |. 8D95 F4FEFFFF  lea edx,dword ptr ss:[ebp-10C]
004D34A0  |. A1 9C694D00   mov eax,dword ptr ds:[4D699C]
004D34A5  |. 05 E0000000   add eax,0E0
004D34AA  |. B1 10      mov cl,10
004D34AC  |. E8 27FBF2FF   call wrmain.00402FD8
004D34B1  |. 8B86 F0020000  mov eax,dword ptr ds:[esi+2F0]
004D34B7  |. BA 7C354D00   mov edx,wrmain.004D357C
004D34BC  |. E8 2752FDFF   call wrmain.004A86E8
004D34C1  |. A1 14664D00   mov eax,dword ptr ds:[4D6614]
004D34C6  |. C600 01     mov byte ptr ds:[eax],1
004D34C9  |. 8BC6      mov eax,esi
004D34CB  |. E8 50E8FFFF   call wrmain.004D1D20
004D34D0  |. EB 52      jmp short wrmain.004D3524
004D34D2  |> 6A 00      push 0
004D34D4  |. A1 EC654D00   mov eax,dword ptr ds:[4D65EC]
004D34D9  |. 8B00      mov eax,dword ptr ds:[eax]
004D34DB  |. E8 A818F3FF   call wrmain.00404D88
004D34E0  |. 8BC8      mov ecx,eax
004D34E2  |. BA 88354D00   mov edx,wrmain.004D3588 //双击提示信息后来到这里,向上看,在004D3380处下断
004D34E7  |. A1 D0684D00   mov eax,dword ptr ds:[4D68D0]
004D34EC  |. 8B00      mov eax,dword ptr ds:[eax]
004D34EE  |. E8 49E0F8FF   call wrmain.0046153C
004D34F3  |. 8B86 68030000  mov eax,dword ptr ds:[esi+368]

算法总结:注册码必须大于12位,每个注册码先和4异或然后乘以(12-所在位数)后循环累加,累加和除以(注册码第六位*13),能够整除即注册成功!
     注册信息不写入注册表,卸载软件后还要重新注册!
一个可用的注册码:1234512345126

说明:注册机不会写,这个注册码是一步一步手算出来的,呵呵,方法太笨了,再复杂点的估计就不行了,还要好好学习编程啊!还望各位大侠不要取笑哈!!!
------------------------------------------------------------------------------------
转载请保持文章完整,谢谢!

[ Last edited by sy888222 on 2005-8-25 at 07:46 PM ]
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2005-8-26 09:00:03 | 显示全部楼层
    这个过!
    建议楼主用现在比较流行的格式写破文。
    继续!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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