你開發過什麼不尋常的程序?

大家都來分享一下自己曾經開發出或沒開發出的那些不尋常、有意思的程序吧。 不論是做給自己的、做給父母的、做給朋友的或者做給女朋友的。只要不是很常見、隨便就能找到的程序(或程序idea)。


外公外婆歲數高了,喜歡到處走,媽媽經常擔心,又礙於老打電話很麻煩,考慮到外公外婆都開通了GPRS,而且手機支持GPS,所以我開發了個GPS應用裝在他們手機里,這樣媽媽就可以時刻看到老人家的行蹤……最近應母上大人要求,添加了一個緊急呼救功能……老人家只要長按拍照鍵就能直接撥打老媽的電話。

有知友私信問那應用具體有啥功能,其實細說起來挺多,就稍微舉一些:
實時定位,20分鐘傳輸一次位置信息。
緊急呼叫
危險區域提醒,介個功能是老媽子的意思,感覺母上大人各種idea有當PM的潛質哈哈哈哈哈哈。其實就是老媽手機端可以輸入一些坐標,就是一些偏遠、不安全的地點,一旦老人家進入該範圍了,老媽這邊就會收到提醒。
遠程控制,老媽端可以通過簡訊開啟或關閉老人家手機上的GPS和GPRS,這個是我加上去的功能,很少用到,因為應用會自動開啟或關閉GPS和數據的。還可以控制老人家手機,調用其相機和麥進行錄像或拍照然後傳到老媽端上,說白了就相當於監視器啦,悲劇的是GPRS太渣了,準備幫外公外婆升級成3G,又不貴。。每個月100M估計都用不完。。。


知友還問到電量的問題,其實外公外婆的手機並非24小時都是開啟著GPS和GPRS的,考慮到老人家不怎麼懂開關GPS和GPRS(→_→老人家記性也不太好,老是教也不一定有作用),所以我很多設置都是自動的。結合老人家的作息時間,白天6點起床,所以我就設置成6點自動打開GPS和數據,晚上老人家一般9點會睡覺,就設置成9點關閉GPS和數據,當然我媽媽這邊也可以通過簡訊控制。


有次出差住在簡陋的船上,沒有吹風機。於是我寫了個CPU GPU全跑滿的程序,用筆記本風扇吹頭了。


我來展示一些奇葩的小程序...

空格點滑鼠—-當時估計是覺得滑鼠不好用,然後用空格鍵代替點滑鼠(鍵盤熱鍵和滑鼠模擬)(2009年7月19日)
柯南音樂播放器—-當時在某站找到一個網盤,然後把我搜刮的柯南音樂全部上傳上去了,做了一個小播放器(現在已經失效)(2009年8月3日)

SOSO刷搜索次數—-刷到了世界第一的神器(多線程後台開機運行)(2009年10月18日)

4399刷簽到—-為了無聊的分數,弄了一個每天自動簽到的後台程序(插入啟動項,殺毒軟體添加白名單,可怕)(2009年8月4日)

全能(ALL)—-一款可以登錄QQ,測試GET和POST的軟體,可以連續發送(多線程),可以轉碼,內置瀏覽器方便登錄,支持代理IP.(2010年1月2日)快速測試HTTP神器啊…現在還在用它

QQ牧場激活器—-當時QQ農場和QQ牧場是兩個東西,牧場不是所有人都能玩,但是我們發現了一個漏洞,所以就做了這麼個玩意(2010年1月24日)

密保卡安全瀏覽器—-這是玩騰訊遊戲的時候避免別人拍照而做的軟體..沒什麼特別的,大家應該看明白了.

QQ炸彈—-正如這個神奇的名字,它就是用來炸QQ好友的,自動生成英文/數字/甚至是中文,自動輸入並發送,可調時間間隔(可怕的科技)(2010年4月19日)

佔用內存程序—-正如這個名字…它沒有任何用處,就是為了占內存.(2010年6月10日)

QQ拼音刷打字記錄程序—-沒錯,鍵盤模擬打字而已,可以把每日打字量刷非常高(2010年7月1日)


刷化肥—-這個軟體應該是當時QQ農場牧場第一個外掛吧..(2014年7月31日),利用騰訊伺服器時間不同步的漏洞,可以在0點領翻倍數量的化肥,並且有黃鑽用戶領到了幾萬袋化肥(人民幣價值幾十萬),成功成為當時排行榜前幾名.

自動種植—-QQ農場自動利用刷來的化肥種植農作物,收割,剷除,多線程非同步刷等級,曾經一天刷了將近一百級(2010年8月3日)下圖為10月31日

