js扫描系统进程 查看注册表实现。

jackx 2013-8-2 17:50 | |
背景:一些浏览器的其它协议,如自定义协议,会扫描进程的列表,及通过js读注册表(客户端会写注册表,以达到判断是否安装过客户端)等,是必须用到的。
JS操作本地注册表有很多限制,默认浏览器是没有打开JS本地脚本操作的,如果浏览器没有配置且安全级别比较高,或者杀毒和防木马软件,直接用JS操作注册表会被阻止的,为了保险期间实现这个功能“需要在登陆后先判断是否安装过客户端才能进行游戏”,最好的方式个人认为是,通过客户端实现一个浏览器的插件,然后在JS中判断插件是否已经安装,然后通过插件启动客户端或做其他的事情比较稳妥。

一般这样做,我估计百度影音通过网络浏览器到播放器(好在没有广告)就是这么干的,好使用HTA(HTML application),不然通过Web访问会出现安全提示。:
干脆在客户端游戏安装过程中,同时安装一个BHO,好处是JS可以直接调用activex判断是否安装了,而且可以通过activex直接启动客户端,并且可以把用户的登录状成直接带到客户端游戏去,省得重新输密码登录。

读取注册表的办法,比较简单
<script  language="JScript">  
     var  WshShell  =  new  ActiveXObject("WScript.Shell");  
      keyValue  =  WshShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Cache\\Paths\\Directory");  
     alert(keyValue);  
</script>  
原则上,只要注册表记录的信息都可以查到。
但系统进程是在内存中,而不是在注册表也不是在硬盘上,可以使用win32 API CreateToolhelp32Snapshot 扫描系统进程,js不借助ActiveX是做不到的。

用WSH可以做很多的事...
我实践了是可以hta来读取注册表和执行程序的,找开获得23.0,打开了cmd,如下:


如果用浏览器去执行这个会出现,如下问题,也就是说浏览器想要执行EXE可执行程序得要通过ActiveX控件去做,实践如下:
http://localhost/jsReg.html
ReferenceError: ActiveXObject is not defined
[在此错误处中断]   
var WSH = new ActiveXObject("WScript.Shell");
jsReg.html (第 22 行)
ReferenceError: ActiveXObject is not defined
[在此错误处中断]   
var obj = new ActiveXObject("WScript.Shell");


参考来自:
http://www.itlead.com.cn/article/html/148/2011-07-26/content-1027.shtml








var wsh=new ActiveXObject("WScript.Shell");
wsh.AppActive("title");//激活指定title的应用程序窗口
wsh.CreateShortcut();//建立快捷方式
wsh.Popup();//提示
wsh.RegDelete();//删除注册表项
wsh.RegRead();//读取注册表
wsh.RegWrite();//写注册表
wsh.Run("c:\\test.exe");//运行程序
wsh.SendKeys();//摸拟按键
//...........

等等一堆

你想要做系统进程扫描的话,可以使用WMI对象来...

呵呵,并不是像大花猫说的,JS还是可以做的...

http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/WDdnclinicscripting.mspx

这是MS上的WMI的参考文档...
你想像一下msinfo32.exe可以做什么事,可以查看到什么系统信息,你用JS使用WMI也能做什么,但是前提是你的WMI服务要启动地哦,不过默认是启动地...


http://www.microsoft.com/china/technet/community/scriptcenter/resources/wmifaq.mspx
WMI的秘密

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_reference.asp
WMI参考文档。。。

你一定要去看看。。
里面的示便都是用VBS做的,你自己用JS当然也一样能行。。。

来源:http://bbs.csdn.net/topics/80029089

参考:http://www.dewen.org/q/663
http://blog.csdn.net/yu555666/article/details/1563547

作者:jackx@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://www.jackxiang.com/post/6562/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackx 编辑于2013-8-14 16:24
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]