3年前的小程序:破解需要delphi IDE 环境的vcl 控件

简介:

基本原理:有些vcl组件未注册的话,会显示没有注册的信息,但在设计期间不显示这些信息,表示该组件会检查delphi的ide 环境,解决办法就是让自己的exe带上ide的信息;

组件检查ide的办法无非就是使用api查找特定的delphi窗体类名称,如下是代码,建立几个看不见的窗体,名称和delphi ide的主要窗口一样;当然,这样做不见得100%破解检查ide环境的组件,有些组件可以遍历窗体的子件类,总之方法很多,要更好的办法,简单;用dede反编译delphi的主程序,把dfm资源搞出来,到自己工程里加入就行了。

以下是代码,见笑;
{********************* 破解需要delphi IDE 的vcl 控件*****
//请直接将该单元加入到工程中,并放到最初启动位置,无需调
//用方法,自动完成解密过程
//版权所有:随飞
//该版为 Pascal 代码版本
********************************************************}
unit vclAntIde;
interface
uses
Windows, Messages;

const
AppBuilder = 'TAppBuilder';
EditWindow = 'TEditWindow';
PropertyInspector = 'TPropertyInspector';
ObjectTreeView = 'TObjectTreeView';

implementation

function WindowProc(Window: Integer; AMessage, wParam, lParam: Integer):
Integer;
stdcall; export;
begin
WindowProc := 0;
case AMessage of
WM_DESTROY, WM_QUIT, WM_QUERYENDSESSION, WM_CLOSE:
begin
PostQuitMessage(0);
Exit;
end;
end;
WindowProc := DefWindowProc(Window, AMessage, wParam, lParam);
end;

function WinRegister(AppName: PAnsiChar): boolean;
var
WindowClass : TWndClass;
begin
WindowClass.Style := 2 or 1;
WindowClass.lpfnWndProc := @WindowProc;
WindowClass.cbClsExtra := 0;
WindowClass.cbWndExtra := 0;
WindowClass.hInstance := HInstance;
WindowClass.hIcon := LoadIcon(0, idi_Application);
WindowClass.hCursor := LoadCursor(0, idc_Arrow);
WindowClass.hbrBackground := HBrush(Color_Window);
WindowClass.lpszMenuName := nil;
WindowClass.lpszClassName := AppName;

Result := RegisterClass(WindowClass) <> 0;
end;

function WinCreate(AppName: PAnsiChar): HWnd;
var
hWindow : HWnd;
begin
hWindow := CreateWindow(AppName,
AppName,
WS_OVERLAPPEDWINDOW,
0,
0,
1,
1,
0,
0,
HInstance,
nil);
if hWindow <> 0 then
begin
// ShowWindow(hWindow, cmdShow);
// UpdateWindow(hWindow);
end;

Result := hWindow;
end;

var
AMessage : TMsg;
hWindow : HWnd;

begin
//HWND handle = GetSafeHwnd();

if GlobalFindAtom('@TaskAgent')=0 then
begin
GlobalAddAtom('@TaskAgent');
end;

if not WinRegister(AppBuilder) then
begin
MessageBox(0, '注册失败!', nil, mb_Ok);
Exit;
end;
if not WinRegister(EditWindow) then
begin
MessageBox(0, '注册失败!', nil, mb_Ok);
Exit;
end;
if not WinRegister(PropertyInspector) then
begin
MessageBox(0, '注册失败!', nil, mb_Ok);
Exit;
end;
if not WinRegister(ObjectTreeView) then
begin
MessageBox(0, '注册失败!', nil, mb_Ok);
Exit;
end;

hWindow := WinCreate(AppBuilder);
if hWindow = 0 then
begin
MessageBox(0, '创建失败', nil, mb_Ok);
Exit;
end;

hWindow := WinCreate(EditWindow);
if hWindow = 0 then
begin
MessageBox(0, '创建失败', nil, mb_Ok);
Exit;
end;
hWindow := WinCreate(PropertyInspector);
if hWindow = 0 then
begin
MessageBox(0, '创建失败', nil, mb_Ok);
Exit;
end;

hWindow := WinCreate(ObjectTreeView);
if hWindow = 0 then
begin
MessageBox(0, '创建失败', nil, mb_Ok);
Exit;
end;

end.



本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2005/10/24/260518.html,如需转载请自行联系原作者
相关文章
|
6月前
|
JSON 小程序 JavaScript
微信小程序之项目基本结构、页面的基础及宿主环境
微信小程序之项目基本结构、页面的基础及宿主环境
148 1
|
6月前
|
移动开发 小程序 IDE
【社区每周】小程序搜索直达能力全面开放;IDE3.0稳定版正式发布(2022年6月第二期)
【社区每周】小程序搜索直达能力全面开放;IDE3.0稳定版正式发布(2022年6月第二期)
52 0
|
6月前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
171 0
|
4月前
|
移动开发 小程序 JavaScript
跨端技术问题之小程序渠道环境的差异带来了什么样的挑战
跨端技术问题之小程序渠道环境的差异带来了什么样的挑战
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
293 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
6月前
|
Web App开发 小程序 Android开发
Appium微信小程序自动化环境准备
Appium微信小程序自动化环境准备
219 1
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的营商环境行动计划管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的营商环境行动计划管理系统附带文章和源代码部署视频讲解等
38 4
|
4月前
|
存储 小程序 数据库
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
71 0
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的环境保护生活App附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的环境保护生活App附带文章和源代码部署视频讲解等
34 0
|
6月前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
553 2