首先我们做一个假的LyricsShow.lcs,sn就填78787878(每次都填这个,习惯了)启动
winamp,加载ls,然后打开winhex,用它的内存编辑功能在ls的main内存里寻找78787878,
记下地址是112e8e0。下一步要做的是在ls的地盘拦截对它的读取,这难不倒我:)。右击
ls主窗口点查看信息,在s-ice里下bpx lockmytask,然后点确定,按20次f12进入ls领空
,下bpm 112e8e0,好的unload ls and load it again,被拦到了,按几次f5发现它把7
8787878放到了112e8e0,成功了20%呵呵......,下面的我简单说了,运算太复杂了没看懂
:(,它把你的user,email,computername,sn.id做一系列的变态运算然后把结果放到固定
的位置等待判我的死刑-_-。
我经过若干minutes的努力找到了关键的判断点
47093d mov eax,[47a0c8] //把已换成4位16进值数的注册码地址->eax
47093d mov eax,[eax] //把假sn 78787878->eax
470944 xor eax,[ebp-40] //拿它与之前算好的数做异或,结果->eax
470947 xor eax,[ebp-30] //继续与之前算好的数做异或,结果->eax
47094a mov edx,[47a0c8] //把结果覆盖到原来存78787878的地址里
470950 mov [edx],eax
470952 mov eax,[47a0c8]
470957 mov eax,[eax] //把刚才的结果放到edx
470959 mov edx,[47a0f0]
47095f xor eax [edx] //拿它与edx地址的数做异或,结果->eax
470961 mov edx,[47a508]
470967 mov [edx],eax //把结果->edx所指向的地址里等待判断
.
.
.
46f929 mov eax,[47a508]
46f92e mov eax,[eax]
46f930 mov edx,[47a2f4]
46f936 cmp eax,[edx] //最后的比较了
46f938 mov eax,[47a134]
46f93d setz byte ptr [eax] //置1就成功了
46f940 mov eax,[47a134]
46f945 cmp byte ptr [eax],00 //是1么?
46f948 jz 46f986 //不是就去死吧:(
完活
core的都是神仙么,写出了这个玩艺的注册机,我倒~~~~~~~~~~~~
太佩服它们了^^
一个有效的key license
LyricsShow.lcs
[License]
User=zombieys
Email=zombieys@263.net
ComputerName=ZOMBIEYS
WaveDeviceName=OPL3-SA Playback (v3.3)
SN=78787878
ID=ION
- 标 题:注册你的LyricsShow! for Winamp v1.2(zombieys) (1千字)
- 作 者:jsjyt
- 时 间:2001-6-2 21:19:27
- 链 接:http://bbs.pediy.com