关于程序界面换肤的问题--解决

2024-03-31 13:08

本文主要是介绍关于程序界面换肤的问题--解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在忙着解决程序界面的问题,总觉得以前写的程序界面太难看了,于是就在网上找了一个换肤程序:SkinMagic Toolkit 2.21 Trial,很明显,它是试用版,用它生成的程序界面是好看了,可是在运行程序之前总有一个MessageBox框,提示你是未注册版。如下图:

 

于是决定破了它,可是它又只是个LIB文件,似乎只能打补丁了,进攻开始了....

先下断MessageBoxA,F9,程序被断下,就是这个未注册的提示框,那就先NOP吧(从00404ACF到00404AE8):
00404ACF       6A 40          push 40
00404AD1       68 6C435D00    push AppTest.005D436C              ;  ASCII "Unregistered"
00404AD6       68 AC425D00    push offset AppTest.strTrial       ;  ASCII "This application uses trial version of SkinMagic Toolkit.
You can register at hxxp://www.appspeed.com"
00404ADB       6A 00          push 0
00404ADD    .  C705 D0246000 >mov dword ptr ds:[6024D0],1        ; |
00404AE7       FF15 609B6100  call dword ptr ds:[<&USER32.Messag>;  USER32.MessageBoxA

F9,程序是启来了,但是却没有皮肤了,而且只要在开始不弹注册框的情况下,都会没有皮肤,有点汗!

在仔细地检查了一遍代码之后,才发现在00404ADD处有一个赋值全局变量的操作
00404ADD    .  C705 D0246000 >mov dword ptr ds:[6024D0],1        ; |
很有可能这就是个标志位,将才一时性急,将它也NOP掉了,于是,,嘿嘿(坏坏地笑了几下!)
将这段代码还原之成如下:
00404ACF       90             nop
00404AD0       90             nop
00404AD1       90             nop
00404AD2       90             nop
00404AD3       90             nop
00404AD4       90             nop
00404AD5       90             nop
00404AD6       90             nop
00404AD7       90             nop
00404AD8       90             nop
00404AD9       90             nop
00404ADA       90             nop
00404ADB       90             nop
00404ADC       90             nop
00404ADD    .  C705 D0246000 >mov dword ptr ds:[6024D0],1        ; |保留这里
00404AE7       90             nop
00404AE8       90             nop
00404AE9       90             nop
00404AEA       90             nop
00404AEB       90             nop
00404AEC       90             nop
再保存文件,问题真的解决了,,现在即没有NAG框了也可以正常换肤了,,哈哈,,游戏结束!如图:

这是一个模拟进程切换的程序,不过代码不全就不贴了

今晚犯了两个同样的错误,其中一个就是这个,浪费了我19.14159267分钟的时间,另外一个是一段JAVA的代码,果然是经验主义害我不浅啊!以后要多多注意了!


 

这篇关于关于程序界面换肤的问题--解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/864409

相关文章

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

mybatis-plus分页无效问题解决

《mybatis-plus分页无效问题解决》本文主要介绍了mybatis-plus分页无效问题解决,原因是配置分页插件的版本问题,旧版本和新版本的MyBatis-Plus需要不同的分页配置,感兴趣的可... 昨天在做一www.chinasem.cn个新项目使用myBATis-plus分页一直失败,后来经过多方

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Seata之分布式事务问题及解决方案

《Seata之分布式事务问题及解决方案》:本文主要介绍Seata之分布式事务问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Seata–分布式事务解决方案简介同类产品对比环境搭建1.微服务2.SQL3.seata-server4.微服务配置事务模式1

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod