Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497804
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:34:47

下载本文示例代码
  Nag的本义是烦人的意思。Nag窗口是软件设计者用来不时提醒用户购买正式版本的窗口。软件设计者可能认为当用户受不了试用版中的这些烦人的窗口时就会考虑购买正式版本。它可能会在程序启动或退出时弹出来,或者在软件运行的某个时刻随机或定时地弹出来,确实比较烦人。   去除警告窗口常用的三种方法是:修改程序的资源、静态分析,动态分析。  去除警告窗口用资源修改工具是个不错的方法,可以将可执行文件中的警告窗口的属性改成透明、不可见,这样就变相去除了警告窗口。  如果是动态跟踪调试,只需找到创建此窗口的代码,跳过即可。常用的显示窗口的函数有MessageBoxA、MessageBoxExA、MessageBeep 、 DialogBoxParamA 、ShowWindow、CreateWindowExA等。然而某些警告窗口用这些断点不管用,就可试试利用消息设断点,一般都应能拦截下来。   例:利用消息断点拦截警告窗口:   切换到SOFTICE下命令: HWND   应看到如下的类似信息: Window-Handle hQueue SZ QOwner Class-Name Window-Procedure 0080 (0) 2057 32 MSGSVR32 #32711 (switch_win) 17EF:00004B6E 0084 (1) 2057 32 EXPLORER shell_trayWnd 1487:0000016C ... ... ... ... ... ...   在这些列表中查找相关应用程序的窗口句柄。如果NAG窗口上有OK按钮,在class name查找“button”。如果NAG窗口上什么都没有,那可试验找出正确的句柄。句柄列表可能非常长,但通常NAG窗口的句柄一般在列表的前面。   注:在这里推荐用SMU Winspector工具协助破解NAG.它能显示你所需要的信息:Window-Handle, Window-Class Name, Window-Text, Parent Window-Handle, Parent-Window Class Name, Parent Window-Text, Module ...   一但找到NAG窗口的句柄,应用BMSG命令在Windows的消息上下断点。现在假设NAG窗口有OK按钮,你己找到正确的句柄(handle),这时下命令:  BMSG 0084 WM_DESTROY  0084是NAG窗口的句柄(handle)。这条命令是NAG窗口从屏幕上消失时,SoftICE将中断。此时将深入到一些不认识的API函数,可按F12返回程序。需要指出,跟踪的目的是发现NAG窗口在何处初始化(在返回的CALL用设断)。NAG窗口大多用Created/Destroyed类似的CALL,因此如发现这些,就可按需要跟踪下去。  查看关于 加密 解密 的全部文档 ·VC入门专区 ·VC高级技术专区 E夏Java轻松行 JBuilder 2005全接触 从老虎到野马 Java 6.0新功能观察 ·VC网络通讯编程 ·VC图像编程 ·轻松玩转MFC文档视图架构编程 ·深入浅出Win32多线程程序设计 ·深入浅出Visual C 动态链接库编程   Nag的本义是烦人的意思。Nag窗口是软件设计者用来不时提醒用户购买正式版本的窗口。软件设计者可能认为当用户受不了试用版中的这些烦人的窗口时就会考虑购买正式版本。它可能会在程序启动或退出时弹出来,或者在软件运行的某个时刻随机或定时地弹出来,确实比较烦人。   去除警告窗口常用的三种方法是:修改程序的资源、静态分析,动态分析。  去除警告窗口用资源修改工具是个不错的方法,可以将可执行文件中的警告窗口的属性改成透明、不可见,这样就变相去除了警告窗口。  如果是动态跟踪调试,只需找到创建此窗口的代码,跳过即可。常用的显示窗口的函数有MessageBoxA、MessageBoxExA、MessageBeep 、 DialogBoxParamA 、ShowWindow、CreateWindowExA等。然而某些警告窗口用这些断点不管用,就可试试利用消息设断点,一般都应能拦截下来。   例:利用消息断点拦截警告窗口:   切换到SOFTICE下命令: HWND   应看到如下的类似信息: Window-Handle hQueue SZ QOwner Class-Name Window-Procedure 0080 (0) 2057 32 MSGSVR32 #32711 (switch_win) 17EF:00004B6E 0084 (1) 2057 32 EXPLORER shell_trayWnd 1487:0000016C ... ... ... ... ... ...   在这些列表中查找相关应用程序的窗口句柄。如果NAG窗口上有OK按钮,在class name查找“button”。如果NAG窗口上什么都没有,那可试验找出正确的句柄。句柄列表可能非常长,但通常NAG窗口的句柄一般在列表的前面。   注:在这里推荐用SMU Winspector工具协助破解NAG.它能显示你所需要的信息:Window-Handle, Window-Class Name, Window-Text, Parent Window-Handle, Parent-Window Class Name, Parent Window-Text, Module ...   一但找到NAG窗口的句柄,应用BMSG命令在Windows的消息上下断点。现在假设NAG窗口有OK按钮,你己找到正确的句柄(handle),这时下命令:  BMSG 0084 WM_DESTROY  0084是NAG窗口的句柄(handle)。这条命令是NAG窗口从屏幕上消失时,SoftICE将中断。此时将深入到一些不认识的API函数,可按F12返回程序。需要指出,跟踪的目的是发现NAG窗口在何处初始化(在返回的CALL用设断)。NAG窗口大多用Created/Destroyed类似的CALL,因此如发现这些,就可按需要跟踪下去。  查看关于 加密 解密 的全部文档 ·VC入门专区 ·VC高级技术专区 E夏Java轻松行 JBuilder 2005全接触 从老虎到野马 Java 6.0新功能观察 ·VC网络通讯编程 ·VC图像编程 ·轻松玩转MFC文档视图架构编程 ·深入浅出Win32多线程程序设计 ·深入浅出Visual C 动态链接库编程 下载本文示例代码


理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口理解软件保护技术之警告(NAG)窗口
阅读(322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~