猛狮润滑油官网:SkinMagic Toolkitn2.3 的使用与破解

来源:百度文库 编辑:偶看新闻 时间:2024/04/20 14:51:37
        微软是个很大度的公司,至少目前是这样的,我们用的操作系统98%都是Windows平台。可微软有时也很"小气",比如界面UI。但是,正是这种"小气",给许多编程爱好者提供了广阔的用武之地。
        和Borland公司的delphi开发工具相比,用微软的VC开发工具开发的界面的确算不上好看,但我们发现微软自己的软件界面又很漂亮。目前有不少软件爱好者开发出了多种换肤程序,其中SkinMagic就是其中的佼佼者。利用换肤程序就能开发出和winamp、金山词霸、QQ等软件那样的界面,根据需要随时选择更换皮肤。目前SkinMagic的商业使用需要注册,但作为软件开发人员自己自娱自乐,就需要发挥自己的聪明才智了。
        尽管已经推出了SkinMagic 2.4版,但个人认为还是SkinMagic 2.3版比较好用,而且稳定。SkinMagic Toolkit 2.3包含必需四个文件,分别是SkinMagicTrial.dll,SkinMagicTrial.lib,SkinMagicLib.h和***.smf(皮肤文件)。        一、首先谈谈如何在自己的VC程序中使用SkinMagic。
        1.在stdafx.h中添加:
          #include "SkinMagicLib.h"
          #pragma comment(lib,"SkinMagicTrial.lib")
          也可以在XXX.cpp文件中加入。效果是一样的。        2.在BOOL CXXApp::InitInstance()中函数一开始添加:
          VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
          VERIFY( 1 == LoadSkinFile("XXXX.smf"));          在定义对话框(CXXXDlg dlg;m_pMainWnd = &dlg;)之后显示对话框(int nResponse = dlg.DoModal();)之前添加: 
          VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
          VERIFY( 1 == SetDialogSkin( "Dialog" ) );
        这样就可以载入美化后的皮肤了。        二、谈谈如何破解其动态连接库SkinMagicTrial.dll
        如果不破解,从网上下载的SkinMagic Toolkit 2.3在运行时会首先弹出一个让你注册的警示框,但你点相关按钮后警示框消失,不影响程序的运行,但每次这样让人感觉不爽,于是参考一些资料将其破解。
        准备工具:1.反汇编工具W32dsm8.93。2.准备一个能够写十六进制的软件,比如UltraEdit或者WinHex。此处使用UltraEdit。
        破解步骤:
        1.首先打开W32dsm,反汇编(Disassembler)->打开文件(open file to Disassembler),打开SkinMagicTrial.dll。
        2.分析完之后,点击参考(Refs)->串式参考(String data References),找到“This application uses trial version”,双击。可以发现这块代码由四个连着的push组成,而后call了一个子程序,看说明是call USER32.MessageBoxA,这里就是弹出的那个未注册对话框。只要把这一段删了,就OK了。细看一下,我们可以看到有两块一样的代码。记住这两块代码的起始位置。从00065B1开始到00065DF前面为止。
        3.关闭W32dsm,要不然一会不能正常保存。然后用UE打开SkinMagicTrial.dll,Ctrl+G,找到00065B1和00065DF(注意一下弹出的对话框的提示,在前面加0x,这个不用我解释了吧),把之间的代码全都改为十六进制数90(90在汇编中是nop指令,代表空操作),保存,再运行VC程序,OK了,没有那个对话框了!!