南强小屋 Design By 杰米
〇.〇 最前面的口嗨
很久很久以前,有两种主流的编程语言,一种叫BASIC,一种叫Pascal,前者发展成了VB,后者则发展成了Delphi。
VB很快被C++打败,而Delphi还坚挺了一会,直到其主设被微软挖走整C#。
曾经有一种说法,勤奋的程序员用C,聪明的程序员用Delphi,大概是说C更全能,Delphi更智能(杰出?卓越?)。
笔者曾经也想学学Delphi,想看看聪明人的世界,奈何等笔者工作生活稳定(知道自己没啥上升空间)后,人们说聪明人都用Lisp编程,于是,笔者只能呵呵。
由于笔者从未用Delphi写过任何程序,对其基本没有了解,文中软件也是勉强算破解的第一个Delphi软件,各方面来说笔者都是个新手,自然谈不上水平,大佬看见请随意指教。
〇.一 背景
笔者的媳妇平时会经常翻阅字典,看着支离破碎的第12版新华字典,笔者心疼3秒之后,决定给她找个电脑上能用的字典软件,于是找到了这款软件。
软件未发现使用时间和次数的限制,但对功能做了限制,为了笔者的媳妇使用更方便(虽然笔者媳妇说笔者只是闲出屁了),笔者决定破解下。
论坛中有前辈发过软件2009版破解,2014版暴破,然而笔者愚钝,窃以为2014版暴破那篇文章没有实用意义,而且新华字典第12版是2020年出版的,使用最新2020版软件比较放心点。
笔者这篇所谓的破解完全没有注册码之类的事情,仅仅是启用一些功能,而且破解的在线辞海功能有瑕疵,笔者认为能称为破解,如有小伙伴不认同也可以来交流,你们的回复我都会阅读,但能力所限,未必会回复。
如涉及重复发帖或侵权,劳烦管理删此贴。
一、准备工作
软件下载:软件官网
使用工具:IDR、X32DBG、Resource Hacker
二、软件基础了解
1.运行软件,软件没有帮助文档,笔者发现的功能限制大体有三种:
(1)搜索功能无法使用,包括字典、英汉、成语等等各处的搜索功能;
(2)新华词典功能无法使用;
(3)在线辞海功能无法使用。
新手破解Delphi编写某字典软件
2.Die查壳,无壳,Delphi编写,笔者这是本区第三贴了,就不上图了。这里说一下,软件之前版本是有ASPack壳的,但是脱壳机秒脱,这版本的软件或许是不在乎那2-3M空间了,是真的没壳。
3.使用IDR(论坛也有不少用DeDe的,不过笔者的虚拟机跑DeDe老报错,主系统11倒是不报错,但破解这种活总是虚拟机有安全感,而且相比DeDe,笔者也确实推荐新人使用IDR)反编译,软件主窗体是Form1,其中大多数功能是由面板实现,打开窗体,双击组件对应一下很容易得知,具体为:
flatpanel4:字典,ffbtn4Click
flatpanel14:词典,按钮为ffbtn5,但ffbtn5Click命令非该功能
flatpanel8:英汉,ffbtn8Click
flatpanel12:名句,ffbtn9Click
flatpanel2:名人名言,ffbtn12Click
flatpanel7:歇后语,ffbtn7Click
flatpanel1:成语,ffbtn6Click
flatpanel16:关于
以上大多按钮通过控制相应面板是否可见(即需要那个面板可见,其余面板不可见)来实现相应功能,ffbtn5Click则仅仅是弹出对话框,无相应功能。
新手破解Delphi编写某字典软件
4.注册窗体是Form8,确认注册按钮按下后仅仅弹出对话框。这里笔者一开始以为是笔者对Delphi的结构理解不深刻,在调用按钮点击事件之前就进行了判断,毕竟笔者的汇编水平仅止于15年前大学本科必修的汇编基础,这些语句三行五行能看懂,三五十行就看不懂了,直到调试了一轮后根本没发现读取文本框数据,才认识到自己和大佬的差距。不过笔者不是太轴的人,也没有非要看到注册成功的执念,就没在注册码这下功夫。另外题外话两句,2014版这里也是个假按钮,而运行时的判断标准是data文件夹是否有xho.db这个文件,没这个文件就显示已注册,这个当然也有点坑,只能说聪明的程序员用Delphi未必完全正确,但用Delphi的程序员都是有点厉害的。
新手破解Delphi编写某字典软件
软件基础了解告一段落,当然还有一些需要看的,也有一些可以看的,要用到的之后会有说明,和我一样的新手这里多翻翻掌握下方法就好。
三、软件功能实现
1.搜索功能
IDR中查阅搜索按钮按下后事件(有很多,这里随便贴一个)的反汇编代码,通过将注册窗体Form8里面确认注册那个按钮的标题(Caption)文字与“本软件已注册”对比,如不等就弹对话框,相等就实现功能。
新手破解Delphi编写某字典软件
注册窗体Form8里面确认注册那个按钮的标题在创建窗体时进行设置,直接设置成“本软件未注册”。
新手破解Delphi编写某字典软件
所以要实现搜索功能只需让创建窗体时将按钮标题设置成“本软件已注册”即可,这里将5855B0处的字符串设为“本软件已注册”,或者将58559B这里的5855B0改为58C980都行。
新手破解Delphi编写某字典软件
搜索功能实现
2.新华词典功能
如第二章第三节,ffbtn5Click仅仅是弹出对话框,笔者在软件中未发现直接实现词典功能的命令,检查下上下文,58C0C8至58C0D2为ffbtn5Click事件,其上下都有代码,这么短的区间,哪怕引用其他按钮事件后,仅设置两个面板的是否可见,也写不下,所以笔者这里用下注入,先检查下软件的代码区间,入口1000,大小18D400,也就是代码最多可以写到58E399,检查下代码段末尾处,看到有空余空间。
新手破解Delphi编写某字典软件
将58C0C8处做个大跳转,跳到空余空间处,顺手把之后的调用干掉。
新手破解Delphi编写某字典软件
在空余空间写入代码,就是控制flatpanel14面板可见,其余面板不可见。
新手破解Delphi编写某字典软件
新华词典功能实现
3.在线辞海功能
IDR中翻Form1窗体,发现除了显示的按钮FlatButton1之外,还有个隐藏的按钮ffbtn11也是用来控制在线辞海功能,此外还有Button4也疑似用于辞海功能,所以这里将FlatButton1Click事件替换下就好。这里笔者测试Button4Click事件没反应,ffbtn11Click事件按下后功能实现也有问题,会显示乱码,但这确实是软件本身的功能,或许是这块功能没做好,也或许是笔者水平不足,总之有瑕疵。
事件替换方法(取巧):
Resource Hacker中打开程序文件,双击打开Form1,Ctrl+F查找FlatButton1,将其事件OnClick设置为ffbtn11Click,编译,保存即可。
新手破解Delphi编写某字典软件
强迫症患者也可以修改下按钮的字体颜色,将Font.Color设为16384。
新手破解Delphi编写某字典软件
本次新手破解完成。
四、后记
Delphi的程序反编译后感觉像夺命连环Call,以笔者的水平看起来是非常费劲的,但笔者认为新手还是要见见世面,放一篇Delphi的软件是有必要的,虽然这个属于取巧破解。其实笔者也有尝试过汉语大词典,不过那个太欢乐了,脱个壳给笔者虚拟机关机5-6次,动态调试调注册那块就死机,注册按钮按下的事件反编译出好像三百行,简直可以成为笔者一个月的快乐源泉,笔者决定升升级再来欢乐,就放了这个。
上一篇时笔者以为快要去上班了,结果现在还没去,但这个可能真就是本年度最后一次本版的玩耍了,就是这样。
标签:
新手破解Delphi编写某字典软件

南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米

评论“新手破解Delphi编写某字典软件”

暂无新手破解Delphi编写某字典软件的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?