Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|产品中心下载什么是软件架构
您现在的位置: 天极网 > 开发频道 > 理解软件保护技术之功能限制的程序
全文

理解软件保护技术之功能限制的程序

2007-01-08 06:00 作者: 出处: 看雪学院 责任编辑:方舟
  这种程序一般是DEMO版或菜单中部分选项是灰色。有些DEMO版本的部分功能里面根本就没有。而有些程序功能全有,只要注册后就正常了。

  你使用这些DEMO程序部分被禁止的功能时,会跳出提示框,说这是DEMO版等话,它们一般都是调用MessageBox[A] 或 DialogBox[A]等函数。你可在W32DASM反汇编它,一般能找到如下字符串:"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等,这些CALL会被相应的调用,可作为你破解的一指示器。

  另外,就是菜单中部分选项是灰色的不能用,一般它们是通过如下两种函数实现的:

  (1)EnableMenuItem

  允许、禁止或变灰指定的菜单条目

BOOL EnableMenuItem(
HMENU hMenu, // 菜单句柄
UINT uIDEnableItem, // 菜单ID,形式为:充许,禁止,或灰
UINT uEnable //菜单项目旗帜
);
Returns

  在ASM代码形式如下:

PUSH uEnable    //uEnable=0 则菜单选项允许
PUSH uIDEnableItem
PUSH hWnd
CALL [KERNEL32!EnableMenuItem]

  (2)EnableWindow

  允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)

BOOL EnableWindow(
HWND hWnd, // 窗口句柄
BOOL bEnable // 允许/禁止输入
);
Returns

  如窗口以前被禁止则返回一TRUE,否则返回 FALSE。

  查看关于 加密 解密 的全部文档

·VC入门专区 ·VC高级技术专区
·VC网络通讯编程 ·VC图像编程
·轻松玩转MFC文档视图架构编程
·深入浅出Win32多线程程序设计
·深入浅出Visual C++动态链接库编程


欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml