免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3331 | 回复: 0
打印 上一主题 下一主题

破解Winamp V2.05(zz) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-24 09:14 |只看该作者 |倒序浏览
软件破解应该也是这个板的一部分吧!hoho如果不是斑竹就删了吧!\r\n\r\n破解Winamp V2.05(适合初学者)\r\n\r\n\r\n  Winamp是大家都非常熟悉的著名的MP3播放器,它是个共享软件,早期的版本需要注册,如果不注册也不会影响功能的正常使用。讲解Winamp破解的原因是想向大家介绍正确设置断点的重要性,虽然很多时候我们可以使用万能断点 bpx hmemcpy 来破解软件,但是并不是每次都能奏效,遇到这样的情况就不得不选择合适的断点了。Winamp的注册码保护相对比较简单,但是对于初学者来说,如何能找到正确的断点直接关系着是否能够快速破解它。\r\n\r\n程序名 :Winamp\r\n版本   :V2.05\r\n大小   :518KB\r\n运行平台:Windows 95/98/NT\r\n保护方式:注册码\r\n破解方式:注册码破解\r\n破解难度:容易\r\n程序下载:winamp205.exe\r\n\r\n作者   :ddcrack (2001/06/07)\r\n笨冬瓜 :ddcrack.yeah.net\r\n\r\n破解步骤:\r\n\r\n1. 用softice载入windows(通过CTRL+D来检查softice是否已经准备好,按F5退出softice);\r\n\r\n2. 运行winamp,选择“Winamp...”下的“Shareware”,点击“Enter Registration info”;\r\n\r\n3. 在“Name:”中输入:ddcrack(随意),“Reg#:”中输入:12345678(随意);\r\n\r\n4. 用CTRL+D呼出softice,下万能断点:bpx hmemcpy,按F5返回到winamp;\r\n\r\n5. 在winamp中选择“OK”,等一等?是不是发现一个问题:“OK”按钮是无效的,不能被点击,也就是说程序已经知道了注册码是错误的。如此看来在我们输入注册码的过程中winamp已经在判断输入的注册码是否正确了,所以当我们输完注册码它已经知道注册码是错误的,因此就禁止了“OK”按钮;\r\n\r\n6. 既然winamp是在我们输入注册码的过程中同时判断其正确性的,那么我们就不能像通常那样先输完注册码再设置断点,而是要反过来;\r\n\r\n7. 先用 BD * 禁止刚才设置的断点(如果不这样你的任何举动都会被softice拦截下来的,不信就试一试^_^);\r\n\r\n8. 删掉刚才输入的注册码“12345678”,接着按 CTRL+D 切换到softice,用 BE * 恢复刚才暂停的断点 bpx hmemcpy 。因为winamp会在我们输入任何注册码时判断其正确性,那么它必定要读取输入的信息,这样的话设置断点 bpx hmemcpy 一定能监视它的一举一动;\r\n\r\n9. 在“Reg#:”中输入:1 ,winamp马上就会被softice拦截下来;\r\n\r\n10. 用 BD * 暂停断点,然后再按F12返回到winamp的领空——问题又来了:当你按F12还没有返回到winamp的领空时程序已经判断完毕,回到winamp的控制中了。为什么呢?肯定是断点 bpx hmemcpy 设置有问题。俗话说山不转水转,既然 bpx hmemcpy 不行我们就干脆换另外的断点。winamp的注册界面是个对话框,所以我们干脆用 bpx getdlgitemtexta 试一下;\r\n\r\n11. 重新进入winamp的注册选项,然后按 CTRL+D 切换到softice中,下断点 bpx getdlgitemtexta;\r\n\r\n12. 在“Reg#:”中输入:1,哈哈。。。winamp马上就被softice拦截下来;\r\n\r\n13. 用 BD * 禁止刚才设置过的断点;\r\n\r\n14. 按F12键1次返回到winamp的领空:\r\n。。。\r\n0167:0041E6CF CALL [USER32!GetDlgItemTextA]   <-- 获取对话框文本\r\n0167:0041E6D5 PUSH 00               <-- 返回winamp的领空时程序停在这里\r\n0167:0041E6D7 PUSH 00\r\n0167:0041E6D9 PUSH 0000048C\r\n0167:0041E6DE PUSH EBX\r\n0167:0041E6DF CALL [USER32!GetDlgItemInt]    <-- 获取对话框文本的整数值\r\n0167:0041E6E5 MOV ESI,EAX            <-- 返回值EAX中是输入注册码“1”的16进制整数值1\r\n0167:0041E6E7 LEA EAX,[ESP+10]\r\n0167:0041E6EB PUSH EAX              <-- EAX指向输入的名字“ddcrack”\r\n0167:0041E6EC CALL 004261E0\r\n0167:0041E6F1 ADD ESP,04\r\n0167:0041E6F4 CMP EAX,ESI            <-- ESI=00000001,EAX=0333F395\r\n0167:0041E6F6 JNZ 0041E703\r\n。。。\r\n\r\n15. 从上面的程序看出winamp通过API函数GetDlgItemTextA取得输入的文本信息,然后利用API函数GetDlgItemInt得到输入注册码“1”的16进制整数值1并将结果返回EAX中。按F10走到0167:0041E6EB PUSH EAX时用 D EAX 可以看到EAX指向输入的名字“ddcrack”,继续跟踪你会发现下面的CALL 004261E0利用“ddcrack”计算得到16进制值0333F395并和我们输入注册码“1”的16进制值相比较,用 ?0333F395 可知其10进制值是53736341,因为不等所以那个“OK”键始终不能点击喽。\r\n\r\n16. 验证结果:重新进入winamp的注册选项,在“Name:”中输入:ddcrack,“Reg#:”中输入:53736341,现在“OK”键是不是已经可用了^_^!点击“OK”后winamp显示注册成功的消息,搞定了^_^!\r\n\r\n\r\n以上在w2k环境+softice通过。\r\n题外话:bpx hmemcpy 断点在98下有效;bpx getdlgitemtexta断点在2k下有效。hohoho
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP