一個共享軟體作者的話

longwansheng發表於2010-02-08

轉自 : http://alexclark.itpub.net/post/670/494216

[@more@]

本人與大家一樣,原來只是一個普通的程式設計師,靠給軟體公司打工謀生。後來感覺這樣長期幹下去沒有什麼前途,雖然現在年輕還可以加班加點靠拼身體吃飯,以後年紀大了怎麼辦?聽說很多人自己單幹每年靠共享軟體都可以賺幾十萬,我為什麼就不行?仗著自己技術好,並且當時已經有了成熟軟體的思路,我就辭職出來加入共享軟體這一行當了。

透過半年多的日夜苦幹,軟體終於編出來了。由於我覺得自己的軟體功能比較新穎,程式設計的技術也很好,以為只要一發布就會大家搶著註冊購買,也可以像那些成名的共享軟體作者一樣每月坐拿幾萬元,結果卻是令我想象不到的,在釋出後的第一年,只有1個人註冊,只得到可憐的幾十元。我這下才認識到了軟體推廣的重要性 — 我們作為技術人員,往往是重技術輕營銷,結果是再好的軟體也由於無人知曉而只能孤芳自賞。我這時就有意在網上搜尋軟體推廣方面的文章,國內的資料少就到國外的共享軟體論壇去查,另外還結合自己在實際推廣中的經驗教訓不斷改進自己的推廣技巧,慢慢地在第二年軟體推廣有了初步起色,拿到了一千多元。接連在共享軟體領域摸爬滾打了幾年後,現在終於每月都有近萬元入賬。雖然比起那些共享大牛們來說這點錢還不足掛齒,但自己認為還算不錯了。為了避免程式設計師們重走像我當初的很多彎路,現在把自己的經驗教訓寫出來,給大家在軟體推廣方面一點啟示。

第一、 對軟體本身的要求。

也許大家會覺得奇怪,不是講軟體怎麼推廣嗎?怎麼會講起軟體本身的要求來了呢?

其實一點也不出奇,高樓萬丈在於基礎是否穩固。沒有一個好的軟體產品而去空談什麼推廣,不要說很少有成功的,即使是推廣出去了,客戶拿到手之後也會有受騙上當的感覺,退貨以及退款,再加上對你的軟體的負面宣傳會搞得你焦頭爛額的。

那麼怎麼才算是一款好的軟體呢?首先你的軟體要新穎獨特,要有別的軟體沒有而大家又需要的功能。很多程式設計師常犯的一個毛病是,他們喜歡從自己的技術出發,編自己喜歡編的東西,或者乾脆就是賣弄自己的程式設計技術。其實作為使用者來說,他們不懂也根本不會關心你的軟體中使用了什麼先進的程式設計技術,他們所關心的是這個軟體能給自己帶來什麼有用的東西。有些程式設計師沒有自己的獨特的思路,總是人云亦云,一看到網路上什麼軟體熱門了,馬上就進行仿造,現在不是QQ流行嗎,他也跟著編一個聊天軟體;不是FlashGet很熱門嗎,他也隨著編一個下載軟體。這樣的軟體能銷出去才怪了呢。

在這裡我的經驗是,如果你不知道編什麼樣的軟體才能好銷,你就站在普通電腦使用者的角度來考慮問題。要一切從使用者觀念出發,要從使用者的要求入手,只要是使用者需要的功能,那怕軟體只有這一個功能,只要別人的軟體還沒有包含,你在這裡就有成功的可能。例如周弈的MP3 CD Maker,功能並不複雜,但大家需要這個功能,而當時的很多流行軟體如Nero等並不具有,因此他憑這一點就可以月進上萬美金。

還有就是,軟體本身必須儘可能完美,也就是沒有什麼明顯的Bug。現在有許多人在軟體還沒有經過什麼測試的情況下就急著釋出,結果別人一用到處都是問題,這樣的軟體給使用者的印象很差,只會給軟體造成很大的負面影響。 我的經驗是,軟體編好後至少要經過兩個月的測試。不但是自己要徹底測試,而且要交給你身邊的親戚朋友測試,當然能交給普通的使用者測試就更好了。也許你會說別人會願意這樣做嗎?我的經驗是隻要答應測試完後免費給他們正式版的註冊碼,他們是很樂意為你測試的。

第二、 軟體推廣的常用方法

