欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

delph<SPAN CLASS="pediy">i控件破解篇----ThemeEngine 2.9.1 (1千字)

delph<SPAN CLASS="pediy">i控件破解篇----ThemeEngine 2.9.1 (1千字)

第一次尝试破解delphi控件,走了些弯路,
                现将一些心得告诉大家

        delphi控件破解篇----ThemeEngine 2.9.1
主页;http://www.ksdev.com
介绍:一个delphi控件,可以使delphi编译的程序具windows XP界面风格
限制:trial版本生成的delphi程序有NAG窗;delphi启动时也有NAG窗
工具:delphi,wdasm,IDA,dcucu,ultraedit
说明:以下操作对于ThemeEngine 2.9.1 for delphi5版本

步骤1
    bpl文件在delphi中相当于dll文件。delphi启动时也用loadlibrarya载入
    delphi启动时出现NAG窗与bpl文件有关
    用IDA反编译lib.D5目录下文件ThemeEngine5.bpl,利用search功能,查找NAG窗中的提示语句,以定位
public @Ksthemeforms@initialization$qqrv
|
CODE:0040C058      sub    ds:dword_445108, 1
CODE:0040C05F      jnb    short locret_40C066                //jnb => jmp
CODE:0040C061      call    @Ksthemeversion@ShowVersion2$qqrv  //NAG窗

步骤2
    dcu、pas等文件保存了事件代码。delphi编译时将调用的dcu、pas等文件编译后生成程序。因此编译后程序出现NAG窗应以dcu文件为目标(why? 商业软件没有提供pas源代码)。
    用ultraedit打开lib.D5目录下额dcu文件,还是利用NAG窗提示寻找;一番分析后明确NAG窗来自于KsThemeVersion.dcu。
    用DCUCU反编译
procedure ShowVersion;
begin
000: ?    |55                  | PUSH EBP
001:        |8B EC              | MOV EBP,ESP
...
030: 笜...  |B8 98 00 00 00      | MOV EAX,ShowVersion{0x20}+$00000098
...
046: ?...  |E8 00 00 00 00      | CALL MessageDlg{0x10} //NAG
为了阻止NAG窗出现,
将    000: ?    |55                  | PUSH EBP
变为  000: ?    |C3                  | RET NEAR
同样,对于
procedure ShowVersion2;
begin
000: ?    |55                  | PUSH EBP
也是变为
000: ?    |C3                  | RET NEAR
上述修改用ultraedit完成后保存。
再用delphi编译、测试一下,OK!

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功