LMD控件的破解
LMD控件是DELPHI下功能非常强大的一组套件,包含从界面到系统等各方面对DELPHI自身控件的增强,使用起来非常方便。
LMD控件的下载地址:http://www.lmd.de

未注册的版本在脱离DELPHI的IDE环境运行时,会弹出警告对话框,并且程序无法运行。本文就简单说明一下怎么去掉这个弹窗对话框。
首先,我们在DELPHI的开发环境中,随便创建一个Win Form项目,在窗体上随便放一个LMD的控件。

在DELPHI 的IDE环境中,这个程序是可以运行的。但是我们编译此项目,然后退出DELPHI的IDE环境,运行刚才编译好后的程序,会出现下面的弹出警告窗。

点击OK后,程序退出,无法运行。
运行x64dbg,下载地址在这里:x64dbg
因为我们刚才编译的是win32的程序,所以我们需要运行x32dbg.exe。然后选择文件-打开,选择我们刚才编译完成的文件,然后应该出现如下图:

这时,我们点击一下左上角第四个图标,就是蓝色向右箭头的图标,写着“运行(R)”的那个,会出现下面的图:

注意,地址可能不一样,但是大致命令结构应该是如此的。DELPHI程序的特点就是
push ebp
mov ebp,esp
add esp, FFFFFFF0
mov eax, xxxxxxxx
到这里,我们在第一行push ebp那里,鼠标右键,选择“搜索”-“当前模块”-“字符串”。在弹出的窗口下部的搜索输入框内,输入前面那个弹窗上的文字,比如我输入的是warning!

于是我们发现找到了8处有这个字符串的,而且这8处都是LMD的警告信息,说明这个就是我们要找的。在第一条上鼠标双击,会跳到下面的界面:

这里需要重点说明一下,地址004C6CDF,也就是灰色条的位置,是调用警告字符串的位置。向上看,地址004C6CCC处,是一个判断,判断哪个值是不是2,如果是,那么在地址004C6CD0处就跳转了,这个跳转就正好跳过了警告提示的那一段。如果不是2,那么就会出现警告提示。所以,我们要做的,就是把JE跳转,改为JMP跳转。也就是不管那个值是不是2,都跳过警告提示。
正常的破解就是这个思路,把地址004C6CD0处的,je xxxx改为jmp xxxx。从16进制代码上,也就是把74改为EB。
但是现在我们还不能这样改,因为一共有8处,我们需要一个一个改,很麻烦。而且,即使这样改了,我们破解的也仅仅是我们编译好的那个程序,而不是破解的控件。那怎么办呢?
别急,我们先看一下这段程序代码:
004C6CCC | 807D FB 02 | cmp byte ptr ss:[ebp-5],2 |
004C6CD0 | 74 43 | je basvz.4C6D15 |
004C6CD2 | 8D45 FC | lea eax,dword ptr ss:[ebp-4] | [ebp-04]:BaseThreadInitThunk
然后我们回到刚才的字符串搜索那里,双击第二行。
004CE664 | 807D FB 02 | cmp byte ptr ss:[ebp-5],2 |
004CE668 | 74 43 | je basvz.4CE6AD |
004CE66A | 8D45 FC | lea eax,dword ptr ss:[ebp-4] | [ebp-04]:BaseThreadInitThunk
瞧见了吗?虽然地址不同,但是16进制的代码是一样的,807DFB0274438D45FC。
我们再把剩余的6个也点开,发现代码都是一样的。也就是说,在控件文件中查找这个16进制代码,找到后,把74改为EB就可以了。
这里需要注意的是,我们查找的16进制代码要遵循两个原则:
1、尽量不要太短,比如你只查找74 43,那么就会把所有的JE +43的跳转全部改掉,这样就可能把很多不该改的地方都改掉了。
2、尽量也要太长,只保障能找到你要找的最短代码即可,太长的话查找会很慢。
一般而言,三到四行指令即可。也就是你需要从上面8个点里,选择相同的指令,再逐渐缩短查找的长度。这个一般都是凭经验,摸索几次就大概知道了。
好了,现在我们已经知道,要找807DFB0274438D45FC,换成807DFB02EB438D45FC
但是,控件文件那么多,我们怎么知道要改哪个文件,哪个文件里有这个16进制代码?
那么就需要使用我们的一个神器,Swiss File Knife,下载地址在这里:Downloads (stahlworks.com)

然后我们写一个脚本,就是创建一个空白的文本文件,写入以下代码:
::script by board4all.biz kenlewis
: 32bit
sfk replace -dumpall -binary "/807DFB0274438D45FC/807DFB02EB438D45FC/" -dir "%cd%" -yes -file *.dcu
pause
这里,冒号开头的相当于是注释,方便阅读代码用的,你可以不写,也可以改成你自己的内容。
sfk replace -dumpall -binary "/807DFB0274438D45FC/807DFB02EB438D45FC/" -dir "%cd%" -yes -file *.dcu
这行就是要把807DFB0274438D45FC,换成807DFB02EB438D45FC,而且是包含子目录的,所有dcu的文件,不需要确认。
然后将这个脚本文件命名为lmd_crack.bat。和上面下载的sfk.exe文件一起复制到LMD控件的安装目录。
然后你双击lmd_crack.bat执行吧,就会出现和我这个界面一样的:

