• 标 题:初学者的东西:BUPack Package控件注册提示窗口消除 (1千字)
  • 作 者:Passion
  • 时 间:2000-12-26 21:02:58
  • 链 接:http://bbs.pediy.com

BUPack Package控件注册提示窗口消除法。

BUYPIN系列套装控件BUPack Package是Delphi下的需要莫名其妙地注册的优秀控件组之一,凡是使用了它的程序在运行时都会检测是否是设计期还是运行期,方法就是通过FindWindowA函数查找Delphi中的对象观察器窗口的类名"TPropertyInspector",根据返回的值判断是否存在此窗口,进而判断是否处于设计环境下。如果不是,则弹出提示注册对话框。

程序中对应的代码如下:

:00473004 6A00                    push 00000000
:00473006 6818304700              push 00473018

        ;这里00473018处是字符串"TPropertyInspector"的地址。

:0047300B E85C36F9FF              Call 0040666C

     ;调用Findwindow函数。
    
:00473010 85C0                    test eax, eax
:00473012 0F95C0                  setne al

     ;如果EAX为0则将AL设置为0。如EAX非0则表示找到了"TPropertyInspector"窗口,
     接下来的SETNE AL会使AL变为1,表示处于设计期,不出现注册提示框。
    
:00473015 C3                      ret

因此好办,将setne al改成mov al,1就是了。不过后边还得加一个NOP

总结:
查找并修改以下十六进制字符串便可消除提示框:
85 C0 0F 95 C0 C3
-->
.. .. B0 01 90 ..

——当然,解除BUPack Package控件提示框的方法还有很多,但这个算比较保险的,只需要修改一条指令,而且似乎还比较通用,不像其他修改特定地址的CALL指令或JNZ指令的方法,倘若换一个程序,没准就失效了。

————————————————————————

咱是Crack的初学者,toye兄的教学文章让我入了门,在此表示感谢。另外问一句,整理后的教学什么时候提供CHM格式的下载啊?许多文章我没下载完整,想来个“打包”。