| 如何去掉软件在上任务栏加载的图标 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:49:07
|
| 很久没有发表新贴了,这次不是算法分析.而是一个小弟在实际应用当中遇到问题的解决方案!
这次我要对付的软件是一个比较好用的代理软件(我不知道这样文章要不要隐藏文件名称),算法大家已经分析很多次了,我就不再重复了. 我这里来讨论一个实际应用的问题:如果你想用别人的机器上网而又不想让他轻易的发现(好像这样的想法大家都有吧?).而这个软件在启动之后
会在任务栏加载一个图标,这样就比较矛盾了啊!所以我才要解决他啊!
首先我们先来点思路: 要向系统托盘中加入和删除图标必须要用到SHELL32.Shell_NotifyIconA这个函数,也就是说当软件启动的时候一定是调用这个函数将自己的图
标加入到系统托盘中;在关闭软件的时候他也是调用这个函数将图标删除的.
我们来查一下WINAPI函数表来确定一下这个函数的使用方法和格式. Const NIM_ADD = &H0//这个就是向托盘加入图标的参数 Const NIM_MODIFY = &H1 Const NIM_DELETE = &H2//这个就是从托盘中删除图标的参数
Const NIF_MESSAGE = &H1 Const NIF_ICON = &H2 Const NIF_TIP = &H4
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As
NOTIFYICONDATA) As Long 上面2个函数的参数一定要记下来下面有用啊!
我们用WINASM32来反汇编软件,在函数中查找SHELL32.Shell_NotifyIconA这个函数看看系统中是怎样调用他的,双击几次我们发现软件一共有3
处调用这个函数. 我们先来分析一下这个软件调用的这3处的作用:首先,软件启动会向系统的任务栏中添加一个图标;然后,要完成图标的动画作用(写过程序的人
应该知道,做动画比较简单的方法就是来回切换图标就可以完成了啊);最后,在退出软件的时候要删除任务栏的图标.大概就是这3处. 这只是初步分析了下面我们进行动态跟踪: 为了分析清楚软件是怎样调用的就必须使用TRW2000或SICE动态跟踪了,我们下BPX Shell_NotifyIconA 断点,拦断后用F12跳出看看软件是如果
调用,和使用参数的!
首先来到下面: 这里是软件启动时调用的地方 * Possible Reference to String Resource ID=00114: "CCProxy" | :00408770 6A72 push 00000072 :00408772 51 push ecx :00408773 C68424F424000005 mov byte ptr [esp+000024F4], 05 :0040877B E8C0890100 call 00421140 :00408780 83C408 add esp, 00000008 :00408783 50 push eax :00408784 8D4C2414 lea ecx, dword ptr [esp+14] :00408788 C68424F024000006 mov byte ptr [esp+000024F0], 06 :00408790 E818910300 call 004418AD :00408795 8D4C2414 lea ecx, dword ptr [esp+14] :00408799 C68424EC24000005 mov byte ptr [esp+000024EC], 05 :004087A1 E8CE8F0300 call 00441774 :004087A6 8B7C2410 mov edi, dword ptr [esp+10] :004087AA 83C9FF or ecx, FFFFFFFF :004087AD 33C0 xo [1] [2] [3] [4] [5] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: 到ddxia那里下载的ACiD_BuRN2的crackme部分解决 下一篇文章: 如何破解PB6.5编译的程序 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |