首页
社区
课程
招聘
如何通过修改软件本身实现桌面右下角小图标的隐藏
发表于: 2010-6-1 09:59 16925

如何通过修改软件本身实现桌面右下角小图标的隐藏

2010-6-1 09:59
16925
现在需要用自己的系统来启动一个第三方软件,但是又不想用户知道(进程中可以看到没关系)。
这个在启动第三软件的时候可以设置隐藏窗体,但是程序启动了,桌面右下角有一个小图标,点击之后还是会显示出主窗体。
现在就是想怎么通过修改第三方软件本身,来隐藏这个小图标。

欢迎大家提供思路和方法。

谢谢!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
嘿嘿,搞定了。
API不熟悉啊

方法:bp Shell_NotifyIconW
Atl+F9 如下:
008F8D78      52            push    edx
008F8D79      57            push    edi
008F8D7A      FF15 D8BA2E01 call    dword ptr [12EBAD8]              ;  SHELL32.Shell_NotifyIconW
008F8D80      85C0          test    eax, eax
008F8D82      74 0A         je      short 008F8D8E

OD 直接改了:
008F8D78  |.  90            nop
008F8D79  |.  90            nop
008F8D7A  |.  B8 01000000   mov     eax, 1
008F8D7F  |.  90            nop
008F8D80  |.  85C0          test    eax, eax
008F8D82  |.  74 0A         je      short 008F8D8E

这样程序正常启动了,桌面右下角的小图标也没了
效果达到了
不过个kx怎么呢?

###############################################################
谁抢到板凳,给谁kx
2010-6-1 10:47
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
3
啦啦啦,我来了
2010-6-1 10:55
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
都给LS的哥们儿了
2010-6-1 11:00
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
5
今天真幸运,学到知识还得到kx。
谢谢楼主!
2010-6-1 11:02
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
客气哈

互相交流,互相学习哦!
2010-6-1 11:21
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵,这个有点用,偶也改个试试先!
2010-6-4 13:30
0
雪    币: 289
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能说说为什么吗?别的软件 一样不?
2010-6-5 23:54
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
SHELL32.Shell_NotifyIconW这个API的返回值为0则失败,非0则成功.
下面我们来猜测一下:
      这个返回值标志成功与否,那我就让他返回成功,程序会对这个“小图标”做什么呢?
我们一般点击“小图标”都会弹出一个菜单操作,这些无非都是消息,那么如果隐藏了“小图标”,我们人为的就无法去触发消息,后面的操作就执行不了,这样出错的可能性就小了。

    另一点,“小图标”创建成功了,想必他会创建“菜单”,创建的这个“菜单”应该是不需要引用“小图标”的一些东东。

    这样想的话,他只是单独的一小模块,他的作用只是提供用户操作的一个接口,nop掉他也就没什么影响了。

    上面的猜测,我这里是达到效果了,但是我在这样做的时候也只是报着一个试验的态度,因为不排除其他的程序里面有着千丝万缕的联系。

    由于自己并非做c/c++这一块的,所以上面猜测中所说的也只是猜测,要逆向,正向则是必备的基础。而在c/c++这块我就没什么正向的底了
2010-6-7 09:45
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢楼主!学习了。
2010-6-7 11:30
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
12
由于是猜测,所以多作一些测试
闲来就拿自己电脑上的迅雷试验一下了
如图:


未修改前代码:
004CAF98       56               push esi
004CAF99       6A 00            push 0
004CAF9B       EB 23            jmp short Thunder.004CAFC0
004CAF9D       8B4E 20          mov ecx,dword ptr ds:[esi+20]
004CAFA0       83A6 98000000 00 and dword ptr ds:[esi+98],0
004CAFA7       C786 9C000000 02>mov dword ptr ds:[esi+9C],2
004CAFB1       898E 94000000    mov dword ptr ds:[esi+94],ecx
004CAFB7       81C6 90000000    add esi,90
004CAFBD       56               push esi
004CAFBE       6A 01            push 1
004CAFC0       FF15 246E5100    call dword ptr ds:[<&SHELL32.Shell_NotifyIco>; SHELL32.Shell_NotifyIconW
004CAFC6       5E               pop esi
004CAFC7       C2 0400          retn 4


修改后的代码:(还是nop哈)
004CAF98       56               push esi
004CAF99       6A 00            push 0
004CAF9B       EB 23            jmp short Thunder.004CAFC0
004CAF9D       8B4E 20          mov ecx,dword ptr ds:[esi+20]
004CAFA0       83A6 98000000 00 and dword ptr ds:[esi+98],0
004CAFA7       C786 9C000000 02>mov dword ptr ds:[esi+9C],2
004CAFB1       898E 94000000    mov dword ptr ds:[esi+94],ecx
004CAFB7       81C6 90000000    add esi,90
004CAFBD       56               push esi
004CAFBE       6A 01            push 1
[COLOR="Red"]004CAFC0       90               nop
004CAFC1       83C4 08          add esp,8
004CAFC4       90               nop
004CAFC5       90               nop[/COLOR]
004CAFC6       5E               pop esi
004CAFC7       C2 0400          retn 4


其它还有一些地方调用了这个api,就不管他做什么用了哈,修改这个就OK了
上图中也可以看到没有影响到迅雷的正常使用!
上传的附件:
2010-6-8 16:19
0
雪    币: 8150
活跃值: (3301)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习了,收藏下主题
2010-6-8 18:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习,学习,真的学习,呵呵,太感谢了。改一下其他的,自己也去试下
2010-6-10 10:23
0
雪    币: 459
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
Shell_NotifyIcon函数吧
2010-6-10 10:57
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
nop 的时候为什么还要 add esp,8 呢?
2012-2-25 21:57
0
雪    币: 57
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
 
004CAFBD 56 push esi     
004CAFBE 6A 01 push 1
004CAFC0 90 nop
004CAFC1 83C4 08 add esp,8
004CAFC4 90 nop
004CAFC5 90 nop

有两次 push ,所以加8平衡堆栈.去掉两个push就应该不用加了.
2012-5-11 15:31
0
游客
登录 | 注册 方可回帖
返回
//