请教postMessage 发送隐藏消息的问题?
发布网友
发布时间:2024-10-24 09:04
我来回答
共6个回答
热心网友
时间:2024-10-24 21:35
CreateProcess的时候,可以选择创建方式的,LPSECURITY_ATTRIBUTES lpProcessAttributes这个参数。加上隐藏属性即可。具体的忘了,可以参阅一下资料。
然后Postmessage即可。但是窗口是隐藏的。
------------------------------------------------
那我就告诉你一个绝对可行的办法:
1、首先运行监控软件。然后安装迅雷,在监控软件中监视迅雷的安装程序都是干了什么,比如写了什么注册表,注册了什么服务?往系统目录里写了什么文件?
2、将已经安装好的迅雷的安装目录打包。
3、自己写一个程序,首先将第二步中的包解开,放到你自己想装的目录。然后,模拟第一步中监控到的操作。
事实上,这种方法就是模拟了迅雷的安装过程,不仅界面可以隐藏,而且可以实现你自己想要的界面。
不过,这个方法对于安装未知的软件,是*为例的。还是建议用上面说的CreateProcess中的隐藏属性解决。POSTMESSAGE不会直接导致画面显示的,一定是有其他原因导致了界面重现。找到它,解决它。
我认为导致画面重现的原因是:由于多数软件的安装程序界面是一个Sheet,而且是向导模式的。当你按下“下一步”的时候,系统会隐藏当前的对话框然后显示下一步的对话框。由于有“显示”操作,因此,会导致界面重现。
因此,还有一种方法:
1、首先进行注入,注入的方法很多,自己可以去查,或者看《核心编程》。
2、挂钩。不要下全局挂钩,下一个局部挂钩即可,挂钩的目标线程是安装软件的界面处理线程。不要挂钩CreateWindow,而是挂钩ShowWindow,如果发现ShowWindow的参数是SW_SHOW,那就改成SW_HIDE,然后再调用NextHook。此种方法绝对可以。
热心网友
时间:2024-10-24 21:36
呃。。。其实最保险的办法还是HOOK,但是不要HOOK WM_CREATE,要HOOK HWND CreateWindow()这个函数,HOOK到以后把其中DWORD dwStyle参数设置为隐藏。但是该方法很麻烦,你也说了可行性不高。
那我提供一个山寨方法吧,本人比较擅长利用山寨方式解决问题。。。
具体流程:
自动下一步你是发送回车键吧?你是用定时器来SW_HIDE窗口吧?这些都不用变,你只需要在发送回车之前,把当前屏幕截个图(截个图要干嘛?),然后把截的图画在屏幕顶层(具体的实现不难,搜一下),然后再进行你的回车+SW_HIDE,等到你确认窗口已经被隐藏了(如何判断已经被隐藏?我觉得你应该有这种能力),再把刚才画在屏幕顶层的窗口干掉!就是临时搞个假的界面,就像电影里偷银行的时候把摄像头的监控做个循环播放一样。。。估计这个假界面的时间比较短,所以影响应该不大。 :)
热心网友
时间:2024-10-24 21:36
拿到窗口句柄 在隐藏 这个会出现闪烁的...
基本上是HOOK才能做到悄无声息 将WM_CREATE消息HOOK掉 然后 分发一条隐藏消息
你也可以监控软件的安装过程 , 这个技术含量要低得多
需要安装软件 无非就是注册DLL 写注册表 监控好这个 完全可以自己实现安装迅雷 FlashGet 等等
热心网友
时间:2024-10-24 21:37
系统补丁的安装和flashget、迅雷等软件的安装是不一样的。
现在没有时间,有时间了可以帮你试试。
热心网友
时间:2024-10-24 21:37
360自动更新系统补丁的时候可以打到你想要的效果
热心网友
时间:2024-10-24 21:38
希望你能得到满意的答案