wonderer's program

          everything will be better
          posts - 19, comments - 6, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒,該病毒一般屬于木馬(Trojan)病毒,不具備主動傳播的特性,不會自我復制。但是由于其發作的時候會向全網發送偽造的ARP數據包,干擾全網的運行,因此它的危害比一些蠕蟲還要嚴重得多。

          二、ARP病毒發作時的現象

          網絡掉線,但網絡連接正常,內網的部分PC機不能上網,或者所有電腦不能上網,無法打開網頁或打開網頁慢,局域網時斷時續并且網速較慢等。

          三、ARP病毒原理

          3.1 網絡模型簡介

          眾所周知,按照OSI (Open Systems Interconnection Reference Model 開放系統互聯參考模型) 的觀點,可將網絡系統劃分為7層結構,每一個層次上運行著不同的協議和服務,并且上下層之間互相配合,完成網絡數據交換的功能,如圖1:

          1106901

          圖1 OSI網絡體系模型

          然而,OSI的模型僅僅是一個參考模型,并不是實際網絡中應用的模型。實際上應用最廣泛的商用網絡模型即TCP/IP體系模型,將網絡劃分為四層,每一個層次上也運行著不同的協議和服務,如圖2。

          1106903

          圖2 TCP/IP四層體系模型及其配套協議

          上圖中,藍色字體表示該層的名稱,綠色字表示運行在該層上的協議。由圖2可見,我們即將要討論的ARP協議,就是工作在網際層上的協議。

          3.2 ARP協議簡介


          我們大家都知道,在局域網中,一臺主機要和另一臺主機進行通信,必須要知道目標主機 的IP地址,但是最終負責在局域網中傳送數據的網卡等物理設備是不識別IP地址的,只能識別其硬件地址即MAC地址。MAC地址是48位的,通常表示為 12個16進制數,每2個16進制數之間用“-”或者冒號隔開,如:00-0B-2F-13-1A-11就是一個MAC地址。每一塊網卡都有其全球唯一的 MAC地址,網卡之間發送數據,只能根據對方網卡的MAC地址進行發送,這時就需要一個將高層數據包中的IP地址轉換成低層MAC地址的協議,而這個重要 的任務將由ARP協議完成。

          ARP全稱為Address Resolution Protocol,地址解析協議。所謂“地址解析”就是主機在發送數據包前將目標主機IP地址轉換成目標主機MAC地址的過程。ARP協議的基本功能就是 通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。 這時就涉及到一個問題,一個局域網中的電腦少則幾臺,多則上百臺,這么多的電腦之間,如何能準確的記住對方電腦網卡的MAC地址,以便數據的發送呢?這就 涉及到了另外一個概念,ARP緩存表。在局域網的任何一臺主機中,都有一個ARP緩存表,該表中保存這網絡中各個電腦的IP地址和MAC地址的對照關系。 當這臺主機向同局域網中另外的主機發送數據的時候,會根據ARP緩存表里的對應關系進行發送。

          下面,我們用一個模擬的局域網環境,來說明ARP欺騙的過程。

          3.3 ARP欺騙過程


          假設一個只有三臺電腦組成的局域網,該局域網由交換機(Switch)連接。其中一 個電腦名叫A,代表攻擊方;一臺電腦叫S,代表源主機,即發送數據的電腦;令一臺電腦名叫D,代表目的主機,即接收數據的電腦。這三臺電腦的IP地址分別 為192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分別為MAC_A,MAC_S,MAC_D。其網絡拓撲環境如圖 3。

          1106905

          圖3 網絡拓撲

          現在,S電腦要給D電腦發送數據了,在S電腦內部,上層的TCP和UDP的數據包已經傳送到 了最底層的網絡接口層,數據包即將要發送出去,但這時還不知道目的主機D電腦的MAC地址MAC_D。這時候,S電腦要先查詢自身的ARP緩存表,查看里 面是否有192.168.0.4這臺電腦的MAC地址,如果有,那很好辦,就將 封裝在數據包的外面。直接發送出去即可。如果沒有,這時S電腦要向全網絡發送一個ARP廣播包,大聲詢問:“我的IP是192.168.0.3,硬件地址 是MAC_S,我想知道IP地址為192.168.0.4的主機的硬件地址是多少?” 這時,全網絡的電腦都收到該ARP廣播包了,包括A電腦和D電腦。A電腦一看其要查詢的IP地址不是自己的,就將該數據包丟棄不予理會。而D電腦一看IP 地址是自己的,則回答S電腦:“我的IP地址是192.168.0.4,我的硬件地址是MAC_D”需要注意的是,這條信息是單獨回答的,即D電腦單獨向 S電腦發送的,并非剛才的廣播。現在S電腦已經知道目的電腦D的MAC地址了,它可以將要發送的數據包上貼上目的地址MAC_D,發送出去了。同時它還會 動態更新自身的ARP緩存表,將192.168.0.4-MAC_D這一條記錄添加進去,這樣,等S電腦下次再給D電腦發送數據的時候,就不用大聲詢問發 送ARP廣播包了。這就是正常情況下的數據包發送過程。

          這樣的機制看上去很完美,似乎整個局域網也天下太平,相安無事。但是,上述數據發 送機制有一個致命的缺陷,即它是建立在對局域網中電腦全部信任的基礎上的,也就是說它的假設前提是:無論局域網中那臺電腦,其發送的ARP數據包都是正確 的。那么這樣就很危險了!因為局域網中并非所有的電腦都安分守己,往往有非法者的存在。比如在上述數據發送中,當S電腦向全網詢問“我想知道IP地址為 192.168.0.4的主機的硬件地址是多少?”后,D電腦也回應了自己的正確MAC地址。但是當此時,一向沉默寡言的A電腦也回話了:“我的IP地址 是192.168.0.4,我的硬件地址是MAC_A” ,注意,此時它竟然冒充自己是D電腦的IP地址,而MAC地址竟然寫成自己的!由于A電腦不停地發送這樣的應答數據包,本來S電腦的ARP緩存表中已經保 存了正確的記錄:192.168.0.4-MAC_D,但是由于A電腦的不停應答,這時S電腦并不知道A電腦發送的數據包是偽造的,導致S電腦又重新動態 更新自身的ARP緩存表,這回記錄成:192.168.0.4-MAC_A,很顯然,這是一個錯誤的記錄(這步也叫ARP緩存表中毒),這樣就導致以后凡 是S電腦要發送給D電腦,也就是IP地址為192.168.0.4這臺主機的數據,都將會發送給MAC地址為MAC_A的主機,這樣,在光天化日之下,A 電腦竟然劫持了由S電腦發送給D電腦的數據!這就是ARP欺騙的過程。

          如果A這臺電腦再做的“過分”一些,它不冒充D電腦,而是冒充網關,那后果會怎么 樣呢?我們大家都知道,如果一個局域網中的電腦要連接外網,也就是登陸互聯網的時候,都要經過局域網中的網關轉發一下,所有收發的數據都要先經過網關,再 由網關發向互聯網。在局域網中,網關的IP地址一般為192.168.0.1。如果A這臺電腦向全網不停的發送ARP欺騙廣播,大聲說:“我的IP地址是 192.168.0.1,我的硬件地址是MAC_A”這時局域網中的其它電腦并沒有察覺到什么,因為局域網通信的前提條件是信任任何電腦發送的ARP廣播 包。這樣局域網中的其它電腦都會更新自身的ARP緩存表,記錄下192.168.0.1-MAC_A這樣的記錄,這樣,當它們發送給網關,也就是IP地址 為192.168.0.1這臺電腦的數據,結果都會發送到MAC_A這臺電腦中!這樣,A電腦就將會監聽整個局域網發送給互聯網的數據包!

          實際上,這種病毒早就出現過,這就是ARP地址欺騙類病毒。一些傳奇木馬 (Trojan/PSW.LMir)具有這樣的特性,該木馬一般通過傳奇外掛、網頁木馬等方式使局域網中的某臺電腦中毒,這樣中毒電腦便可嗅探到整個局域 網發送的所有數據包,該木馬破解了《傳奇》游戲的數據包加密算法,通過截獲局域網中的數據包,分析數據包中的用戶隱私信息,盜取用戶的游戲帳號和密碼。在 解析這些封包之后,再將它們發送到真正的網關。這樣的病毒有一個令網吧游戲玩家聞之色變的名字:“傳奇網吧殺手” !

          四、ARP病毒新的表現形式


          由于現在的網絡游戲數據包在發送過程中,均已采用了強悍的加密算法,因此這類ARP 病毒在解密數據包的時候遇到了很大的難度。現在又新出現了一種ARP病毒,與以前的一樣的是,該類ARP病毒也是向全網發送偽造的ARP欺騙廣播,自身偽 裝成網關。但區別是,它著重的不是對網絡游戲數據包的解密,而是對于HTTP請求訪問的修改。

          HTTP是應用層的協議,主要是用于WEB網頁訪問。還是以上面的局域網環境舉 例,如果局域網中一臺電腦S要請求某個網站頁面,如想請求www.sina.com.cn這個網頁,這臺電腦會先向網關發送HTTP請求,說:“我想登陸 www.sina.com.cn網頁,請你將這個網頁下載下來,并發送給我。”這樣,網關就會將www.sina.com.cn頁面下載下來,并發送給S 電腦。這時,如果A這臺電腦通過向全網發送偽造的ARP欺騙廣播,自身偽裝成網關,成為一臺ARP中毒電腦的話,這樣當S電腦請求WEB網頁時,A電腦先 是“好心好意”地將這個頁面下載下來,然后發送給S電腦,但是它在返回給S電腦時,會向其中插入惡意網址連接!該惡意網址連接會利用MS06-014和 MS07-017等多種系統漏洞,向S電腦種植木馬病毒!同樣,如果D電腦也是請求WEB頁面訪問,A電腦同樣也會給D電腦返回帶毒的網頁,這樣,如果一 個局域網中存在這樣的ARP病毒電腦的話,頃刻間,整個網段的電腦將會全部中毒!淪為黑客手中的僵尸電腦!

          案例:


          某企業用戶反映,其內部局域網用戶無論訪問那個網站,KV殺毒軟件均報病毒:Exploit.ANIfile.o 。

          在經過對該局域網分析之后,發現該局域網中有ARP病毒電腦導致其它電腦訪問網頁 時,返回的網頁帶毒,并且該帶毒網頁通過MS06-014和MS07-017漏洞給電腦植入一個木馬下載器,而該木馬下載器又會下載10多個惡性網游木 馬,可以盜取包括魔獸世界,傳奇世界,征途,夢幻西游,邊鋒游戲在內的多款網絡游戲的帳號和密碼,對網絡游戲玩家的游戲裝備造成了極大的損失。被ARP病 毒電腦篡改的網頁如圖4。

          1108133

          圖4 被ARP病毒插入的惡意網址連接

          從圖4中可以看出,局域網中存在這樣的ARP病毒電腦之后,其它客戶機無論訪問什么網頁,當返回該網頁時,都會被插入一條惡意網址連接,如果用戶沒有打過相應的系統補丁,就會感染木馬病毒。

          五、ARP病毒電腦的定位方法


          下面,又有了一個新的課題擺在我們面前:如何能夠快速檢測定位出局域網中的ARP病毒電腦?

          面對著局域網中成百臺電腦,一個一個地檢測顯然不是好辦法。其實我們只要利用ARP 病毒的基本原理:發送偽造的ARP欺騙廣播,中毒電腦自身偽裝成網關的特性,就可以快速鎖定中毒電腦。可以設想用程序來實現以下功能:在網絡正常的時候, 牢牢記住正確網關的IP地址和MAC地址,并且實時監控著來自全網的ARP數據包,當發現有某個ARP數據包廣播,其IP地址是正確網關的IP地址,但是 其MAC地址竟然是其它電腦的MAC地址的時候,這時,無疑是發生了ARP欺騙。對此可疑MAC地址報警,在根據網絡正常時候的IP-MAC地址對照表查 詢該電腦,定位出其IP地址,這樣就定位出中毒電腦了。下面詳細說一下幾種不同的檢測ARP中毒電腦的方法。

          5.1 命令行法


          這種方法比較簡便,不利用第三方工具,利用系統自帶的ARP命令即可完成。上文已經 說過,當局域網中發生ARP欺騙的時候,ARP病毒電腦會向全網不停地發送ARP欺騙廣播,這時局域網中的其它電腦就會動態更新自身的ARP緩存表,將網 關的MAC地址記錄成ARP病毒電腦的MAC地址,這時候我們只要在其它受影響的電腦中查詢一下當前網關的MAC地址,就知道中毒電腦的MAC地址了,查 詢命令為 ARP -a,需要在cmd命令提示行下輸入。輸入后的返回信息如下:

          Internet Address      Physical Address        Type

          192.168.0.1 00-50-56-e6-49-56 dynamic

          這時,由于這個電腦的ARP表是錯誤的記錄,因此,該MAC地址不是真正網關的MAC地址, 而是中毒電腦的MAC地址!這時,再根據網絡正常時,全網的IP—MAC地址對照表,查找中毒電腦的IP地址就可以了。由此可見,在網絡正常的時候,保存 一個全網電腦的IP—MAC地址對照表是多么的重要。可以使用nbtscan 工具掃描全網段的IP地址和MAC地址,保存下來,以備后用。

          5.2 工具軟件法


          現在網上有很多ARP病毒定位工具,其中做得較好的是Anti ARP Sniffer(現在已更名為ARP防火墻),下面我就演示一下使用Anti ARP Sniffer這個工具軟件來定位ARP中毒電腦。

          首先打開Anti ARP Sniffer 軟件,輸入網關的IP地址之后,再點擊紅色框內的“枚舉MAC”按鈕,即可獲得正確網關的MAC地址,如圖5。

          1109953

          圖5 輸入網關IP地址后,枚舉MAC

          接著點擊“自動保護”按鈕,即可保護當前網卡與網關的正常通信。如圖6。

          1109955

          圖6 點擊自動保護按鈕

          當局域網中存在ARP欺騙時,該數據包會被Anti ARP Sniffer記錄,該軟件會以氣泡的形式報警。如圖7。

          1109957

          圖7 Anti ARP Sniffer 的攔截記錄

          這時,我們再根據欺騙機的MAC地址,對比查找全網的IP-MAC地址對照表,即可快速定位出中毒電腦。

          5.3 Sniffer 抓包嗅探法

          當局域網中有ARP病毒欺騙時,往往伴隨著大量的ARP欺騙廣播數據包,這時,流量檢測機制應該能夠很好的檢測出網絡的異常舉動,此時Ethereal 這樣的抓包工具就能派上用場。如圖8。

          1109959

          圖8 用Ethereal抓包工具定位出ARP中毒電腦

          從圖8中的紅色框內的信息可以看出,192.168.0.109 這臺電腦正向全網發送大量的ARP廣播包,一般的講,局域網中有電腦發送ARP廣播包的情況是存在的,但是如果不停的大量發送,就很可疑了。而這臺192.168.0.109 電腦正是一個ARP中毒電腦。

          以上三種方法有時需要結合使用,互相印證,這樣可以快速準確的將ARP中毒電腦定位出來。

          七、ARP病毒的網絡免疫措施


          由于ARP病毒的種種網絡特性,可以采用一些技術手段進行網絡中ARP病毒欺騙數據包免疫。即便網絡中有ARP中毒電腦,在發送欺騙的ARP數據包,其它電腦也不會修改自身的ARP緩存表,數據包始終發送給正確的網關,用的比較多的辦法是“雙向綁定法” 。

          雙向綁定法,顧名思義,就是要在兩端綁定IP-MAC地址,其中一端是在路由器中, 把所有PC的IP-MAC輸入到一個靜態表中,這叫路由器IP-MAC綁定。令一端是局域網中的每個客戶機,在客戶端設置網關的靜態ARP信息,這叫PC 機IP-MAC綁定。客戶機中的設置方法如下:

          新建記事本,輸入如下命令:

          arp -d
          arp -s 192.168.0.1 00-e0-4c-8c-9a-47

          其中,“arp –d” 命令是清空當前的ARP緩存表,而“arp -s 192.168.0.1 00-e0-4c-8c-9a-47 ”命令則是將正確網關的IP地址和MAC地址綁定起來,將這個批處理文件放到系統的啟動目錄中,可以實現每次開機自運行,這一步叫做“固化arp表” 。

          “雙向綁定法”一般在網吧里面應用的居多。

          除此之外,很多交換機和路由器廠商也推出了各自的防御ARP病毒的軟硬產品,如:華 為的H3C AR 18-6X 系列全千兆以太網路由器就可以實現局域網中的ARP病毒免疫,該路由器提供MAC和IP地址綁定功能,可以根據用戶的配置,在特定的IP地址和MAC地址 之間形成關聯關系。對于聲稱從這個IP地址發送的報文,如果其MAC地址不是指定關系對中的地址,路由器將予以丟棄,是避免IP地址假冒攻擊的一種方式。

          八、ARP病毒KV解決方案

          針對ARP病毒日益猖獗的情況,江民科技推出了整體解決方案:

          1.KV殺毒軟件每周7天不間斷升級病毒庫,單機版網絡版同步升級,實時攔截來自網絡上的各種ARP病毒。

          2.針對局域網用戶,建議統一部署KV網絡版殺毒軟件,KV網絡版具有全網統一升級病毒庫,統一全網殺毒的強大功能,可以徹底查殺來自局域網中的ARP病毒。

          3.“KV未知病毒掃描”功能可以識別出絕大多數ARP病毒,KV未知病毒掃描程序采用獨特的行為判定技術,可以徹底檢測出本機中已知和未知的ARP病毒,協助網絡管理員快速清除ARP病毒。

          4.特針對企業用戶,提供“ARP病毒應急響應服務” ,江民科技網絡安全工程師可以上門處理企業用戶內網中的ARP病毒,確保快速恢復企業網絡的數據通訊安全。

          5.KV新版防火墻特增加了ARP病毒防御功能,可以攔截來自局域網中的ARP欺騙數據包,保護本機聯網安全。設置界面如圖11。

          1112749

          圖11 KV新版防火墻增加了ARP攻擊防護功能

          KV新版防火墻增加了ARP攻擊防護功能,該功能使用方法也很簡單,安裝完KV防火墻之后, 點擊“設置”按鈕,然后勾選“啟用攻擊防護功能” ,再點擊“自動檢測本機網絡設置” ,程序就會自動獲得本機和網關的IP地址和MAC地址,然后點擊確定即可。KV防火墻就會實時檢測來自網絡中的ARP數據包,發現有異常的數據包欺騙,就 會予以攔截,保障本機網絡通信安全。

          九、關于ARP病毒的網絡安全建議

          1.在網絡正常時候保存好全網的IP—MAC地址對照表,這樣在查找ARP中毒電腦時很方便。

          2.都全網的電腦都打上MS06-014和MS07-017這兩個補丁,包括所有的客戶端和服務器,以免感染網頁木馬。

          3.部署網絡流量檢測設備,時刻監視全網的ARP廣播包,查看其MAC地址是否正確。

          4.做好IP—MAC地址的綁定工作,對于從這個IP地址發送的報文,如果其MAC地址不是指定關系對中的地址,予以丟棄。

          5.部署網絡版的殺毒軟件,定期升級病毒庫,定期全網殺毒。

          posted @ 2007-06-22 21:11 wonderer 閱讀(278) | 評論 (0)編輯 收藏

          找到SQLServer的安裝目錄,我的是"E:\Program Files\Microsoft SQL Server",在Binn里找到文件"sqlservr.exe",就可以查看版本了。

          image

          以下是版本號的對照:

          SQL Server Versions
          @Version SQL Server Version Released
          6.50.201 SQL Server 6.5 RTM
          6.50.213 SQL Server 6.5 with Service Pack 1
          6.50.240 SQL Server 6.5 with Service Pack 2
          6.50.258 SQL Server 6.5 with Service Pack 3
          6.50.281 SQL Server 6.5 with Service Pack 4
          6.50.415 SQL Server 6.5 with Service Pack 5
          6.50.416 SQL Server 6.5 with Service Pack 5a
          7.00.623 SQL Server 7.0 / MSDE 1.0 RTM
          7.00.699 SQL Server 7.0 SP1 July 1999
          7.00.842 SQL Server 7.0 SP2 March 20th, 2000
          7.00.961 SQL Server 7.0 SP3 December 15th, 2000
          7.00.1063 SQL Server 7.0 SP4
          8.00.194 SQL Server 2000 RTM
          8.00.384 SQL Server 2000 SP1
          8.00.534 SQL Server 2000 SP2 November 30th, 2001
          8.00.760 SQL Server 2000 SP3
          8.00.2039 SQL Server 2000 SP4

          posted @ 2007-06-02 21:53 wonderer 閱讀(1712) | 評論 (0)編輯 收藏

          在subversion的配置文件 svnserve.con 中,默認的配置都說的很清楚。可是在配置的時候,卻沒有看清楚。一天,一個小組的成員說他檢出他項目的時候可以不輸入密碼的,但是項目的源碼卻不可以對外公開的。于是,才發覺到這個問題。

          后來發現問題出現在

          anon-access = read

          這里,配置文件里說的很清楚的

          ### These options control access to the repository for unauthenticated
          ### and authenticated users. Valid values are "write", "read",
          ### and "none". The sample settings below are the defaults.
          #anon-access = read
          #auth-access = write

          默認的是匿名可讀的,現只要添加

          anon-access = none

          就可以了

          posted @ 2007-04-16 21:40 wonderer 閱讀(218) | 評論 (0)編輯 收藏

          自瀆文件

          Exceclsior JET for windows
          v4.5
          請先閱讀我
          * 大致瀏覽

          -JET 優化
          -JET 運行
          -安裝工具包
          *系統需求

          *快速開始

          *界面工具

          -Excelsior JET Launcher
          -JET 控制面板
          -jetPackII
          -JET 安裝
          -開發者資源

          *大概
          Excelsior JET 是一套完全為了優化運行的工具包,是用java編程語言寫的可配置和可運行的程序.
          Excelsior JET 產品包括了 JET優化程序,是一個完全的 java SE 5.0 的運行和安裝程序工具包.
          JET 優化程序能夠將你的 class格式或者jar格式的文件轉化成 開發者的x86(IA-32)的機器碼.這樣,
          您就能夠得到windows或者Linux的運行效果極好的原生代碼.
          另外,產生的原生代碼具有高度的反編譯和反修改能力.
          JET運行程序包括了sun公司的java2 API的許可并同時提供了所有java的特性,例如垃圾回收機制(garbage colletion).
          JET 優化程序和運行程序保證在java標準版本5.0(j2sdk 5.0)下正常運行.
          如果你想要把你的應用程序分發給一定數量的用戶,你可以使用安裝工具包來準備一個包括已經優化過的程序和一個JET Excelsior的運行引擎.您的客戶就可以簡單地安裝這個包就可以開始使用您的程序.一些多余的軟件的安裝,例如JRE,不是最終客戶的系統的必須.

          JET 優化程序
          ------------
          JET優化程序會在程序開始運行之前把java的.class文件和.jar文件轉換成開發者系統的高效的本地代碼,直接運行在硬件上.
          優化程序使用了很多很普遍使用在傳統C/C++和FORTRAN編譯器里的優化技巧.為了解決java的執行效率問題,JET優化程序是注入使用了內嵌虛擬方法,安全可移除普遍存在的同步和棧里分配對象的優雅的(state-of-the art)優化來做出來的.

          你可以在JET的控制面板上來用優化程序,一個圖形界面的向導的,為了你更快地建立您的項目文件和轉換你的程序為高效的可執行程序(請參考下面"圖形界面工具"的環節)

          JET運行時間(runtime不知道是不是這樣翻譯)
          --------------------------------------
          JET運行環境是一個徹底的java虛擬機.但有一點特別,它包括了一個即時編譯器(JIT)來裝載和運行標準的java字節碼文件.和其他虛擬機的關鍵的分別是JET運行環境可以同時工作在java的字節碼文件和JET優化程序產生的原生文件.例如,一個JET編譯的程序(.exe)可以裝載以.jar形式的文件為java插件程序.

          如果你使用的程序是使用插件的,裝載它們回耗費一些時間.為了減少這些時間,你可以在JET運行時間里打開你的JIT緩存.這樣一來,用JIT編譯器產生的原生代碼就會保留在JIT的緩存力并會在后來的程序啟動時重新使用.欲知詳情,請參考JET用戶指南的"混合編譯模塊"("mixed compilation model").

          包裝程序包
          ---------

          為了提供快速的包裝程序,Excelsior JET包括了包裝程序(JetPackII),也是一個圖形向導.通過它,你可以準備一個包括你的優化的java程序和一個JET的運行時間.

          基本的部署程序都是盡量簡單的.這個產生的包,例如,一個本身包括了目錄,能復制到目標系統.一個在沒有解壓環境都能點擊就運行的系統.你可以簡單的整合這些包為任何一個安裝程序(NSIS和InstallShield或其他).

          包裝程序能直接產生一個自解壓的安裝程序.也就是說,用它產生的安裝程序,既可以是無人值的安裝,也可以是GUI界面的安裝.

          在GUI模式下,安裝程序會通過安裝過程處理允許用戶來指定諸如目文件夾,快捷鍵,開始菜單等等的安裝設置.你也可以把安裝界面設置成一個飛出的窗口,用戶協議和把安裝程序顯示為英語,德語,法語,俄羅斯語或者日本語,看你的喜好和系統的當地設置.欲知詳情,請參考JET用戶指南的"開發自動設置"("Deployment automation" ).

          請把你的回執提交到java@excelsior-usa.com.

          系統要求
          操作系統:
          windows版本的Excelsior JET 4.5已經在以下系統通過了JCK(Java SE compliance)的測試:
          Windows 2000 Professional,
          Windows 2000 Server,
          Windows 2003 Server,
          Windows XP Professional

          CPU: Intel Pentium III或800MHZ同等級或更高

          內存: 384或以上

          硬盤空間: 420MB以上

          ------------------------------------------------------------------------------------------
          詳細清單在以下網址:

          http://www.excelsior-usa.com/jetsysreq.html

          posted @ 2007-03-31 16:25 wonderer 閱讀(394) | 評論 (0)編輯 收藏

          把 Borland Turbo c 的源代碼移植到GNU gcc

          內容
          TurboC 的大概內容
          TurboC為何而生??
          其他方法(Alternate Approaches, 不知道是不是這樣翻譯)
          TurboC的特點與不足
          下載和安裝TurboC
          未來的計劃
          為什么要用這么可愛的logo呢?

          TurboC的大概內容

          TurboC是一個可連接的庫同時也是一大堆C語言的頭文件,是為了更容易地在GNU gcc,也就是在類Unix系統上,編譯那些用原來在Turbo C編譯器編譯的MS-DOS系統的C語言的源文件,概括如下:
          通過Turbo C的conio.x里的ncurses的實現
          通過Turbo C的graphics.h里的Xlib的實現
          一些其他的函數和為了方便的節省時間的特征
          一種克服了Turbo C和GUN gcc的整型數據類型差異的方法
          但不管怎么說,這也不是一個完美的解決方案,但是你會發現它還是有用的.你可以在它相關的早期的發展階段找到graphics.h的幫助.
          TurboC遵于GNU的LGPL協議(Lesser General Public License).

          TurboC為何而生??

          我寫過很多基于MS-DOS的用Borland公司的Turbo C 2.0編譯器編譯的程序.當由于愛好的原因,我想把其中一些代碼以自由軟件的形式存在,我便想到了把這些代碼發布在GPL下,是MS-DOS的代碼,慢慢的把它們轉換成類Unix系統的代碼.很明顯,預先直接的去轉換(MS-DOS--> *nix)是一件很耗時的工作.而且漸漸的,我遇到了困難,因為發布一個別人無法理解其源代碼的的軟件并不是一件好事.而我最喜歡的發布開源的頻道fleshmeat不"吃"MS-DOS,因此它很文雅的拒絕了我的MS-DOS項目.
          很顯然,現在的需要是更底層的,然后我就想到了我可以提供合適兼容的Turbo C的庫和頭文件,這樣,把Turbo C的源碼引到類Unix系統就會簡單得多.也就是說,提供舊版本的MS-DOS的類Unix版本是一件相對容易很多的事情.但究竟這個容易去到哪兒,跟你要引進的程序的很多東西都有關.

          其他方法(Alternate Approaches, 不知道是不是這樣翻譯)

          對于conio.h的功能,你可以考慮使用pablo Vidal的UConio的庫來代替.但是我沒有使用過,所以無法說出其好長與不足,不過它肯定提供比TurboC提供一個少得多的Conio的功能的子集.而且它也會要求你更大范圍的修改你的源代碼.
          Borland公司已經有了(或許會提供)一個Linux版本的C++編譯器,這樣的話,它的nature,價格和這個編譯器的目標工作平臺將是一個謎.一種假設(象Kylix)就是它將基于wine的,所以它只可以工作在x86的系統上面.但是,如果它包括了在TurboC上實現的庫,那樣,老實說,他提供了一種更簡單的的方法來把你Turbo C的源代碼引入到Linux上,但如果這樣的話,它將會是非常龐大的.對我自己來說,盡管已經是一個很久的borland公司的用戶了,但我還是非常希望用GNU gcc來編譯我的程序.
          對于graphics.h的功能,有一個Csaba Biegl, Michael Goffioul, and Hartmut Schirmer的GRX庫.直到graphics.h的功能還有一點還沒寫完的時候,我才發現了這個庫,因此我還沒來得及很充分的測試它.它的目標是要成為一個多平臺的2D圖像庫.它的官網沒有宣傳(甚至沒有提到)與Turbo C的兼容性.然而,它只包括了非常少量的與Turbo C同名(當然還有相同功能)的功能.
          當然,如果你只是感興趣在類Unix系統上運行你的程序,同時也反對把其他程序引到類Unix系統上,那你也可以在linux版本的DOS emulators 下運行你已經存在的程序.DOS emulation使用了 dosemu 和 freedos ,在x86系統上工作得非常好,同時 bochs 和 freedos在非x86類Unix系統上工作的也不錯(但可能有點慢).

          TurboC的特點與不足

          特點
          TurboC 提供了Turbo C的conio.h頭文件控制臺的大部分功能,與相關的ncurses的功能一一對應.(當然,除了scanf之外的conio.h的功能都有提供)
          TurboC提供了Turbo C的graphics.h頭文件"BGI"的大部分功能.到目前為止(2002 06 08),除了臨時缺乏stroked-font的支持,這些特點的實現已經完成的很徹底了.
          TurboC提供了這些丟失的功能諸如strupr和strlwr的功能的很少的東西,
          請確認可提供的方法的完整列表:

          不足
          請參考bugs和issues的完整列表.到目前為止,這個庫文件只是我在特定的我寫的Turbo C的程序所需要的那么完整,隨著我引入的我以前的程序到類Unix 系統的多起來,TurboC的庫大概才會愈來愈完整.到目前為止,本質上conio.h的支持已經完整了,除了顯示文本外,graphics.h的支持也本質上完整了.
          在已經引進的程序里,除非你使用了xterm,要不然文本控制臺的窗口指揮邏輯上自動調好尺寸,并不會physically地去調整.如果你用了諸如KDE控制臺之類的其他控制臺,用戶必須人為地去調整了.
          Borland的Turbo C是16位的編譯器,但是我目標的GNU gcc編譯器是32位的,結果產生了整型的數據類型的差異.TurboC用宏的方法處理了(但愿)更普遍的情況.沒有處理的情況會在編譯的時候報錯,用戶必須手動去修改.在用戶的頁面會被詳細介紹.
          用基于諸如 getcha, cprintf或其他的控制臺來混合基于流的功能(如 getchar, printf,其他),很可能會不工作.你也可以瀏覽usage page.

          下載并安裝TurboC
          下載源代碼
          *Most-current development code (20040218) TurboC-dev.tar.gz
          20020602 snapshot TurboC-20020602.tar.gz
          20020419 snapshot TurboC-20020419.tar.gz
          20020418 snapshot TurboC-20020418.tar.gz
          20020323 snapshot TurboC-20020323.tar.gz
          20020317 snapshot TurboC-20020317.tar.gz
          20020312 snapshot TurboC-20020312.tar.gz

          tarball里包括了一個教TurboC-source的文件夾,你可以簡單的在這個目錄下用make來編譯庫.但必須是GNU gcc或者用gmake(例如在FreeBSD或Mac下)來編譯(提示,在FreeGSD下,你要編輯makefile和注釋/反注釋開頭的若干行,你會很容易看到的),我已經檢驗了最近釋出的snapshot(不是開發者的snapshot)并在以下系統測試了程序:
          Linux Intel 'x86 (SuSE 8.0)
          Linux PowerPC (SuSE 7.3)
          FreeBSD (4.5)
          (早期的TurboC的庫好像在FreeBSD上工作的效果不怎么好,請升級到20020420的版本,并且在運行引入的程序的時候按照下面的步驟).最近釋出的snapshot只在SuSE8.2上測試過.
          把這個庫(libTurboC.a and libTurboCu.a)放在你系統放庫的地方--通常在 /usr/lib.把所有的頭文件放到它應該放的地方--通常是 /usr/include.又或者,你也可以添加它們的鏈接到這些目錄.又或者,把它們放到你喜歡的地方,然后在gcc里用參數 -L和-I來連接它們.
          在我的系統,我是這么做的.
          cd ~
          tar -xzvf TurboC-dev.tar.gz
          cd TurboC-source
          ... 編輯FreeBSD的makefile ...
          make (or gmake)
          su
          ln -s *.h /usr/include
          ln -s libTurboC.a /usr/lib
          exit
          你會發現(例如,在FreeBSD)如果你在你引入的程序力#include了TurboC的頭文件,你的編譯器會報錯:標識符鏈接太深(symbolic links being "too deep").如果是這樣的話,你可以把上邊的ln命令的參數"-s"去掉.
          另外,編譯Makefile當然會假定X-window系統的頭文件和庫;如果這個假定是錯的話,你就要你的編譯器加上參數"-L"和/或者"-I"來調整.X-window系統必須編譯全部的庫,或者你要運行你的程序,如果你要用到graphics.h的功能.如果你不打算使用這些功能,你可以通過編輯Makefile和去掉編譯器參數的"-DWITH_X"在沒有X的系統上引入和編譯你的程序.

          未來的計劃

          嗯,很明顯這種項目是沒什么前途的,它的計劃只不過是從一個古老的編譯器里引入它的代碼.然而,我還是會在我這個項目里根據需要增加一些特性的.我不會浪費精力去寫一些沒有在我Turbo C程序力出現過的功能的,但如果你自己已經寫了而又告訴了我,我是很樂意加進去的(把榮辱加給你).
          當然,很希望你能把TurboC的bug返回給我,(當然在這之前,去看看Buglist有沒有這個問題),我會盡力去改正它們的.

          為什么要用這么可愛的logo呢?

          這是一幅姐妹在談話的圖片,畫家Lynn Rothan的杰作.我試圖表達的意思是,它表現了很相似的c編譯器 Borland Turbo C和GUN gcc的關系.當然拉,lynn有他自己的意思.請參考他的網站.

          posted @ 2007-03-31 16:23 wonderer 閱讀(1431) | 評論 (1)編輯 收藏

          Getting start with Derby

          version 10.2
          來自http://db.apache.org/derby
          翻譯by wonderer http://www.aygfsteel.com/wonderer

          內容

          版權收有
          Derby的介紹
          部署選項
          系統要求
          Derby的庫
          安裝并且用Derby來工作
          安裝Derby
          設置你的環境變量
          使用Derby工具和啟動系列工具
          使用工具 sysinfo
          運行 ij
          設置類路徑(classpath)
          有經驗的JDBC用戶的快速指南
          Derby能運行的環境
          嵌入式的環境
          客戶/服務端的環境
          能用的驅動器
          數據庫連接URL
          文檔協定
          術語
          SQL語法
          技術協定

          Derby的庫和腳本:全部參考目錄
          Derby提供的庫
          不是由Derby提供的庫
          Derby已有的腳本

          商標

          版權所有
          我翻譯技術文檔,這個就不翻譯了, ^<>^

          Derby的介紹
          歡迎來到Derby的世界,Derby是一個基于Java(TM)和SQL的關系數據庫管理系統(RDBMS),這一部分是介紹 Derby的.
          部署選項
          你可以用很多不同的方法來部署Derby
          你部署的選項包括:
          -單用戶嵌入式的java應用程序.因為不需要管理并同時可以工作跟應用程序工作在同一個虛擬機 上,Derby對于最終用戶可以說是幾乎透明的.
          -多用戶的嵌入式程序,例如網絡服務器,一個應用程序服務器,或一個共享的開放環境.
          -服務器框架的嵌入式.你可以用網絡客戶端驅動器或者服務端驅動器,以使用網絡服務.

          系統要求
          Derby是一個完全用java開發的數據庫引擎.它可以運行在任意一個Java虛擬機里(JVM).

          Derby的庫
          Derby的庫包括了Derby指南和API參考
          Derby開發者指南
          描述了Derby對所有部署的共同的功能和特征,例如Derby的JDBC和SQL的細節,部署Derby應用程序,安全, 和其他高級特性.

          Derby參考指南
          指明了Derby是集成了SQL語言的.同時也提供了Derby的JDBC和JTA執行,關鍵字,系統表,屬性,和SQL異常 的參考信息.
          調較Derby
          介紹了怎樣通過屬性來配置和調較Derby,并提供了屬性的參考信息.同時也提供了性能提示,一個性能的 深入討論,一個Derby最優化的信息.

          Derby工具指南
          一個用derby工具(例如ij,和其他一些如import/export更高級的工具,和數據庫類裝載器)來工作的指

          Derby服務器和管理指南
          這個指南的第一部分討論了配置服務器,怎樣來編客戶端程序,和數據庫的管理.
          另外,一些系統可能需要例如備份數據庫這樣的管理.這些任務依賴于一些服務器框架,但也是單獨的多 用戶的大型系統.

          指南的第二部分討論了如備份和調試死鎖的管理問題.

          Derby API 文檔
          有所有Derby公開類文件自動產生.(沒有提供JDBC的API). 如果要更詳細的信息,請參考Derby參考指南.

          安裝并且用Derby來工作
          如果你是一個Derby和JDBC的新手,這一部分會幫助你使用這個產品.如果你是一個有經驗的JDBC程序員, 請看有經驗的JDBC用戶的快速指南.

          安裝Derby
          要安裝Derby,你必須先從Derby的網站下載Derby的zip或者tar包.
          用你的瀏覽器輸入以下網址http://db.apache.org/derby/derby_downloads.html 這個下載頁面提供了若干個Derby的發行版本,包括了版本快照和穩定版本二進制發行版本.你也可以找到教你用subversion來獲得最新源碼的信息.

          發行版本有:
          --二進制發行版包括了代碼,示例程序和文檔.已經優化了的jar文檔在lib目錄下
          --lib發行版本包括了優化程序,部署Derby的最小jar的集合.
          --lib-debug發行版本包括了調試Derby和報告問題的有用的最大集合.
          --src發行版本包括了要來產生上面三個發行版的源文件.

          這個指南假定你會下載二進制發行版的.
          解壓下載的包,之后有以下幾個子目錄:
          --demo包括了示例程序
          --bin包括了運行和設置環境的代碼
          --javadoc包括了有源代碼生產的aip文檔
          --doc包括了Derby文檔
          --lib包括了Derby的jar文件

          設置你的環境變量

          posted @ 2007-03-31 16:20 wonderer 閱讀(1087) | 評論 (0)編輯 收藏

          剛才電腦怪怪的,以前就老師抱怨這個殺毒軟件不行,于是下了個新版的mac,居然還不用付錢,只用郵箱注冊個賬號就ok.于是一裝,殺了不少毒,激動之余,心理有一點涼涼的感覺.等我再打開qq,不妥,怎么彈出個打開方式?再試試其他程序,還是這個打開方式,不覺心理打了個寒顫(以前我們班的女生遇到這個問題,"請"我幫她解決,我什么都沒說,就塞個啟動盤,重裝....._)我不是這么想不開,要重裝吧,汗一個......

          在網上搜了一下,居然搜到了結果,試了一下.天啊,我的exe啊,終于回來了.哇哈哈,人品好啊!

          現把解決方法記下,下次不用這么怕:

          這個問題一般是由于病毒引起的文件關聯被修改。

          可修改注冊表解決:

          1. 先將Windows目錄下的注冊表編輯器“Regedit.exe”改為“Regedit.com”, 然后運行它,依次找到HKEY_CLASSES_ROOT\exefile\shell\open\command, 雙擊“默認”字符串,將其數值改為“"%1" %*”就可以了。
          2. 另外也可以在DOS(有改名為cmd)下運行“ftype exefile=%1 %*”或“assoc .exe=exefile”命令 也可以恢復EXE文件的關聯

          posted @ 2007-03-31 16:13 wonderer 閱讀(204) | 評論 (0)編輯 收藏

          實驗室最近裝了個subversion的服務器,操作系統采用了ubuntu server,沒有安裝desktop,鬼叫老師才給個128的內存。一路安裝過來,非常順利。

              sudo apt-get subversion

          然后就可以用svnadmin create project來創建項目了。之后修改passwd和svnserve.cnf文件都沒有什么難度。不過發現ubuntu server沒有redhat的chkconf指令(不過我也不懂這個指令是怎樣工作的)。嘗試過在/etc/init.d/rc3.d/里做鏈接。不過不成功,可能是我的文件鏈接有問題,找遍了ubuntu論壇,沒有找到答案。最后,只能通過/etc/rc.local來達到我的目的了。

          rc.local在是系統啟動后就執行,也就是說你沒有登陸前就執行了

          rc.local腳本只是一個在各運行級別里到rc.d目錄的rc.local腳本的軟鏈接而已,編號最大,所以被rc腳本執行時在各運行級別的初始化末尾進行。
          在rc.local里設置的最好是系統級別而非用戶級別的,因為啟動腳本的初始化與用戶無關(啟動腳本初始化完成后,才進入用戶登錄界面)。與用戶相關的最好設置shell的配置文件如~/.bash_profile

          posted @ 2007-03-31 16:05 wonderer 閱讀(1459) | 評論 (0)編輯 收藏

          前幾天,blogspot又被封了。媽的,偌大一個google,居然會遇到這樣的問題。天啊,我只是想找個地方記記我的工作心得而已。

          既然如此,算,想找msn space,又看不爽它那么大的一條廣告,我暈,幸好blogjava對writer的支持得很好,而且我這里的速度也還可以,于是決定在這了。

          暈。

          posted @ 2007-03-31 14:35 wonderer 閱讀(127) | 評論 (0)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 名山县| 平昌县| 双鸭山市| 兰考县| 色达县| 江都市| 聂荣县| 友谊县| 镇巴县| 客服| 嫩江县| 麻城市| 东至县| 江源县| 诸暨市| 朝阳县| 垣曲县| 志丹县| 皋兰县| 兴宁市| 肇东市| 阿勒泰市| 蓬溪县| 盱眙县| 门头沟区| 屯门区| 淮阳县| 天水市| 伊吾县| 定安县| 大厂| 铜山县| 新郑市| 平利县| 苏尼特右旗| 大荔县| 新竹市| 乐都县| 花莲市| 平凉市| 文成县|