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

最近在忙着解决程序界面的问题,总觉得以前写的程序界面太难看了,于是就在网上找了一个换肤程序: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的代码,果然是经验主义害我不浅啊!以后要多多注意了!


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值