阅读:1947回复:7
瑞星杀毒软件系统登录时屏幕左上角的图标和文字显示是怎么实现的?
我查了一下,发现该图标和文字和一个服务有关,禁用了这个NT服务,图标和文字就显示不出来了。由于这个NT服务程序文件较大,分析起来比较费劲,谁给介绍一下这个图标和文字是怎么显示出来的?猜测是由NT服务程序借助于进程注入一段代码到logonui.exe进程获得主窗口句柄,借助于窗口子类化实现。觉得这种方法十分费劲,工作量巨大,尽管理论上是可行的。另外猜测是通过动态地改变logonui.exe对登录界面的资源使用重定向,达到偷梁换柱的目的。但这都是猜测,谁做过这方面的研究,能否指点一番。
|
|
沙发#
发布于:2007-08-28 13:17
应该不复杂,我推测应变是在station0的某个屏上画的
|
|
|
板凳#
发布于:2007-08-28 15:19
Desktop/WindowStation
|
|
地板#
发布于:2007-08-28 15:51
顶上那个图片在资源中。找到对应的exe/dll, 然后IDA, 当年我就这么干的。
|
|
地下室#
发布于:2007-08-28 23:00
晕。不要动不动就搞线程插入。认真看MSDN,有正规的办法。
无非就是桌面不同,将线程的desktop设置成winlogon就可以了。 HDESK hDesk = OpenDesktop("Winlogon", 0, FALSE, GENERIC_ALL); if (hDesk) { if (SetThreadDesktop(hDesk)) { MessageBox(NULL, "This is winlogon desktop.", "", MB_OK); } CloseDesktop(hDesk); } 需要注意的是,只有SYSTEM才能访问winlogon桌面。 所以上面的代码要放在交互服务里才能正常运行。 |
|
|
5楼#
发布于:2007-09-08 20:04
好, 我很久就想知道了.
|
|
6楼#
发布于:2007-09-10 18:22
不过那个小图标好可爱啊~
不知道native app能不能显示图标~ |
|
|
7楼#
发布于:2007-09-11 23:48
只要能够以足够的权限跑起来,干什么就看高兴了。
|
|