哈哈。。。。我是1122,不是1212! (1千字)
其实我在实际改的时候并不是如我上篇写的那样只改jz就行了!我只是为少打几个字才说了一下重点!其实你可以在下面这个Call dword ptr[edx+83c]进去,看看到为什么AL会等于1,最后我发出现出来对话框其实决定于我认为你能让注册窗口跳出来强行跳转的结果,没有挖出它的根!
* Reference to method TSavePictureDialog.Execute()
|
0049F8AD FF523C call dword ptr [edx+$3C]
0049F8B0 84C0 test al, al
0049F8B2 744A jz 0049F8FE 《《《这里就去购买了,所以不能去!
0049F8B4 8D55F8 lea edx, [ebp-$08]
其实你可以在上面这个Call dword ptr[edx+83c]进去,看看到为什么AL会等于1,最后我发出现出来对话框其实决定于:
0049F814 80BBA407000000 cmp byte ptr [ebx+$07A4], $00
你也可以锁定ebx+07a4,看它什么时候变成1。
[ebx+$07a4],[ebx+$07a5]两个地址处的内容非常重要,你跟进了上面我说的那个CALL!
[ebx+07a4]决定是否功能限制,如是为“1”,它会把[ebx+07a5]置0,否则以上两个值就相反.
而[ebx+07a5]决定是否出来填写注册码的对话框,所以如果你能让[ebx+07a4]=1,[ebx+07a5]=0应该就是注册版了!
最后我的改法如下:
1.找:0F8C65010000E871F1FFFF
改:909090909090----------
2.找:0F9C4F010000C645FF01
改:909090909090--------
3.找:7D04C645FF008B45F0
改:EB----------------
它们的具体offset我没记下来!你应该可以找得到,看看这几个地方的代码你就会明白了。
以上是我的观点,敬请指正!呵呵。。。。。。
热烈欢迎继续讨论!
