谈一谈netkeeper的运行原理及如何不用路由器开启wifi。(针对重庆地区,其它地区没研究过。日期:2017.11.29)

旧版:

netkeeper将用户名加密为真正的用户名进行登录,登录以后netkeeper检测是否有wifi软件开启,有则断网。

旧版在联网以后杀死netkeeper进程即可开启wifi

新版:

netkeeper将会创建两个进程,且进程名是程序生成的随机字符串。打开进程管理器可以看到会有两个随机字符串的进程,两个进程同名但内存占用差了一个数量级。

网上查资料大都说netkeeper会发心跳包,但我抓包分析却没发现有,服务器倒是一直有向client发送LCP echo request报文,每隔20s发一次,然后netkeeper会进行应答,发送LCP echo reply原理大致与ping发icmp差不多,于是我杀死一个内存占用大的netkeeper的进程,发现netkeeper发送了LCP termination request和PADT报文,可知新版netkeeper是检测进程数察觉进程是否被杀死,从而断网。于是我重新联网,杀死内存占用小的进程,发现要过一段时间大内存的进程才发现并断网。

从上可以推测netkeeper的运行大致情况。netkeeper运行创建两个进程,大的负责wifi软件检测和小进程的存在与否,小的负责检测大进程的存在与否,二者若检测到另一进程被杀死则开始断网。

开启wifi方法:打开进程管理,先杀死小的进程,然后在大进程没反应过来的时候迅速杀死大进程,这样netkeeper就被杀死,无法检测wifi程序,可以放心开wifi了

给个bat命令杀netkeeper进程,防止手速过慢导致断网。

wmic process get processid,executablepath | findstr NetKeeper > task.txt
for /f "skip=1 tokens=1,2 delims= " %%i in (./task.txt) do taskkill /f /pid %%j
for /f "tokens=1,2 delims= " %%i in (./task.txt) do taskkill /f /pid %%j
复制之后写入任意文件,把后缀名改为.bat就行了.