首先,當然是把你的軟體釋出到大型的軟體下載網站,如華軍軟體園、天空軟體站等,至於那些成百個小型的下載網站嘛,就沒有必要一個一個釋出了。當初我也想在這些小軟體下載站釋出,可很多根本就沒有釋出軟體的頁面。有的給個Email地址就算不錯了(不過我用電子郵件釋出軟體後也像泥牛入海,杳無音信),有的乾脆只有一個QQ號碼。其實據我觀察,只要你在華軍軟體園、天空軟體站等釋出成功,就會有不少軟體下載網站也跟著轉載。這樣也好,省去了我的不少時間。

其次,是要專門為你的軟體建立一個網站。也許你會說,我不是已經把軟體釋出到其他網站了嗎?為什麼自己還要費力去做一個網站。原因很簡單,別人的網站是別人的,你自己必須也要專門有個網站來推廣,同時這個網站也要負責蒐集使用者的資訊反饋等,另外更重要的是:共享軟體重在服務,你還要依靠這個網站來對你的軟體使用者提供技術支援等服務。值得特別要提醒的是,你的網站要做得很專業,要使得使用者進入你的網站後能產生你們有著強的技術能力的印象。千萬不要認為自己是做軟體的,不懂得編網站,就隨便製作一個對付了事。我有個朋友,下載某軟體試用後曾經想購買正式版,可一進入作者的簡陋的網頁,就沒有了購買的慾望。因為你的網站做得差,容易使別人聯想到你的程式設計技術以及服務也差。所以說,差的網站不但不能對你的軟體起到推廣作用,還相反可能把你的潛在客戶趕跑。

其實既然你都能夠編得出軟體,要設計出一個網站也不應該是什麼多難的事,關鍵還是在於你舍不捨得下功夫。如果你實在沒有時間學習編寫網頁,那就花點錢請專門的網頁設計公司幫你製作一個吧。也許你又會說,那我沒有錢怎麼辦。這裡,我叫你一個密招(我輕易不會教給別人的),去大型下載網站下載排名TOP 10之內的軟體的官方網站中找一個最符合你軟體風格的,用Frontpage 把整個網頁照搬下來,把文字及圖片換成你的,而保留原來網站的佈局及CSS樣式,這樣一個專業的軟體推廣網站就誕生了。這一招我在當初也使用過,不過後來自己學習了網站設計方面的知識後,就不斷加以改進完善,早已經比原來的別人的網站都專業多了。

網站有了之後,也不是就萬事大吉了,網站本身也有個推廣的問題。要根據你的軟體,設計一些關鍵字,把這些關鍵字用在你的網站的標題以及網站內容之中,使得別人在用這些關鍵字在GOOGLE等搜尋引擎上搜尋時,能很快找到你的網站。當然,網站的推廣不是我們這裡要討論的話題,你在網路上應該能方便地找到這些資料。如果你能把有關你軟體的關鍵字做到GOOGLE搜尋結果的第一頁,那麼恭喜你,你離成功不遠了。

再次,是有關軟體的廣告宣傳問題。

有人會說了,那很簡單,找一個流量大的網站如新浪、網易,在上面打廣告宣傳不就得了。是啊,如果你每月能付得起幾萬元的廣告費這樣做當然無可厚非。不過如果你每月有幾萬元的收入,我看也就用不著靠共享軟體吃飯了。其實打廣告是很有學問的,不是單單看網站的流量大小,而是要針對你的軟體的潛在使用者的情況來定。關鍵是你要仔細分析來該網站的瀏覽者是什麼樣的人,如果與你軟體的潛在使用者群相同,及時網站的流量不是特別大,你也可以在上面打廣告。這樣你花的錢不多,但正中你的目標使用者,廣告的效果是很好的。

我有個行業應用軟體,一開始在一般的軟體下載站打廣告,但發現效果並不好,因為這些使用者只是來尋找一些常用系統工具軟體的,對我的軟體並不感興趣。後來我發現有個軟體商務網 的瀏覽者與我軟體的使用者群相吻合,就在這個網站上打廣告了。廣告是文字型別的,在網站的“熱銷軟體”欄目中,由於該欄目出現在軟體資訊的所有的頁面中,所以瀏覽量也不少。最主要的是廣告費不貴,每月才100元,廣告發布後效果很不錯。現在也有人在做GOOGLE ADWORDS文字廣告,不過我還沒有試過。