出现这个,就说明破解成功了。
然后,你再去DELPHI中,打开刚才那个工程文件,重新编译,你就发现程序可以脱离DELPHI的IDE环境运行了。你再用LMD写的程序,都不会再有警告弹窗了。说明LMD控件破解完成。
同样的道理,你也可以把64位版的LMD搞定。
这样的破解会存在风险:
1、可能会把不该改的地方也改掉,这个需要实际使用过程中发现哪里不对劲再进行调整。反正目前我还没发现有问题,所以暂时就这样用了;
2、可能会有其他的暗桩没被发现。的确,有网友跟我说还是会有弹窗,不过我还真没遇到过,如果谁发现了,请及时告诉我。
LMD控件的破解的更多相关文章
- DevExpress控件安装破解和汉化使用教程
这段时间因公司业务需要.net开发且需要用到DevExpress控件,我自己研究学习了一下,用的是visual studio(2013)和DevExpress(V14.1.4),VS2013的下载安装 ...
- C1控件的破解步骤
最近接触了一个系统中的打印和报表控件用到了C1控件,控件在以前就注册了的,可是在这次修改了系统后,系统却提示C1的控件没有注册. 怎么回事呢?我们这次并没有修改报表,而且也没有和C1控件相关的改动.怎 ...
- WEB网站类型系统中使用的OFFICE控件-破解Ntko-Office
2011-12-12 22:49| 发布者: Admin| 查看: 1399| 评论: 0|原作者: 风云OA 摘要: WEB下使用的OFFICE控件介绍,另提供一个原创破解 首先来个名词解释,O ...
- 常用控件产品官方文档/手册/API列表 c#控件文档API列表 asp.net控件产品技术文档中文版
.netCHARTING报表图表控件 文档帮助手册Ab3d.PowerToys 文档帮助手册Ab3d.Reader3ds 文档帮助手册ABViewer 文档帮助手册 (工程图纸文档管理系统)Activ ...
- DevExpress控件安装、汉化使用教程
前言 DevExpress是一个庞大的控件库,也很是好用(没用过,听说),但是要收费. 网上关于DevExpress的教程满天飞,我找了一下午也没找到正确的安装.简单实用教程,还是自己摸索吧. 自己动 ...
- Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例
看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...
- monkeyrunner之坐标或控件ID获取方法(六)
Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备 ...
- Delphi 控件大全
delphi 控件大全(确实很全) delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar ...
- delphi 控件大全(确实很全)
delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoC ...
- Qt开发环境中使用报表控件FastReport遇到的一些问题(一)
FastReport是一款优秀的报表控件,由俄罗斯开发,国内有代理商.Qt环境下可实现报表功能的还有一款叫NCReport,也是收费控件,比较来比较去还是觉得前者功能强点.网上讲解此控件在Qt中使用的 ...
随机推荐
- IDEA主题下载仓库地址
拿去,不多BB https://plugins.jetbrains.com/search?tags=Theme
- K8s进阶之多租户场景下的资源配额(ResourceQuota)
概述 ResourceQuota官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/ 在 Kubernetes( ...
- AI生成应用:图片批量重命名工具 - 自动化整理您的图片库
图片批量重命名工具 - 自动化整理您的图片库 GitHub项目地址: https://github.com/dependon/renameImage 项目介绍 这是一个基于Python开发的图形界面工 ...
- 堆排序算法Java实现
摘要 介绍堆排序的基本概念及其实现. 前言 排序大的分类可以分为两种:内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.这里讲的排序是内排序 ...
- (包含5w字提示词开源)手把手教你搭建开源提示词优化平台
前言:为什么要自己搭建? 各位技术同学们,还在为ChatGPT的网络限制而苦恼吗?还在担心敏感数据泄露给第三方吗?今天给大家带来一个超级实用的解决方案--自部署AI提示词优化平台! 想象一下: 数据完 ...
- C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
引言:线程安全与锁的基本概念 线程安全 在多线程编程中,保障共享资源的安全访问依赖于有效的线程同步机制.理解并处理好以下两个核心概念至关重要: 线程安全:指某个类.方法或数据结构能够在被多个线程同时访 ...
- 特殊恢复:最简单的BBED修改ASM的数据块的方法
我们的文章会在微信公众号Oracle恢复实录和博客网站同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳. 前天在客户现场遇 ...
- Java集合--LinkedList源码可视化
集合节点保存的都是对象的引用,而非具体值,文中案例仅仅为了方便实现原理的演示. 1. 底层数据结构 LinkedList 基于 双向链表 实现,内部通过 Node<E> 节点相互连接: p ...
- 【闲话 No.2】 长链剖分
壱雫空 本来打算省选游记推这首歌的,但是省选破大防了,最后他来到了这里.感觉拿这个当起床铃效果一定很好(关键这歌超好听的!). もしこの雨が上がっても 忘れずに歩いてくよ 最初のひとしずくに 顔上げた ...
- .NET 5在Docker中访问MSSQL报错
不知道你有没有在.NET Core/.NET 5的Docker访问MS SQL Server数据库,如果有,那么很有可能会遇到这个错误. 1 SSL版本错误 最近在公司用.NET 5重构部分业务服务, ...