= 70、Advanced Dialer 1.1 for Win95 =================================================== Advanced Dialer =============== Version 1.1 adialer1.zip ( 777,353 bytes ) 1.选择 "Reg.Info" Button --> Registration key... 在 Registration Name: 中输入 BRUCE Registration Key : 中输入 11223344 2.使用 ctrl-d 进入 winice 中 设定中断点 bpx hmemcpy 然後按下 ctrl-d 回到注册画面中 3.按下 "OK" Button winice 立即拦截到中断 4.取消中断点 bd * 5.每按一次 F12 ,再按一次 F4 看看是否出现注册失败的讯息 在按下第 13 次 F12 後才出现错误讯息 6.重复步骤 1-4 . 在取消中断点後,先按 12 次 F12 然後改按 F10 在 cs:0048986B CALL 00464940 执行後,出现"未注册"讯息 再一次检视 CALL 00464940 之前的程式 cs:00489852 POP EAX cs:00489853 CALL 00403E30 cs:00489858 JZ 00489872 ... ... ... ... cs:0048986B CALL 00464940 <-- 执行後出现"未注册"讯息 7.重复步骤 1-6 . 执行到 cs:00489858 JZ 00489872 时 令 rfl +Z ,即设定 ZF=1 ,执行後则不会显示"未注册"讯息 8.回到应用程式的画面 再次选择 "Reg.Info" Button --> Registration key... 发现 Registration Name 和 Registration Key 的内容皆为前一次输入的资料 如果再按 "OK" Button ,则又出现"未注册"的讯息 关闭程式後,再启动一次,又是和原始的状态一样 - 未注册 9.Trace into CALL 00464940 (按 F8) 重复按 F10 在 cs:004649B6 ~ cs:00464A24 有一??圈(EBX递增,ESI递减) 当??圈结束,继续往下执行到 cs:00464A24 CALL 00403CC4 执行後就出现"未注册"讯息 如果在 cs:00464A0D JNE 004649B6 令 rfl +Z ,即设定 ZF=1 ,提前结束??圈 则执行到 CALL 00403CC4 时,"未注册"讯息将不完全 ==> 推论 : 上述??圈系在 copy 错误讯息. CALL 00464940 仅在显示"未注册"讯息,决定往前 trace. 10.cs:0048984F MOV EDX,[EBP-08] cs:00489852 POP EAX cs:00489853 CALL 00403E30 ... ... ... ... 结果发现 dw edx 正好是之前输入的 Registration Key dw eax 有一串相同长度的资料 "274A5F00" 猜想可能是正确的 Registration Key 11.重新输入 Registration Name : BRUCE Registration Key : 274A5F00 果然注册成功. 经测试注册码皆为 8 位元. 12.字串"Reg_NameBRUCEReg_Key274A5F00"被写入c:\windows\profiles\bruce\User.dat中 13.叁考资料 : From: Henry Pan Subject: [HC] Advance Dialer 32-Bit 1.1 破解 这个程式非常好追, 就不写出详细过程了. 在 cs:00489852 POP EAX 这附近 D EAX , 正确注册码就出来了, 所输入的码就在其後 16 bytes 注册码 Name: PANK Key: 97430800 PS. 这程式不错, 敝人认为比 NetBar, RAS+ 等好用.