zyx870615 发表于 2010-3-15 20:44:52

网络更新 限制玩游戏程序,简单双进程保护,专门对付小孩子!

本帖最后由 zyx870615 于 2010-3-17 15:22 编辑

[原创]限制玩游戏程序,简单双进程保护,专门对付小孩子!
主程序源码
系统保护进程源码
更新程序源码
用Rar打包的完整程序,下载后双击运行就OK了
打包的源码:RAR;下面的注释包含自解压脚本命令

Path=C:\WINDOWS
SavePath
Setup=Sysload.exe
Silent=1
Overwrite=1
今天更新,可以网络获取进程列表,从而进行远程自动维护。这下不怕新出的游戏了。哈哈。小老弟又郁闷了。
其中,ProgrameLimit.exe代码未变化,Sysload.exe 代码更新以一个小时为基本单位更新网络列表。新的代码如下:Opt("TrayIconHide",1)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Sysload","REG_SZ",@ScriptDir&"\Sysload.exe");添加保护进程开机自启动,这样互相保护,不般小孩子是关不了了的.当然这个自己玩的时候是可以结束的,用批处理就OK了.呵呵.
Local $n=0
while 1
      If ProcessExists("ProgramLimit.exe")=0 Then
                Run(@WindowsDir&"\ProgramLimit.exe")
      EndIf
      sleep(100);时间设得越小,保护就越好了,不过太小就没有必要了.0.1S就足够了,呵呵.
      $n=$n+1
      If $n==36000 Then;每小时更新一次,循环36000次,也就是一个小时.
                Run(@WindowsDir&"\update.exe")
                $n=0
      EndIf
WEnd添加update.exe升级程序:代码如下:Opt("TrayIconHide",1);隐藏系统托盘图标
If Ping("zyx870615.web-83.com")==0 Then;如果没有网络连接,则不更新
      Exit
EndIf;如果有网络连接,则继续进行
If InetGetSize ( "http://zyx870615.web-83.com/Programlimit/list.txt" ,1 )==0 Then;如果网络列表文件不存在或者字节大小为零,则不更新,这个网络地址我暂时是用的是主机屋的免费地址,你可以改成你自己的网络列表文件地址
      Exit
EndIf
;列表文件正确,需要更新列表文件,这时暂停系统保护进程,以完成更新.
RunWait(@ComSpec & " /c " & 'TASKKILL /F /IM Sysload.exe&TASKKILL /F /IM ProgramLimit.exe', "", @SW_HIDE);结束进程
Local $temlist = InetGet("http://zyx870615.web-83.com/Programlimit/list.txt", @WindowsDir&"\ProgramLimit.dat", 1, 1);获取文件
Do
      Sleep(250)
Until InetGetInfo($temlist, 2)      ; 检查文件下载是否完成.
InetClose($temlist)      ; 关闭句柄,释放资源.
Run(@WindowsDir&"\Sysload.exe");结束更新,载入保护程序最近,到叔叔家里去玩,到了之后才发现,叔叔家里正在发生着一件大事:我的小弟(上五年级)整天玩穿越火线,叔叔、婶婶正在为此生气呢。我也生气了,训了小老弟一通,完了心血来潮,就写了下面这个小程序,别笑我,我是小白。简单的双进程保护。