第三、 軟體如何推向海外

你的軟體已經在國內推廣了,還要不要走向海外?回答是肯定的。由於國記憶體在對盜版解密等活動打擊不力的問題,你辛辛苦苦工作出來的勞動成果,給別人破解後可能全部付諸東流。所以在國內防止軟體被破解是一個重大的課題,對付破解的問題我留到下一點再仔細講。而在國外,由於對於盜版以及破解打擊的力度較大,另外使用者的正版意識普遍比國內要高,所以付錢註冊購買的人也相對較多。所以你的軟體在國外推廣是很有必要的。就拿我來說,現在軟體收入的大部分就是來自海外使用者。

在海外推廣軟體的第一步也與國內相類似,也要把軟體提交到大型的軟體下載網站。國外的大型下載網站主要有兩個:一個是 ,另一個是 。與國內軟體站不同的是,在download.com 上釋出軟體是要收費的,每提交一次要收79美金,UPDATE一次也要收79美金。如果你真想把軟體推向海外的話,這筆錢是不能省的。因為 download.com 實在是太熱了,名符其實是全球第一的軟體下載站,如果不在這裡釋出,你會損失一大半的軟體使用者。另一個軟體下載網站 tucows.com 雖然號稱能免費釋出,其實你如果真這樣做的話,你會大失所望的。我有個軟體,一月份就向 tucows.com 提交了,可是到六月份還沒有釋出,進入作者管理介面一查,是在 8340個待審查的軟體中排第 1367 位,可能一兩年後才有可能釋出。後來乾脆花了 59美元“插隊費”,結果沒過兩天就釋出了。

另外,在國外一般都是找一家代理公司幫你收錢,每月定期寄支票給你。代理行業在國外已經是一個很成熟的行業了,不用擔心代理會不給錢你。比較大一點的代理有: 設施最完備的代理,需要開戶費。 免費開戶,據說信譽極好。還有 也是一家不錯的軟體代理公司。 還有 不過據說反映一般。

除了把軟體釋出到這些下載或代理網站之外,你自己也要相應有一個英文網站。如果你的英文不是特別好的話,奉勸你找一個英語特別棒的朋友或乾脆花錢請專業的英語專家翻譯一遍再發布你的網站,否則你的網站不但起不到推廣作用,還會給國外使用者留下很差的印象。

要想軟體推向海外,除了以上介紹的方法之外,重視國外使用者的反饋資訊以及搞好服務也是特別重要的。我有個軟體釋出在 download.com 後,大約過了一個月看到上面有一個評論,把我的軟體評價為最差,並且加了一大堆評語:說他雖然是個捷克人,英語並不是他的母語,卻也發現了我軟體中的英語是terrible English ,充滿了錯拼的單詞,不存在的單詞等;另外軟體開啟以後,介面沒有操作提示,根本不知怎麼使用,功能也不完善;在1024 x 768的解析度下無法滿屏顯示等。總之把我的軟體貶得一無是處,用他的話來說是: Terrible, just terrible。

一開始,我也覺得很灰心喪氣,但後來我仔細一想,何不趁此改正Bug,並升級軟體呢。由於在download.com中找不到評價者的聯絡方式,我就在軟體的註冊者資訊中找到他的Email地址,把我改正過後的軟體電郵給他,並誠懇地請他繼續指正我的錯誤。果然不久他就回復了我的EMAIL,在郵件中他一條一條地指出了我的其他錯誤。我藉此機會進一步更正錯誤並把軟體升級到了2.0 ,使我的軟體上了一個大臺階。總之,重視使用者對你軟體的評價及批評,積極面對使用者的意見,這樣即使是壞事也能變成好事。

另外在國外,是會遇到別人購買你的軟體後覺得不滿意而要求退款的。PayPal以及其他的付款方式都有幾十天內不滿意可以要求退款的條文。對於要求退款的使用者,他如果堅持要退是一定可以退的。所以一般都是根據使用者要求直接就退給他,並告訴他Keep my software as a gift,反正他已拿到註冊碼了,你做什麼都沒用,不如來個順水人情。即使他退完款後又來信要求你提供技術服務,你也要儘可能幫助他。能做到這點你的服務才能算真正到家了。

第四、 如何應對軟體的破解

