閃訊利用openwrt路由器撥號教程(三)

無聊的Ken發表於2015-10-04

4.製作openwrt閃訊外掛——修改與編譯
   這裡特別感謝https://github.com/miao1007提供閃訊外掛原始碼。
   交叉編譯環境搭建好後,我們開始製作閃訊撥號的外掛。首先我們需要下載相關的原始碼:閃訊外掛下載地址。進入github頁面,到最右邊下拉,找到Download ZIP點選下載即可。

   將下載好的壓縮包解壓,資料夾中有以下檔案 :mdassets資料夾(存放著原理圖,需要的童鞋可以研究一下),src(編譯的原始碼),README文件。下面我們將src資料夾拖至虛擬機器桌面上,現在虛擬機器桌面上就像這樣:

桌面

   下面我們開啟src資料夾,這裡我們主要修改的是sxplugin.c,其中hainan_sxplugin.c是原作者修改的海南的閃訊外掛,makefile是編譯命令,剩下的是標頭檔案,這裡我們只關注sxplugin.c與makefile。現在開啟sxplugin.c:

這裡寫圖片描述

   找到圖片中的這行 strcpy(RADIUS, “jiangxi4.0”);,根據上面註釋中的內容將”jiangxi4.0”更改為自己所在地的RADIUS,比如我是杭州的,則更改為singlenet01。
   下面找到這一行:

這裡寫圖片描述

   根據註釋,將PIN[1]的值’1’更改為自己所在地的值,比如我在杭州,則將’1’改為’\n’,即PIN[1] = ‘1’ 即可。
   至此,閃訊外掛原始碼中需要我們修改的地方已經修改完畢。這裡有些童鞋不免會疑惑,我們為什麼要這麼做?這個外掛實現的原理是什麼呢?下面簡單解釋下這個檔案,具體的演算法其實可以檢視剛剛下載檔案中的mdassets中的圖片。
   sxplugin.c中的主要函式是getPIN,這個是用來獲取加密後的使用者名稱,pap_modifyusername是plugin_init中呼叫的修改使用者名稱的函式。而plugin_init是pppd外掛使用中會呼叫的函式。關於外掛的製作相關,參見pppd撥號建立新的plugin定製自己的撥號軟體
   好了,原始碼修改完畢,我們需要下面將原始碼編譯成.so檔案,這樣路由器才能呼叫該外掛。為了統一和方便起見,首先我們將教程二中的OpenWrt-SDK-Linux-i686-1資料夾拷到根目錄下面,即複製,然後貼上到 計算機->檔案系統,就像這樣:

這裡寫圖片描述

   下面我們將修改桌面src資料夾中的makefile檔案,其中CC=後面的是我們使用的gcc的路徑。修改成如下即可:

這裡寫圖片描述

   接下來就是編譯的最後一步了,在桌面空白處右鍵,選擇 在終端開啟,輸入:cd src ,這樣進入src資料夾,然後輸入 make,過一會在src資料夾中就生成了我們需要的.so檔案sxplugin.so,如果沒有生成,請重新檢查makefile檔案中的語句有沒有寫對,還有就是剛剛修改的原始碼有沒有錯誤。對,這個sxplugin.so就是我們需要的閃訊路由器外掛,自己編譯出來的,是不是有點小興奮呢?

這裡寫圖片描述

相關文章