• 标 题:asmstudio5.0完全完美破解版的诞生过程(和初学者共同学习!) (1千字)
  • 作 者:hsf
  • 时 间:2001-5-2 5:01:00
  • 链 接:http://bbs.pediy.com

这是个比较容易破解的软件。许多人都这样说。我这里并不是要说如何暴破它,我不知道如何作注册机,所以呢,想投机取巧,利用他本身来获得注册码,当然这是在暴破的基础上。也就是说,把它改成一个注册机。呵呵呵,我想,这又是一种好的笨办法啦。
step1. 暴破
:bpx hmemcpy
ctrl+N
press "OK"
bd
pmodule
F12 两次,走到415a22 有cmp ecx,[exa+08]
紧接着下一句是跳转语句。跳则over,不跳则OK!
不让它跳,当然是将这条语句改为909090909090了。暴破完毕!
当然,你把cmp 改成mov 也行,而且更简单。不让他比较,而是
让他把正确的注册码赋值给ecx,呵呵呵。
========
可是这样有个后遗症,因为它会将不正确的注册码写入注册表,
在重新运行软件时,一检查,是错的,又会把它变成未注册的试用版。怎么办???
step 2 作注册机
既然这样,让它把正确的注册码写入注册表就行了。
刚才不是有6个字节都是nop指令吗?太浪费了,让他作点有益的事情吧经过跟踪,发现后面有一条语句为mov edx,[esp+01f0]
此句和前面ecx的赋值语句(mov ecx,[esi+01f0])相似,而这里面
(esi+01f0)放的就是我们输入的错误的注册码,只不过是16进制的而已。那好,我们把这个单元放入正确的注册码。
把909090909090改为898EF0010000就可以了。
实践是检验真理的唯一标准。试试看,重新运行软件后,它仍是
正式版!而且你不放心的话,可以用regedit打开注册表来看,是不
是多了一个regcode的键名?键值就是真正的注册码啦。
这样,一个自动注册的“注册机”就诞生了!
OK!大功告成,打个Kiss!
By The Way,有人可能会问,你怎么知道机器码要改成898EF001000000?
试嘛。 先用
:a 0167:415a28
0167:415a28 mov [esi+01f0],ecx
此时代码区肯定不是象上面的语句一样,而是
mov [esi+DOSMSG_BackFill_Allowed],ecx

:d 0167:415a28 可以看到此条语句的代码为898e00000000
不合要求。怎么办?在代码区不能实现,就直接在内存数据区改嘛
把鼠标移到内存数据区,把898e后面两个字节改为0f10就行了。
碰到不知道语句的代码是什么时,都可以用这个方法来试一下。
呵呵呵,这又是一种好的笨办法啦。