犇牛病毒專殺工具—-當時不知道為什麼中毒了,電腦各個地方都是usp10.dll和lpk.dll,於是寫了一個工具全盤搜索該文件刪除.(2010年8月17日)

搶黃鑽—-這玩意簡直是搶火車票的祖先..自帶帳號記錄,北京時間,多線程刷分,當時搞活動可以領黃鑽,但是只有特定時候開放,於是我就寫了個這個軟體,到點了馬上開線程刷,一定能領到,沒有人比一秒50次的加特林還快了.(2010年9月5日)

(注:程序的北京時間經過修改,原來使用的授時中心(時間科普網站)的時間源已經404了)

現在使用的時間:百度搜索_北京時間

強制關機程序—-這個有點厲害,調用系統API提權強制黑屏關機(2010年10月17日)

  1. RtlAdjustPrivilege (#SE_SHUTDOWN_PRIVILEGE, 1, 0, 0)
  2. NtShutdownSystem (#SHUTDOWN)

bilibili視頻地址獲取器—-沒想到吧!當時我居然做出來了這麼神奇的玩意,用來下視頻的(2010年11月1日)當時的視頻地址長這樣:http://bilibili.us/video/av34026/,現在已經失效.


Q寵大樂斗輔助—-這個功能就十分強大了,幾乎把一個遊戲的每日操作做得半自動化了,比如自動刷牧場(這是個漏洞,牧場有個拍蚊子功能,我直接把POST數據改為num=100了,這樣一天得到的經驗值就滿了),然後還有自動澆花(花藤),好友列表雙擊PK,領取各種每日獎勵.(2010年11月22日)

QQ農場牧場輔助工具—-依然是一系列的全自動操作,免除各種煩惱.(2010年11月25日)原理都一樣,不再細說.

獨立鑽石棋—-沒錯!我做過遊戲!非常簡單的一個棋類遊戲,規則可以自行百度.(2010年11月30日)

百度一系列工具—-百度登錄,百度註冊,百度掃號,刷粉器,掌上百度發帖爆吧器.還帶有許可權驗證功能.恐怖到自動獲取代理IP.(正則表達式)(2011年2月19日)

批量創建QQ群—-可以創建出連號QQ群來賣!可以批量登錄QQ,帶有cookies管理!(意味著你可以同時有一百個QQ號在一個軟體上登錄)(2011年4月17日)

鍵盤記錄器—-而且還寫了配套回放軟體…記錄了鍵值,按下還是彈起,距離上次操作的間隔時間,可以完全回放出來.(2011年8月28日)

遠程手機攻擊器—-是簡訊轟炸的那種攻擊,遠程就是放在伺服器上面的那種.可以遠程下指令給伺服器讓伺服器簡訊轟炸手機.發簡訊的方式是利用某網站搞活動,驗證手機號碼會發送簡訊,但是沒有限制次數.(2012年1月9日)

高考倒計時—-哈哈哈 就是高考倒計時拉,我後來居然還用單片機做了一個真正的高考倒計時裝置,然後被班主任沒收了.(2012年6月17日)中間時間跨度好大,好像半年沒有碰電腦.

BTBU上網登錄—-給學生們上網登錄的軟體(2013年10月14日)

素數螺旋圖的繪製—-具體定義請維基百科,這只是個人興趣,GEEK向(2013年11月14日)

眨眼識別—-這個碉堡了,這原本是腦電波識別,但是我水平不夠,就做了個眨眼識別(2014年2月2日)

透傳程序—-這是給我的wifi插座做的伺服器端,透明傳輸(2014年3月24日)


機器魚代碼更新工具—-自動替換api的文本處理工具,臨時性工具(2014年5月21日)


DHT11遠程溫濕度監控系統—-課設作品,遠程監控溫濕度,溫度條顯示(2014年6月18日)

霧霾查看器—-這個就是利用了氣象局的信息做的臨時小創意(2014年7月31日)現在他們自己伺服器也好慢.


想到一張圖。


作為選擇恐懼症,每天晚上下班都很糾結去吃什麼。大眾點評搖出來的全是不想去的餐館,沒法手動指定候選列表;微信的色子功能還不錯,但是還要腦內給餐館編號。

於是就隨手寫了個這……

於是問題解決了。

有時候沒人一起吃,只好……

……後來同事問我這程序能不能作弊,於是我就開發了右上那個按鈕。

…………點擊效果如圖……


——————這你們也求源碼?023——————

public void Roll()
{
string restaurantNotes;
string playerNotes;
var random = new Random();
var restaurants = this.RestaurantList.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
var players = this.PlayerList.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
int numberOfRestaurants = restaurants.Count();
int numberOfPlayers = players.Count();

if (numberOfRestaurants &> 0)
{
var destination = restaurants[random.Next(numberOfRestaurants)];

restaurantNotes = string.Format("今天就去 {0} 吃吧!", destination);
}
else
{
restaurantNotes = "沒得吃了啊,回家吧!";
}

if (numberOfPlayers &>= 2)
{
var host = players[random.Next(numberOfPlayers)];
var mascot = players[random.Next(numberOfPlayers)];

playerNotes = string.Format("本日冤大頭: {0}
本日吉祥物: {1}", host, mascot);
}
else
{
playerNotes = "——孤獨寂寞冷的少年";
}

MessageBox.Show(string.Format("{0}

{1}", restaurantNotes, playerNotes));
}

湊合看吧……


群里時常抱怨沒人聊天,於是寫了一段代碼,把一個2k人數的群近三年的聊天記錄導出來,格式化數據,然後開了六個qq,每天早上起床讓他們按順序讀取數據發到群里,晚上睡覺關機休息。
有次忘記停止了,結果這幾個兄弟昏天暗地聊了三天三夜。群里都炸了~~~

最近幫土豪朋友寫的微信自動發紅包外掛,24小時不間斷,根本停不下來,土豪專享。
不要找我拉入微信群,我也不在裡邊。


我們初中那時候搞了炫酷的286機房,黑白屏幕,五寸軟盤,沒有滑鼠。計算機老師戰鬥力超高,誰程序寫不好會被罵到哭,不認真上機的直接拎著扔出機房。上機不但刺激,還令人恐懼。想玩遊戲只有一條路,就是事先在紙上寫好,上機時先光速完成作業,再輸入遊戲程序。我寫過很多個,有些能成功運行,有些則實在沒有時間在一節課的時間內完成debug。

其中最具挑戰的是一個網路對戰的戰棋類遊戲,由於我完全不知道如何進行網路操作,只能用FoxBase+這種上古神器,雙方輪流連上資料庫更新數據。該神器有個特性就是只能有一個客戶端連接,第二個人一連上去會crash,連鎖都沒法做。也不知道神器自己有什麼解決方案,唯一的文檔兼教程就是那本教科書。因此我不得不加入了基於空氣介質的通信協議,也就是喊。

「喂,我走完了。」 醬紫。

debug完畢後,時間已經所剩無幾,最後雖然終於完整玩了一局,但還是以對方耍賴結束的。那個同學最後發現,如果沒有主動要求我行動,他就可以偷偷進行下一輪行動,直到把我的部隊都消滅掉,每個兵種,每個單位,一個不留。實在是太兇殘、太卑劣了。當然後來我把他打了。

高中出現了文曲星這個玩具之後,我又寫了一些程序,比如把一些化合物三維形象投射在屏幕上,並在空間中三個方向旋轉。寫這個的原因是,我化學不行,想像不出來金剛烷到底是什麼鬼樣子,我也不知道為什麼環己烷的鍵角不是120°,簡直要瘋。

也寫了些遊戲,其中最流行的一個叫做打飛豬,飛豬是我們一個同學,有點點胖。最開始彼此不熟的時候大家都叫他菲哥,後來就也不知道發生了什麼。總之打飛豬是這樣一個遊戲:一個豬在屏幕上飛來飛去,屏幕的4X10空間對應了鍵盤的4X10個鍵,按哪個就打哪裡,類似打地鼠,還有一些裝備物品之類的。很簡單,但很多人喜歡。

不過當它流行起來以後,文曲星的所有者們開始拒絕了,他們聯合起來對打飛豬進行了封禁,因為當時玩家們分為野獸流和技術流,其中野獸流的打法就特別毀鍵盤。我也對他們進行了一些勸誡,類似於搞壞了機器還玩個屁之類,但他們真的就是殺紅了眼又心子黑,沒有辦法講道理。後來我只好對遊戲進行了升級,增加了對於準確度的得分加成,從數值上狠狠打壓了野獸派,才勉強贏回一些裝機量。但是好景不長,後來飛豬把我打了。

說到這裡不得不提到跟我一起搞計算機競賽的公孫欠扁,他最近要重新做人,已經把名字改成了理萬機(ri@wanji.li)。當時我們在文曲星遊戲上有很多交流,比如我寫了一個貪吃蛇遊戲,好不容易優化到速度可以快到挑戰正常人類的反應力,過一陣他來給我show他打的分數,我默默看了一陣,問為什麼你的蛇這麼慢,他說哦寫了一個變速齒輪。我心下一驚,再問才發現他在我程序裡面插入了一些空循環。同學,我也寫過文曲星下的FPE,怎麼說也是跟FPE/金山遊俠是類似原理,你加空循環就變速齒輪是幾個意思。

後來有一次他寫了一個磁碟碎片整理程序拿來給我。我開始是拒絕的,說,講真,沒人敢用你寫的程序。他說絕對不會搞壞機器,真的很好用,你試試。但是你不要看源碼。我也不造是出於怎樣的一種心態,居然就答應了。運行那個程序的時候,它就在那裡跑,顯示了一行字:「正在整理磁碟碎片...」,下面還在轉菊花。我就把它放在那裡,想等它跑完看到底搞了什麼幺蛾子,因為文曲星的basic其實並不能做很底層的事,也就改改系統密碼什麼的,其快閃記憶體地址我已爛熟於胸。

然後菊花就一直轉。過了很久還在轉。這時我想,如果是我,我會做什麼事情。那一瞬間就有被雷擊到的感覺,馬上按退出程序,但已經晚了,快閃記憶體裡面被塞了無數空文件,要手動一個個刪。這就是公孫欠扁和他的磁碟碎片整理程序。想到這裡,他猙獰的笑容彷彿在我眼前閃現。


那是一個很冷的冬天。
我給筆記本寫了個加熱模塊,溫暖我的兩個女朋友。

(掩面逃。。。。)


初一的時候,家裡買了一台286。
為了不給姊玩,又說不能設密碼,就寫了一個DOS程序,開機時要在5秒內輸入a至z才能使用。


50贊了,多謝大家。
那我再補一個:當時怎麼在浙大食堂免費吃飯。


原貼如下:
一、怎麼免費使用浙大機房。
93-97我在浙大讀書,喜歡計算機,但那時候的計算機是稀缺資源,教學外的計算機都是收費的。
那個飯都吃不飽的年代,當然沒多餘的錢去買機時。不過這世道沒什麼事情能難道有小聰明的我,沒錢任性,也可以窮橫窮橫的,慢慢我在學校十來個機房都找到了某種可以免費上網的漏洞。
這裡講一個和代碼相關的:
那是機械系的機制專業機房,那個專業是路甬祥發家的專業。這個機房裡用的是novel網路自帶的計費系統,登錄帳號就計時。
當時我用電腦主要是寫代碼(印像中是一個象棋的ai程序)。
在帳號里寫一個bat程序,主要是設置環境變數的。然後利用bc和tc的shell功能,通過這個bat程序調整系統環境變數並自動的logout和login,這樣就可以自由設置帳號的狀態並接近免費的使用系統資源。調整系統變數是因為不調整的話logout出去回來回不來了。
==============================================================
贊足夠多,我可以補一點內容:當時怎麼在浙大食堂免費吃飯。

想俺當年,沒錢任性,窮橫窮橫!

第一次添加內容
二、怎麼在浙大食堂免費吃飯。
經觀察發現:
1、浙大食堂的伺服器在二食堂左邊,每天5點多下班,裡面的管理人員習慣性的下班把伺服器關掉了, 建立這系統的工程師可能是為了穩定性(可能是為了兼容網路不好等出錯情況)實行了容錯。這個時間吃飯的扣款信息會就近記錄,並不會與伺服器校對。
2、浙大食堂是允許外來人員吃飯的,只要一張身份張就可以了。
3、學生撿到身份證,會去校門口借武俠書,然後不還。所以那裡有大量的身份證。
那麼答案就出來了:
1、到校門口低價買個身份證。
2、到浙大用這個身份證辦個飯卡,可以不充錢。
3、在5點多的時候,看其他同學刷卡的時候沒有數額顯示的時候,用這張卡吃飯。
這張卡會在正常工作的時候顯示出一個負值。
我就是偶爾在飯卡里出現負值的時候發現整個所有信息,一直把飯卡吃到負70多塊錢。
因為擔心被處分沒敢一直持續下去。

我畢業之後再去浙大食堂,發現漏洞已經無效了

怎麼大家注意力都到身份證上了。
我寫身份證只是希望流程嚴謹一些。我試的時候用的是自己的卡,金額後來也自己補平了。

這個世界到處是漏洞

想俺當年,沒錢任性,窮橫窮橫!

想了想考試作弊和代碼無關,回頭補一些有意思的破解或程序吧。
三、估計大家對破解有興趣,簡單描述幾個我做過的破解吧。
1、分析家的公式破解
現在所有證券軟體的指標系統都是仿照分析家的,最豐富的技術指標都是分析家的格式。當年我接了任務把它們自動破解掉。
公式文件有分好幾個級別的加密。大體如下信息:
第一重是有Txt格式的
第二重是把txt格的去了有編譯過的
第三重是有密碼把編譯過的都進行了加密。
第一種容易,第二重反編譯一下就可以了。第三重當初還沒來的及破就接別的任務了。前後花了大約一周時間。
2、硬體協議破解
當初三泰(當年是屌絲,現在已上市)和寧波三環合資成立寧波三興,雙方合作不愉快,三泰就直接走人了。用當時的人話說,連片紙都沒留下。我當時剛畢業沒多久,沒人教也沒任何工作經驗。破解了硬體協議,重寫了設備里的程序。
破解方法,通信方式是串口通訊,自己做了一個雙向的監控線,分別接到不同電腦上。
花了好幾周的時間才第一次能夠控制設備。當時的主要卡點是第9位的特殊用法,絕對反常規的。
有事情先寫到這裡了,待補


說個好玩的。

去年上半年,我在背單詞,背累了,就看看知乎調劑一下。第一個回答是去年4月寫的,之後斷斷續續的寫些回答,大多都是一句話,質量也不高,我也不在意贊數和關注數,畢竟都是虛的,消遣而已。

到了去年9月底,我寫了600個左右的回答,贊同數500多,也沒關係。有天,某個答案有了50多個贊同,導致總贊同數超過總答題數,突然覺得那是個歷史性的時刻,差點就截圖保存了。然後就有個想法,要在2014年總贊同數超過1k。

這對很多高關注數的用戶來說,可能只是一天的贊數,但對普通用戶,並不容易。我分析了一下,關鍵在於,

儘早的找到熱門問題,並提供有價值的回答。

有價值的回答,可以提供,但尋找熱門話題並不容易,對普通用戶來說,等我看到的時候,熱度已經過去了。

所以我就寫了個chrome的插件,實時分析有潛力的熱門問題。

這是在知乎全局話題中分析。

這是在我關注的話題中分析。

黃色表示有人回答了問題,綠色表示我還沒看,深藍色表示我看過了,或沒有興趣。前二十個按照熱門程度排序,後邊的按照時間排序。[X] 表示沒有興趣,從統計中刪掉問題,不再追蹤。「Clear Top」意味著,前二十個問題我都沒興趣,全部刪掉,不再出現,換下二十個問題。

結果讓人吃驚,不但達到了我的目標,超過了1k贊,到年底的時候,贊同數已經接近3w,是我預想30倍。而現在,新年過了9天,贊同數已超過5w,我覺得還蠻好玩的。

我曾在這裡說過, 你為什麼喜歡上編程?,編程是最容易習得的超能力,這也是為什麼我喜歡編程吧。

科技改變生活 :)


用C++寫過一個隱形遠程控制程序(暫且這麼稱呼吧),趁我同宿舍的一個胖子下樓打飯時植入的電腦,然後自動遠程給他的電腦彈框換壁紙,比如提示「你是盜版軟體的受害者,請購買正版Windows XP Professional操作系統,否則我們微軟詛咒你吃速食麵沒調料」,或者將他常用的美女壁紙換成比♂利的圖♂片,又或者自動將他的AV小電影換成摔♂跤GV(只是隱藏重命名啦~)。他認真地找遍了任務管理器和C盤,用了N款殺毒軟體試用裝還是找不出本體。
後來他重裝系統了,說知道是我在搗蛋,從看到比♂利和GV視頻的時候就已經開始懷疑。。。


在學校干過不少的壞事情啊。我初中和高中在同一所中學,所以我的作案時間跨度非常大。

  • 初中的時候就暴力破解了學校FTP的密碼,這也是後面各種壞事情的基礎
  • 後來無意間發現學校竟然把學生們的統計資料放在FTP中,毫無保留地抓下來了
  • 學生們的考試成績被我統一追蹤,我能夠很直觀地看到某個考生最近是不是異軍突起得堤防著點兒(好吧,當時我成績還真看得過去,對這方面很重視)
  • 學生們的家庭住址被我拿出來,調用百度地圖的api,做了個學生在整個區的住址分布圖(但是百度地圖對於住址識別率實在太低,2000多名學生,識別成功的不到300)
  • 發現學校系統里學生照片是直接按學號存的url路徑,直接批量下載,對應之前的資料,完全就是一個完整的facebook
  • 基於以上信息,做了一個二分法識別學生的程序。我後來拿去加同校妹紙的QQ,問幾個一般疑問句就識別出對方的身份。(例如:你是不是高二的===&>你是不是理科生====&>你是不是1-8班中的一名學生====&>你們班主任是不是姓陳===&>你是二班的嗎?===&>你的姓氏縮寫是否是CDGLKF之一===&>你是否出生在1995年====&>你是否上次考試的名次介於100-200之間===&>這是不是你的照片===&>你就是羅永鳳,不過學校人很多,分類其實很麻煩,所以一般要15個問題左右確定身份)

可是當時我坐擁這麼好的「大數據」一點壞想法都沒有,甚至連憑藉這個追妹紙的行動都沒有拿出來,還整天想著好好學習,簡直是腦袋被翔塞了!


這個問題我喜歡,作為美邦的用戶,我就是要開發一些奇怪的玩意兒。

1.也許是首個以神經病為題材的中文AVG,地址:逃出青龍山【完結】

2.也許是第一個中文語音吐槽軟體:吐槽大師 on the App Store on iTunes

3.第一款iOS角標軟體,關愛強迫症 on the App Store on iTunes


那是看美劇還需要BT下載的時候,我寫過一個自動下載種子的perl腳本。那個時候我老婆還只是女朋友。我用一台舊電腦裝上utorrent, 一個只能通過命令行操作的BT客戶端幫她下載美劇,不過問題是我經常忘記幫她下載,搞得她想看的時候沒得看,免不了會不開心,而那個時候我沒錢給她買包包,於是只能利用工程師的基本技能,寫個自動化的腳本,把她感興趣的美劇種子第一時間放到utorrent的種子監視目錄,自動下載下來。

具體的思路是這樣的:
1. 從當時最著名的http://mininova.org上面獲得要看的片子的rss鏈接,當時mininova還沒有被FBI端掉,而且給每個電視劇提供一個RSS也是一個很便利的事情。

2. 通過我寫的叫做tv_torrenter.pl的腳本每隔15分鐘抓取一下RSS的內容,通過正則表達式查看是不是有新的episode發布。

3. 如果有新的episode, 並不是立刻下載,而是加到資料庫當中,因為一個episode會有多個種子發布的。等待12個小時,查看這個新的episode,哪個種子的seed最多,選擇seed最多的那個種子進行下載,並且在資料庫當中把這個episode標記為已經下載過,之後如果再發現這個episode新的種子就直接跳過。

4. 後來為了提升看片質量,增加了一個720p優先選擇的選項。就是在12小時之內,選擇720p當中seed最多的那個種子。

隨著在線視頻網站的流行,BT下載已經越來越沒有必要了。而我女朋友也已經成為了我老婆。什麼叫做工程師思維?就是堅信自己的技術可以改變世界。起碼可以改變自己的世界。


曾經因為無聊,把自己宿舍的電風扇拆了,做了一個遊戲方向盤。
軟體主要負責手機畫面和電腦畫面的同步。


我想說說我爸。我爸是一名普通高中的數學老師。在90年代電腦開始出現的時候自學各種知識電腦。我爸那個時候最愛看電腦報,後來我喜歡直接翻到遊戲那個版面 (┌?ω?)┌? 。2000年,我家的組裝機就是我爸在沒通知我媽的情況下花了6千多自己組裝的。賽揚CPU,256內存,16M顯卡,17寸CRT,家裡還有。我媽下班回來發現一個沒見過的小「電視機」,立刻把我爸臭罵了一頓。好在我爸經常搞些「高科技」的產品,我媽也習慣了,反正我媽完全不懂。剛買來的時候我爸義正言辭的說只能用來學習,不能打遊戲。我迫於威嚴還真的用來學office,跟著書上似懂非懂寫寫basic,VB,foxbase什麼什麼的。我想我成為碼農完全是那個時候決定的吧=。=直到有一天晚上,我去書房找我爸。我一直以為我爸在書房關上門是在備課,我一般不打擾我爸備課。你猜開門一瞬間我看到了什麼?不要亂想。我看到我爸在玩遊戲,盟軍敢死隊2。

有沒有覺得很熟悉?
呵呵呵,從此我爸裝不下去了,經常帶回來些遊戲光碟問我玩不玩。後來我覺得我爸是不是在我媽問起的時候可以拿我當擋箭牌?

順便提一下,更小的時候我爸買的小霸王學習機,後來也變成遊戲機了。差不多的情況。
那個時候電腦還很少,學校有會有個位數台電腦,但沒什麼人會用。不到96年的某一天(我家沒搬家,所以時間記得比較清楚),我爸從學校搬回來一台電腦,那是我人生中第一次見到電腦,一台Apple II。那一年我不到8歲,我依然記得那黑白屏幕上流動的字母,以及我找不到的開關。

我爸用它來學Basic。經過刻苦學習,我爸終於學成。有一天,我和爸媽逛商場,有一台展示的電腦,我爸覺得靜止的命令提示符太單調,無法吸引別人,於是順手在上面寫了一個死循環,不停輸出各種長度的「*」,然後深藏功與名,拖著我和我媽消失在人群中。

好像是98年年左右,開始興起全民學電腦高潮,無論什麼考核評職稱等等都要考計算機,公務員,教師,醫生,護士等等等等。我爸不知怎的變成了我們那個鎮上唯一的義務計算機培訓師 ( ⊙╯ ?⊙╯) ,放棄休息時間,給一撥又一撥人培訓怎麼開關機,怎麼用命令行,怎麼打五筆,怎麼用藍底的WPS。

那個時候Windows還很少,基本都是Dos,win95很少,幾年之後Win98才開始普及。
由於被培訓的有很多人年紀略大或者接受新生事物能力比較弱,這些人打字都學不會。於是我爸覺得有必要做點什麼,不能剁手的話就給他們手。於是一個偉大的計劃就這樣誕生了。

大約幾個月過後,有一天我在房間看電視,我爸捧著一疊至少10cm厚的紙進來了。我的房間中間有一塊比較大的空間。我爸把紙放在地上,我才看清是那種兩邊有孔的可以連著打很長很長的紙。

上面印滿了ABCD+-*/=各種符號。然後我爸趴在地上圈圈畫畫。

這個時候我應該是這個狀態,完全不知道我爸在幹什麼。
後來有一天,我又跟著我爸去培訓,其實我只是去坐著的,然後跟著我爸講的一個字母一個字母按就可以了,反正我也不知道我在幹什麼。突然,黑白的屏幕上跳出了一個無言六色的鍵盤,對是在屏幕上。這玩意跟電視機一樣可以有顏色啊!

(這是我在網上找的金山打字通的圖片,我爸做的已經失傳了,反正有也找不到電腦不能運行了。但是效果跟這個真是一樣一樣的。)
後來我才知道這是個學打字的軟體,沒錯,我爸用basic(好像是Qbasic?)寫的,那天我爸趴在地上圈圈畫畫的就是這個東西的代碼。英文,拼音,五筆都有練習,單字片語短文練習,設計合理,UI精美,操作簡單,邏輯清晰,絕對是您步入計算機大門的良師益友。
憑藉這個,我爸的教學速度明顯有了極大提升,培訓完一撥又一撥。後來有了Win98,有了Office,有了……我爸給培訓了好幾年,這個軟體一直非常好用。
我和我爸走在路上隔一會就有人來打招呼「李老師好」,哈哈哈。


先寫個別人的行嗎?

90年代末期,我一師兄,寫了個程序,放到教室里教師機的自動運行里,只干一件事:把插入的U盤裡的所有文件都拷貝到硬碟上。

這個程序的目的本來是應對那些不肯拷貝課件給學生的老師。但結果,期末試卷也一併拿到了……

--------------------------------------------------------

再寫自己的,但是遜爆了。

中國亞馬遜每天有兩本特價的 Kindle 電子書(Kindle今日特價書-Kindle電子書店)。不想每天去刷頁面,就寫了個超級簡單的一行腳本,每天早8點把關鍵信息爬下來,發到我的郵箱。

這個腳本一直在 work。如果你也想收到這個通知郵件,請評論留下郵箱。

自己有條件跑腳本的,請伸手:

wget -qO- "http://t.cn/zYJGEIH" |
grep "table border="0" style="border" -A 11 |
sed "s/href="//href="http://www.amazon.cn//g" |
mail -s "$(echo -e "Kindle今日特價
Content-Type: text/html")" xxx@yyy.com

把「-A 11」里的 11 換成 180,就能同時收到12本每周特價書。


應該是十年前,和大學同學蝸居當蟻族,組隊上浩方打星際2v2。在一個房間的時候,還好挺能相互討論,協同指揮。
後來換了一人一個房間,因為那房子設計很超前,超大的客廳超小的房間。
於是一開打相互喊話(隔了個大客廳)就有點不方便了。

於是我寫了一個控制台小程序。
功能很簡單,按F2 到 F12,會發送一個命令,對方收到後會播放一段本地的小音頻,
比如1,耳機里會聽到我們預先錄製的很猥瑣的聲音,「1點鐘」,意思就是去1點種方向,
依次類推。其中F9其實是」瞎子救命啊「。

當時網速有限,為了流暢的玩遊戲,就算想到要搞個高大上的音頻傳輸程序,說實話水平也不行啊,有這功夫還不如多挑幾把遊戲。


倒是寫過不少比較少見的東西,但是感覺都不太談得上不尋常。

Flash swf 加密器

想當年,搞 swf 反編譯的軟體很多,比如著名的 ASV、SWF Decompiler 等,源代碼分分鐘就被人看去。因為有些數據敏感,必須要保密,這實在是很叫人頭大。於是就花了不少時間研究 swf 格式,結果皇天不負有心人,終於讓我發現一個方法,通過修改 swf 二進位文件的某些位置的數據,就可以達到既能正常跑在 Flash Player 裡面,又能直接把反編譯器干崩潰。

我很快就寫了一個 Windows 程序,叫做 Last Defense,專門用來給自己的 Flash 文件加密。

過了一陣子,我覺得自己獨享有些可惜,於是就放在閃客帝國論壇裡面給大家用,結果,放出來第一天,就有個新加坡的網友做了一個叫做 Last Straw 的軟體來專門破解我的加密方法。

swf 破解不難,因為他隨便做個空文件或者有一定特性的文件,然後分析一下加密後的二進位文件就有可能找到線索,再有針對性的進行修復、還原。我的 Last Defense 還真是一下子抵擋不住。

有趣的是,他其實也是個 Flash 開發者,我們倆還在論壇裡面你一言我一語的交流,他說你這個方法不錯啊,居然這樣也行,我就說你等著我還有別的辦法。

然後我就升級一版放出來,結果第二天他就又升級一版破解放出來,我就再升級……就這樣來來回回大家都升級到了 1.05 版。

然後,兩個人握手言和,誰都不搞了。

Flash MovieClip 替換器

由於有了分析 swf 的基礎,所以又做了好多奇怪的小軟體,比如不需要源代碼自動在任意的 swf 前面插入廣告等等。後來應朋友的要求還做了一個比較實用的 Flash MovieClip 替換器。

這個替換器可以在沒有源代碼的情況下,將 swf 中的 MovieClip 替換成你想要的任意 MovieClip。比如你做了一個遊戲,然後丟了源代碼,現在又想更換角色,這個軟體就很有用了。基於 swf 的彈性結構,插入或者替換都不會影響 swf 的正常使用。因為當時要求只是替換 MovieClip,所以沒做更複雜的功能,其實如果想要的話,替換所有元素都不是問題。這個軟體也算有一點不尋常了吧。

DOS 下的重啟命令

上學的時候,笨重的電腦主機都放在腳下,想重啟還得彎個腰。於是就用彙編寫了一段小程序,其實就是讓系統崩潰。這樣,想要重啟的時候敲一下命令,電腦就重啟了……省了四年的腰……

(補充:我寫完答案也奇怪當時為什麼不手動熱啟動電腦,反正當時總是用命令啟動。可能懶到連三個鈕一起按都不願意吧?:D )

為 PT 站做的一堆管理功能

國內最早一批的 PT 站代碼基本上是源自我修改的一套源碼,但是這套源碼遠遠滿足不了需求,於是,有一個階段我開發了一整套的後台管理工具,用來維護 PT 系統的正常運作。比如:管理員獎金系統、遊戲系統、道具系統、IMDB 數據系統等等……真是浪費了好多青春啊。印象最深的是開發會員的跟蹤系統,單會員多賬號以及單賬號多人使用(還要考慮教育網)判別等等,一旦發現問題就發出警告給管理員們,管理員一旦確認就進行砍殺,在那個時代,簡直就是大數據分析了,應該也算是很不尋常的了吧?哈哈哈。

應該還有一些,我自己都覺得挺奇葩的,但是沒什麼好說的。:D


推薦閱讀:

男性怎樣的行為使你少女心澎湃?
有一個非常漂亮有很多人追的妹妹是種怎樣的體驗?
主動露出腿部假肢上街,是種怎樣的體驗?
中國父母在教育上普遍存在哪些問題?
一句話說你最討厭女生有哪些惡習?

TAG:軟體 | 程序員 | 調查類問題 | 編程 |