CC Proxy去启动画面与托盘图标笔记
本帖最后由 LazyPenguin 于 2016-3-27 12:14 编辑*LAZY PENGUIN 10-22
学校机房用双网卡代_理实现可控制访问外网,平常快下课时便会开放。而最近无意间拿到了服务器的管理员权限,于是我想再搭建一个Proxy来专为我服务。
CCProxy是国内最流行的下载量最大的的国产代_理服务器软件,又简单易用,那么就选它了。
且不说软件未注册只能3用户同时使用,有一个极大的弊端就是会在系统托盘区显示图标(早起版本可以不显示)和启动时会出现启动画面,我最先想到的是直接设置Windows的隐藏图标,但仍是点展开就能看到。再或者用ResHacker把图标文件改了,换成透明的,那里会有明显的一空。管理员毕竟又不是瞎的,这样做久而久之还是会被发现。现在要做的,则是把它弄得较隐蔽一点。(起码把图标先搞定)
经过几番周折,终于找到了一些有用的信息:
*我虽不大会Windows编程,但感觉还是略懂。
程序向系统托盘加入图标,就一定要调用SHELL32.Shell_NotifyIconA函数,以下是API原形:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Const NIF_ICON = &H2
Const NIF_TIP = &H4
Const NIM_ADD = &H0 //这个就是向托盘加入图标的参数
Const NIF_MESSAGE = &H1
Const NIM_MODIFY = &H1
Const NIM_Delete = &H2 //这个就是从托盘中删除图标的参数
这个函数有两个参数,其中一个是控制是否显示图标在任务栏的。可以取3个值。
—-0(向任务栏添加图标)
—-1(修改任务栏中的图标)
—-2(删除任务栏中的图标)
我们只需将0改成2即可实现目标。
废话少说,动手 ...
此处用到的是一款反汇编工具,支持原生中文。
把CCProxy.exe载入c32asm,
查看>>输入表,找到SHELL32.DLL中的Shell_NotifyIconW函数,把PUSH的HEX值改为2,这里都是16进制的。
保存,我们的去托盘图标工作已经完成。看看是不是真没图标了...
下面是去启动画面。
这里用到的工具是PE EXPLORER,载入,
图片
看"位图"下,那张159的图片恰恰就是启动时出现的那张,果断删掉,OK。
重启程序,没有了启动画面,开机自启更加隐蔽,再把它作为NT 服务启动,完美。
老师已经不能阻止我们迈向互联网的脚步了...
玉树临风 发表于 2015-1-20 01:31
程序向系统托盘加入图标,就一定要调用SHELL32.Shell_NotifyIconA函数
向你请教!
奇怪,那有好些软件怎么 ...
我不常来论坛,这个函数的详细介绍:http://baike.baidu.com/link?url=y2PJIUr6lO5jBIUVm9Uf_iw9k0r7yb9_OmaH-YfJSuCYYHKTEOvwUjTdpKOk_SOqbRSrks-mEnnQPC1HE61jta
这里只是针对C++的,其他语言的我也不知道 按照你这个教程,我把我的软件也去了图标!不错! 嗯。 不错的教程 请教楼主讲解一下怎么把它作为NT 服务启动 玉树临风 发表于 2015-1-14 11:39
请教楼主讲解一下怎么把它作为NT 服务启动
截图这个软件设置里面有 玉树临风 发表于 2015-1-14 11:39
请教楼主讲解一下怎么把它作为NT 服务启动
http://lazypenguin.qiniudn.com/SCREENSHOT.png LazyPenguin 发表于 2015-1-16 20:38
是ccproxy软件附带的功能吧? 此贴让在下灵感突现.触类旁通.举一反三. 只能说回两帖才一分