在國內推廣軟體,你要面對的最大問題莫過於軟體被破解了。很多軟體作者反映說,原來軟體在被破解前交費註冊的人還不少,但被破解後收入就直線下降,連成本都收不回來。您想,有了免費的東西人們還交那個錢幹什麼?

在這裡,我借鑑了一個軟體作者的防破解經驗:發行1.0版時2.0版已經寫的差不多的。發行1.0版時要把1.0版的防破解或者註冊演算法寫的簡單些等著別人去破解。一但出現1.0的破解,等待幾周,這幾周的時間足以使網上1.0的破解版遍天下。然後,分析破解過程更改2.0版演算法(層層加密,複雜再複雜),雖無法根除破解但可以浪費破解者的時間和耐力!一般情況下,在網上一搜你的軟體已經有破解版了(1.0的)新的破解者很少會再去破解,何況2.0版本更復雜些。我的一個軟體用了此法,推出一月後被破解組織破解,公開破解過程及註冊演算法,並做成破解教程。其實破解從某種意義上說是幫我宣傳了軟體。我在一個月後推出早已經寫好的新版本,還註冊成了“特別版”以迷惑想要破解版的人。使用上述方法後至少在我更新了幾次軟體後的今天仍沒出現破解。但在網上搜破解版、特別版、註冊版到處都是,可沒一個是真的。其實一些破解高手只是想試探自己的能力,破解一個軟體後,一般會把目標定在下一個軟體上。不過如果你的軟體成為人手必備的工具,此法怕是不靈了。

另外,從技術上講也有一些防破解的方法。假設你的註冊部分有300行,你可以分成30個inline函式呼叫(一定要inline),func1(),func2()... func30(). 將他們隨意放到程式的各個部分,一定不能放在一起。不要用Memcpy等常用系統呼叫複製註冊碼,儘可能自己寫,像Memcpy很好寫,效能差點無所謂。經過編譯後inline函式展開,註冊部分和其他程式碼混在一起,他要寫出序號產生器就很困難,因為要向在幾十萬甚至上百萬彙編程式碼裡找出有用的註冊部分那簡直就像是在大海里撈針。另外註冊碼也不要放在一起,假設你的註冊碼是12位,千萬不要用一個12位的陣列放註冊碼,你可以在程式的不同位置定義12個全域性字元變數,每個放一位,這樣註冊碼在記憶體就不連續了。最好再加密處理一下(簡單的字元異或就可以),驗證時再解密。只要破解者找不到你驗證結束的地方,暴力和Loader破解也沒有可能。很重要的一點是不要用連續記憶體儲存驗證用到的變數,儘量將用到的驗證臨時變數分散定義在程式的不同處,再在驗證中,不斷轉移一些值到其他變數中,對付暴力和Loader會比較有效。沒有必要用複雜的加密演算法,更容易成為追蹤的目標。只要你將註冊部分隱藏的足夠好,也沒有漏洞,你花1天寫的加密演算法,破解者可能會花100-1000倍的時間破解。大部分人都會放棄。你將註冊做在一起,就像將你的財寶放在現代保險箱裡,雖然非常堅固難以解密,對於開鎖高手兩分鐘就開啟了。對於一些比較專業的破解者採用上面的方法也是很有效的但是,還是要避免一些低階失誤例如:不要在記憶體中直接出現註冊碼和明顯的註冊碼比較部分不要給使用者太多的有關注冊驗證的資訊,也不要接收到註冊碼後立刻就進行比較。在軟體的不同功能處實現驗證時的好處還有就是不會立刻執行到驗證程式碼註冊碼,可以分多次驗證,也可以分成幾部分驗證,還可以分成幾層驗證驗證時,可以儘量多執行一些無用的操作,加上一些象遞迴之類難於除錯追蹤的程式碼,但在其中要穿插實現軟體功能的程式碼,否則人家直接就跳了過去。反正就是越不引人注意越好,亦即越亂越好。

其實要想徹底防止破解也是不現實的,除了研究一下破解方法,在釋出前加殼外,並採用以上所說的方法外,不斷升級程式也是比較好的方法。

總之,推廣軟體對於搞慣了技術的軟體作者來說一開始會走一些彎路,但只要不斷學習成功者的經驗,不斷吸取自己失敗的教訓,你也會成功的。最後,祝大家個個都成為共享高手。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92289/viewspace-1031185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章