運用c++結束學校機房紅蜘蛛控制軟體

AK龍發表於2018-04-19

注:目前只在xp和win 7 中實驗成功,在win 10失敗成功!。

大多學校機房用的教學系統是紅蜘蛛軟體。老師在講課時會通過這個軟體控制你的電腦。退出軟體的方法很簡單:

  1. 更改紅蜘蛛軟體所在資料夾的檔名
  2. 結束紅蜘蛛軟體後臺程式

如果沒有進行第一步,就算結束了紅蜘蛛軟體,也會有一個後臺自動檢查程式,當它發現程式終止之後,會自動開啟指定資料夾下的軟體,所以要先把資料夾重新命名,防止再次啟動。

根據上面的步驟,首先要找到軟體所在的資料夾,一般學校機房的c盤保護度最高,所以會放在C盤,在c盤某一個資料夾裡有一個3000soft的資料夾,在其中就有紅蜘蛛所在的資料夾Red Spider,我們所要做的就是重新命名它。

之後步驟就稍顯簡單,可以通過切換使用者來實現結束軟體後臺程式,也可以直接通過工作管理員結束。

以上是手動實現,但是寫成程式之後可以一勞永逸。先看程式碼:

#include<stdio.h>
#include <fcntl.h>
#include<windows.h>
int main(void)
{
    char choose;
    puts("a) 退出控制 \nb) 恢復控制");
    choose = getchar();
    char oldname[] = "c:/Program Files/3000soft/Red Spider";
    char newname[] = "c:/Program Files/3000soft/ok";
    char oldname2[] = "c:/3000soft/Red Spider";
    char newname2[] = "c:/3000soft/ok";
    char close[] = "taskkill /im REDAgent.exe /f";
    if(choose == 'a'){
        if(rename(oldname, newname) == 0){
            system(close);
            puts("success");
        }
        else if(rename(oldname2, newname2) == 0){
            system(close);
            puts("success");
        }
        else   puts("fail");
    }
    else if(choose == 'b')
    {
        if(rename(newname, oldname) == 0)   puts("success");
        else if(rename(newname2, oldname2) == 0)   puts("success");
        else   puts("fail");
    }
    else puts("input wrong!");
    getchar();
    getchar();
    return 0;
}


其中,我們可以在cmd命令列裡執行 rename 命令來對資料夾重新命名,但是在c/c++裡也有一個函式用來對檔案重新命名,就是rename(如果想深入瞭解這個函式請百度)。所以我們就可以通過這個函式來對資料夾進行重新命名,就完成了上述的第一步。

至於第二步,我們可以在cmd命令列輸入:taskkill /im REDAgent.exe /f 來結束正在執行的紅蜘蛛程式不同學校不同機房可能程式名字不同),其中REDAgent.exe是程式名字,你們可以根據自己學校軟體程式名稱不同來更改。

如果想要把這個命令寫程式序,讓他自動執行,我們可以通過c/++為我們提供的system函式,這個函式可以模擬cmd執行命令,也就是說在cmd能執行的命令它都能!具體方法是system("命令")。在上述程式碼中,我們把命令存在字元陣列中,然後將字元陣列作為各個函式的引數,這樣既省事又美觀。

注:以上程式碼預設3000soft資料夾在c盤program files裡面,但是有的機房也會直接放在c盤。如果你的學校夠特殊,說不定還會放在別的地方,那就需要你們自己把地址改一下了。

PS:以上函式都沒有細講,因為你們隨便百度一個都比我說的好,畢竟我也是剛學。所以如果想詳細瞭解就麻煩你們百度搜尋了。

需要以管理員身份執行。

沒錯,我在機房上課時把這篇文章敲完了。

相關文章