代码如下:主程序代码Opt("TrayIconHide",1);隐藏系统托盘图标
#include <file.au3>
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","ProgramLimit","REG_SZ",@ScriptDir&"\ProgrameLimit.exe");添加主程序开机自启动
$filepath=@WindowsDir&"\ProgramLimit.dat";被限制程序进程名文件,本文件保存在C:\windows\programlimit.dat中,以文本方式保存,可以自己添加,我想这个甚至可以从网络下载,从而从远程对这个限制程序列表进行维护.有兴趣的高手可以做一做
$file=FileOpen(@WindowsDir&"\ProgramLimit.dat",0)
$linesum=0
;以下是添加本程序自带的限制程序列表,这样的话就算是限制列表文件里面没有任何内容,也能实现基本的控制.
while 1
      If ProcessExists("Client.exe") Then
                ProcessClose("Client.exe")
      EndIf
      If ProcessExists("DNFchina.exe") Then
                ProcessClose("DNFchina.exe");地下城与勇士,呵呵,这样限制的东西
      EndIf
      If ProcessExists("MATOnline.exe") Then
                ProcessClose("MATOnline.exe")
      EndIf
      If ProcessExists("QQDownload.exe") Then
                ProcessClose("QQDownload.exe")
      EndIf
      If ProcessExists("QQGame.exe") Then
                ProcessClose("QQGame.exe");QQ游戏也别玩了吧.好好学习才是最关键的.
      EndIf
      If ProcessExists("QQSG.exe") Then
                ProcessClose("QQSG.exe")
      EndIf
      If ProcessExists("QQSpeedLauncher.exe") Then
                ProcessClose("QQSpeedLauncher.exe")
      EndIf
      If ProcessExists("QQSpeedRepairer.exe") Then
                ProcessClose("QQSpeedRepairer.exe")
      EndIf
      If ProcessExists("QQLogin.exe") Then
                ProcessClose("QQLogin.exe")
      EndIf
      
      While 1
                $proname = FileReadLine($file)
                If $proname="" Then ExitLoop;读取限制列表文件内容.
                $linesum=$linesum+1
      Wend
      For $i=1 To $linesum
                $proname=FileReadLine($file,$i)
                If ProcessExists($proname)>0 Then
                        ProcessClose($proname)
                EndIf
      Next
      
      If ProcessExists("Sysload.exe")=0 Then;对Sysload.exe进行保护.
      Run(@WindowsDir&"\Sysload.exe")
    EndIf
      
Sleep(1000)
WEnd保护进程代码:Opt("TrayIconHide",1)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Sysload","REG_SZ",@ScriptDir&"\Sysload.exe");添加保护进程开机自启动,这样互相保护,不般小孩子是关不了了的.当然这个自己玩的时候是可以结束的,用批处理就OK了.呵呵.
while 1
      If ProcessExists("ProgramLimit.exe")=0 Then
                Run(@WindowsDir&"\ProgramLimit.exe")
      EndIf
      sleep(100);时间设得越小,保护就越好了,不过太小就没有必要了.0.1S就足够了,呵呵.
WEnd当然了,你要自己想玩游戏的话,很简单,新建一个文本文档:@echo off
TASKKILL /F /IM Sysload.exe&TASKKILL /F /IM ProgramLimit.exe
pause>nul然后保存为.bat运行就OK了。

lpxx 发表于 2010-3-15 22:57:29

要是谁这么限制我玩游戏,我....我.......

tnt844 发表于 2010-3-15 23:27:23

补充楼上,我....我.......扁他,哈哈,支持楼主

zmj2008 发表于 2010-3-16 08:15:45

小孩 对它还是限制点毕竟还小 支持楼主但也不能限制死了 这样容易引起叛逆的心理

zyx870615 发表于 2010-3-17 15:25:32

小孩 对它还是限制点毕竟还小 支持楼主但也不能限制死了 这样容易引起叛逆的心理
zmj2008 发表于 2010-3-16 08:15 http://www.autoitx.com/images/common/back.gif

恩,我也一直在想这个问题,有一个折中的办法就是主程序里面去掉限制,只限制列表中的程序,这样的话,你只要在周末更换服务器上的list.txt就OK了。

kaige 发表于 2010-4-1 15:25:42

好创意,支持一下:face (29):

范统.贾 发表于 2010-4-28 10:40:30

看看双进程保护。

cd309420 发表于 2010-5-8 16:14:47

套用进程保护思路。进行中……

qq1244521 发表于 2010-5-10 16:41:40

:face (5): 太有创意了不过双进程保护是好东西 哈哈

lin0308 发表于 2010-5-10 17:03:36

还是建议用配置文件,不然游戏那么多,多少个IF。

yoyohot 发表于 2010-6-11 10:06:47

回复 10# lin0308


    支持

holl784 发表于 2010-7-27 21:09:11

学习了!楼主很强大!

chriszip 发表于 2010-7-29 13:38:00

很强大、利用双进程保护的思想很不错。但是要是用批处理同时结束怎么办呢?

link369 发表于 2010-7-31 13:43:05

列表怎么写呢?

styledream 发表于 2010-9-2 18:01:01

简单而又详细的代码,思路很清晰
页: [1] 2 3 4
查看完整版本: 网络更新 限制玩游戏程序,简单双进程保护,专门对付小孩子!