跳到主要內容

發表文章

目前顯示的是 2008的文章

可以在ORACLE使用PL/SQL發送MSN訊息?

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > 我好久沒碰RDBMS了,主要是因為我覺得殺雞焉用牛刀?這幾年我都使用檔案系統來處理資料,不過在此之前;我幾乎摸過了市面上各式各樣的RDBMS,當然也包括ORACLE,以前我們常使用ORACLE的trigger 或是store procedure 來處理一些事務,所以;我還沒忘記,ORACLE 內有一個很好用的利器UTL_HTTP Package,這裡有一個範例: http://www.oracle.com/technology/sample_code/tech/pl_sql/htdocs/x/Utl_Http_Package_Enhancements/Cr_Using_Utl_Http.htm 事實上只要利用這個Package,我們就能直接使用triger配合 URL_HTTP 直接線上呼叫msnSDK 發送msn訊息,這個連結也一併給您參考 http://rd-program.blogspot.com/2008/12/msn_18.html 您可以參考這個簡易的範例知道怎麼透過http protocol發送msn訊息 抱歉!我因為太久沒直接碰oracle,手邊也沒有伺服器可用,所以沒辦法直接給出範例,不過我相信過這個描述你們自己一定做的出這個範例,如果有人做出範例;願意讓我知道的話在麻煩您給我一個連結,我會請其他有興趣的人直接去讀您的大作囉... 當然;我同時也相信oracle 現在應該已經有soap 這類的package,因為;我在使用oracle的那段時光,soap尚未成為標準,所以沒有接觸過,否則;有能直接使用這類的package操作msnSDK,不只ORACLE,MSSQL也能透過呼叫外部的ACTIVEX 來做同樣的事...

如何直接使用瀏覽器發送MSN訊息

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > 使用瀏覽器就能對MSN發送訊息 使用程式運用msnSDK傳遞MSN訊息真的很簡單,這個例子我們直接使用瀏覽器來發送MSN訊息,現在要找到一種語言不支援這些介面還真不容易(msnSDK支援ADO/CGI/SOAP 三種介面) -------------- STEP 1: 首先要使用msnSDK 發送訊息,必須取得使用SDK權限 --------------------------------------------------------------- http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=apiblogt7&PASSWD=msnsdkt 瀏覽器得到回應(SPID 是一個隨機碼) 1\tSPID 或是 0\t失敗原因 比如: (請注意! 5M9AzR700NWZbbAf 會一直變動,而一旦通過認證這個SPID 可使用6個小時不需重複取用SPID,過期再取即可) 1 5M9AzR700NWZbbAf -------------- STEP 2: 邀請聯絡人,我想大家都知道,要透過MSN發送訊息,得要對方是我們自己的聯絡人,要特別注意的是XXXXXXXX@hotmail.com得要是真正的MSN地址,因為發送MSN訊息時,得要對方再線上(範例是這樣使用,不過;msnSDK本身可以自動判斷對方是否再線上決定是否發送離線訊息...這需要參考文件,可自行下載文件) --------------------------------------------------------------- http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=REGISTER&UIDS=XXXXXXXX@hotmail.com&SESSION=5M9AzR700NWZbbAf 瀏覽器得到回應 1\t成功訊息 或是 0\t失敗原因 < > -------------- STEP 3: 發送訊息給XXXXXXXX@hotmail.com (這必須要是真的MSN帳號,且這個帳號必須

半分鐘搞定msn機器人互動式選單

msnSDK訊息控制開發套件,可支援訊息雙向傳遞;如您非程式開發人員,卻又有訊息雙向傳遞的需求,即可採用如下的作法,輕鬆達成簡易的需求。 Step1:安裝msnSDK訊息控制開發套件後,您可先至目錄msdSDKMenu。 開啟help.lst PS,上述項目為既有範例,使用者可依據需求進行編輯。 開啟MSN,與MSN機器人的對話中,鍵入『?』或『#help』並Enter,出現如下的對話訊息。 Step2:於主選單增加一筆對話資訊 編輯help.lst,並存檔 與MSN機器人的對話中,再度鍵入『?』或『#help』並Enter。 Step3:編輯互動內容 至目錄msdSDKMenu下新增一目錄,目錄名稱需對應先前於主選單help所增加的指令字串,本例為『#mp』;建議直接複製預設的目錄如『#showndown』(此目錄內的其他檔案需一併複製),完成後將之更名即可。 可編輯目錄下的help.lst 編輯action.lst以呈現互動的結果 與MSN機器人的對話中,『#mp』並Enter。 如msn出現的說明,鍵入任意文字即出現回應訊息。 上述步驟即為簡易的訊息雙向傳遞, 此方法也支援直接直接取用url 資源 http://url....?msn=$msn_passport$&參數=$ARGVS[0]$ 如配合原先企業或單位內已撰寫好的網頁或資料庫,不僅可成為單位內重要的訊息查閱管道更是KM整合的一大利器,而衍伸用法可達成不同以往的『單一簽入』型態及解決方案。

MSNC:File transfer 拒絕檔案傳送的程序

讀了相關資訊也從google 找資料,但是對 MSNSLP(P2P protocol)的描述多半語焉不詳,尤其是File Transfer,或許是自己的理解能力不好,只得自己SNIFFER,以下是整個拒絕檔案傳送的過程,試了一下;已正常可運行,我順便參考查看了某個msn的函式,發現他的做法不對;反而會造成client 不斷的請求(INVITE) ps.以下相關msn帳號為測試帳號,並不會用來接收資訊 ====Recv==== MSG xue.luke@hotmail.com ?? 1344\r\n MIME-Version: 1.0\r\n Content-Type: application/x-msnmsgrp2p\r\n P2P-Dest: luke0@livemail.tw\r\n \r\n (00-00-00-00) (EF-64-8B-13) (00-00-00-00-00-00-00-00) (2C-05-00-00-00-00-00-00) (B2-04-00-00) (00-00-00-00) (3C-75-7B-23) (00-00-00-00) (00-00-00-00-00-00-00-00) INVITE MSNMSGR:luke0@livemail.tw MSNSLP/1.0\r\n To: \r\n From: \r\n Via: MSNSLP/1.0/TLP ;branch={9D589759-6F32-4136-BE3C-6CA353A20907}\r\n CSeq: 0 \r\n Call-ID: {8673FEF1-6E96-449D-AF21-8AD10E58630C}\r\n Max-Forwards: 0\r\n Content-Type: application/x-msnmsgr-sessionreqbody\r\n Content-Length: 989\r\n \r\n EUF-GUID: {5D3E02AB-6190-11D3-BBBB-00C04F795683}\r\n SessionID: 662509335\r\n SChannelState: 0\r\n Capabilities-Flags: 1\r\n AppID: 2\r\n Context: fgIAAAMAAAACAAAAAAAAAAEAAABiA

3分鐘學會使用程式發送msn訊息, ASP篇(六)

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 ASP 的範例我們使用ADO介面來處理,其他語言也可以這樣做,可參考文件(文末提供下載處),另外;下面的程式碼重要的部份只有參數不同,其他大同小異,可參考紅字部分 ps.也請參考 msnSDK的使用流程 (抱歉!太久沒碰ASP,不過基本上;下面這個範例可正確發送MSN訊息) <% '-- ' ---STEP1 取得API 使用權限 '-- on error resume next Set xmlHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") '如果遇到中文,請使用Server.URLEncode 來處理 '比如 : ...&pname=Server.URLEncode("中文姓名")&... URL= "http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=apiblogt6&PASSWD=msnsdkt&RETTYPE=ADO" xmlHTTP.open "GET", URL, false xmlHTTP.send() if err.description <>"" then Set xmlHTTP= Nothing response.write "無法連接遠端伺服器," & err.description response.end end if '-- '將得到的訊息存入 myRS_....xml '-- set myStream = Server.CreateObject("ADODB.Stream") myStream.Open myStream.Charset = "big5" myStream.W

關於msnSDK 使用上的問題,特此說明

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3056858&SiteID=14 這篇文章有提到關於msnSDK 產品使用的問題,因為個人疏忽沒有特別提出這個問題,特此說明 API 使用權限的帳號密碼,直接寫在範例程式裡,所以;個人使用確實是免費的,而此API 同時支援MSN/YAHOO即時通,如果有需要使用非程式範例內的帳號密碼,也可以跟我索取(sonet.all@gmail.com),至少以上這些都是免費提供使用,文件也可以自行參考下載,個人使用與商業版功能完全一致;沒有差異,唯一的差異是商業版會安裝在購買的使用者機器上,且依照販售合約提供相關維護保固...,而個人使用則不提供這些服務或保證

3分鐘學會使用程式發送msn訊息, VB6.0篇(五)

---電子發票整合應用方案--- < imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 VB6.0 的範例我們使用ADO介面來處理,其他語言也可以這樣做,可參考文件(文末提供下載處),另外;下面的程式碼重要的部份只有參數不同,其他大同小異,可參考 紅字部分 ps.也請參考 msnSDK的使用流程 ================================ Dim RS As New ADODB.Recordset Dim URL As String Dim Session As String '授權碼 '取得API 的使用權利 Private Sub GETSPID_Click() Dim RET As String On Error GoTo ErrHandle 'API 連接位置 URL = "http://59.120.234.84:8082/msnSDK/msn_cgi-win32" 'apiblogt5/msnsdkt 取得API 使用權限的帳號/密碼 RS.Open URL & "?FUNC=GETSPID&USERID=apiblogt5&PASSWD=msnsdkt&RETTYPE=ADO" Do While Not (RS.EOF) '查詢回應 'RS(0) 0 認證失敗 1認證成功 'RS(1) 失敗傳回 失敗原因 / 成功傳回 SESSION ' If (RS(0) = 0) Then MsgBox "認證失敗,無法使用API" Else '取得認證授權使用API '授權碼 Session = RS(1) End If RS.MoveNext Loop RS.Close Exit Sub ErrHandle: MsgBox "無法連接伺服器,或是參數不正確" End Sub 

MSN機器人開發套件 demo篇

MSN機器人開發套件影片,msnSDK本身可以同時支援MSN/YAHOO即時通,影片中for MSN的字樣指的是這個影片展示的是MSN部分,另外這個影片沒有展示與msn互動的部份,msnSDK本身能夠做到MSN/YAHOO互動雙向訊息的應用;若有公司企業欲洽談合作,不論合作方式的大或小,可洽 sonet.all@gmail.com http://tw.youtube.com/watch?v=hbQ1Va_IqzM

3分鐘學會使用程式發送msn訊息, Perl篇(四)

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 perl 的範例我們使用soap 介面來處理,其他語言也可以這樣做,可參考文件(文末提供下載處) wsdl位置:http://59.120.234.84:8082/msnSDK/genwsdl-win32 ps.也請參考 msnSDK的使用流程 ================================ #!/usr/bin/perl use SOAP::Lite; #取得使用api 的權限 sub setspid { my $session_ret=SOAP::Lite->uri('http://59.120.234.84:8082/MSN') ->proxy('http://59.120.234.84:8082/msnSDK/msn_soap-win32') ->GETSPID('apiblogt4','msnsdkt')->result; my ($code,$session)=split("\t",$session_ret); $session=~tr/\r\n //d; return $session; } #註冊聯絡人 sub register { my $sret= setspid(); my $session_ret=SOAP::Lite->uri('http://59.120.234.84:8082/MSN') ->proxy('http://59.120.234.84:8082/msnSDK/msn_soap-win32') ->REGISTER('要加入聯絡人的msn/yahoo帳號',$sret)->result; print $session_ret; } #傳送訊息 sub sendmsg { my $sret= setspid(); my $msg_ret = SOAP::Lite->ur

msnSDK的使用流程說明

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > 3分鐘學會使用程式發送系列文章所使用的流程 STEP1: 取得SPID: GETSPID請參考各種語言所使用的帳號/密碼(每篇文章的程式碼內有),取得SPID以取得使用API 的權力 STEP2: 註冊聯絡人: 要發訊息給別人,需要先讓他成為聯絡人,因此這必須要是合法聯絡人(msn/yahoo帳號),而此時這個帳號會收到邀請通知(請見下圖) STEP3: 傳送MSN/YAHOO訊息: SENDMSG(uids傳遞訊息的目的MSN/YAHOO帳號,msg欲傳遞的訊息內容,encoding傳遞的訊息中文編碼(utf-8/big5/gbk/gb2312),flags 0 對方離線則不送訊息 1對方離線則訊息是否傳送由系統決定,session GETSPIS得到的session值) msnSDK擁有非常多的FUNCTION,也包含互動式的機器人選單,其他功能可參考 msnSDK訊息控制開發套件程式介面說明書

3分鐘學會使用程式發送msn訊息, Java篇(三)

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 ps.也請參考 msnSDK的使用流程 ================================ public class clsMsnSDK { public static void main(String[] args) throws Exception { String UserName = "apiblogt3"; String Password = "msnsdkt"; //取得SPID String strRet = GETSPID(UserName,Password); String[]tmp = strRet.split("1\t"); String strValue = tmp[1].replace('\n',' ').trim(); String SPID = strValue; System.out.println(SPID); //註冊聯絡人 String Email = "xxxxx@hotmail.com"; //填入msn/yahoo聯絡人,勿使用這個預設值 String ret = Register(Email,SPID); System.out.println(ret); //發訊息 String strMsg = "Hello_World!"; //輸入訊息 (未做 Url EnCoded) String MsgRet = SendMsg(Email,strMsg,SPID); System.out.println(MsgRet); } //取得SPID public static String GETSPID(String UserName,String Password) throws Exception { String strUrl = "http://59.120.2

3分鐘學會使用程式發送msn訊息,dotNet C#篇(二)

---電子發票整合方案 http://rd-program.blogspot.com/2012/03/blog-post.html --- < imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 ps.也請參考 msnSDK的使用流程 ================================ 全域的物件及變數 WebClient wc = new WebClient(); string SPID = ""; 步驟一:取得SPID(GETSPID) private void button1_Click(object sender, EventArgs e) { string url="http://59.120.234.84:8082/msnSDK/msn_cgi-win32"; string method="POST"; string postdata = "FUNC=GETSPID&USERID=apiblogt2&PASSWD=msnsdkt"; byte[] postbyte=Encoding.UTF8.GetBytes(postdata); byte[] resb = wc.UploadData(url, method, postbyte); string resmsg = Encoding.UTF8.GetString(resb); resmsg = resmsg.Replace("\n", ""); string[] arrstr = resmsg.Split('\t'); if (arrstr[0] == "1") { SPID = arrstr[1]; MessageBox.Show("取得SPID成功: SPID= " + SPID); } else { SPID = ""; MessageBox.Show(&

3分鐘學會使用程式發送msn訊息,php篇(一)

---電子發票整合方案 http:// rd-program.blogspot.com/ 2012/03/blog-post.html --- < imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 ps.也請參考 msnSDK的使用流程 ================================ 步驟一:取得api 使用的權限(GETSPID) $file="http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=apiblogt1&PASSWD=msnsdkt" ; $myArray=''; $mySession=''; $myResult=''; $getline=''; if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($getline = fgets($fp, 4096)) { $myArray=explode("\t",$getline); $myResult=$myArray[0]; $mySession= $myArray[1]; } fclose($fp); if ($myResult=="0") { echo "get session fail... "; exit(); } else { //$_SESSION["mySession"]= $mySession; echo "get session=".$mySession." "; } echo "<a href='REGISTER.php?uids=".$_GET["uids&

msnSDK 釋出支援YAHOO即時通的版本

msnSDK 經過適當的改寫後,已支援Yahoo 即時通 1.新增/刪除 聯絡人的處理 2.發送訊息 3.查詢暱稱 4.查詢個人資訊 5.傳送震動訊息 6.傳送離線訊息 Yahoo 再收送資訊的部份與既有MSN 使用不同的指令;但在msnSDK 裡,機器人會自動判斷發送的對象是使用哪種IM,所以使用同一個函式名稱不需變換 請參考其他相關文章 msnSDK文件下載 http://rd-program.blogspot.com/2008/10/msnsdk.html

MSNP16 與MSNP15 的差異

MSNP16 與MSNP15 唯一的差異 USR 4 SSO S t=...&p=xxx {MACHINE_GUID} 其中 MACHINE_GUID 可以是任何 32bytes 的16進制亂數,這大概是為了要讓MSN 可以在不同位置重複登入所設計,就像是XMPP 中的(jid)uid@domain/resource類似

msnSDK 文件

msnSDK ( http://tcmail.program.com.tw/image/msnSDKV1.0.1.pdf )主要的功能就是把一些常用的MSN 功能做成一些API,讓外部的程式可以簡單的應用它來開發相關應用程式,目前;msnSDK支援4種程式介面, 1.SOAP 2.CGI 3.ADO (這三種API的功能相同) 4.CGI-Steam 這個介面主要是處理從msn client 到msnSDK 之間的訊息以及線上狀況的資訊傳遞,歡迎需要測試功能的人或是有應用需求的各行各業先進與我聯繫(sonet.all@gmail.com) 備註:msnSDK 本身有unix/linux/win32 版本 v1.0.2 已釋出: msnSDK v1.0.2 文件釋出 v1.0.3 已釋出: msnSDK v1.0.3 文件釋出 不分版本(最新): msnSDK 不分版本(最新)文件

如何成為一位傑出的工程師一文讀後感

這篇文章 值得一讀,但是;讀完後我們要怎麼再思考咀嚼成為自己的血肉? 我覺得 why很重要,而why not也很重要,文中提到: 成就傑出表現的原因並不在他們擁有什麼 ,而在於他們如何應用他們所擁有的特質。傑出表現之謎其實在於如何將他們的天分轉換成生產力:就好像將位能轉換成動能一樣。我們的結論是:傑出的表現是努力得來的,與天份無關。(Stars are made, not born.) 那麼這句話自相矛盾的嚴重!沒有天份,就無法將天份轉換成生產力,所以;傑出表現的原因在他需要先擁有天份,才能轉換/應用 特質,結論應該是;傑出的表現是因為有了天份,才能靠後天努力得來,那麼就與天份有關,不是嗎? 這篇文章反應的只是一些特例,也就是說他的研究對象是那些已經在這個領域有充足天份的人,以這些人為基礎來做這個研究,成員結構與一般的公司大相逕庭,所以他的結論應該是;如果你對xx領域已有天份,還需要靠後天的努力才能成為傑出的工程師,於是乎那種天生的宿命論仍然主導一個工程師的傑出不傑出,不是嗎? --- 電子發票系統建置  http://rd-program.blogspot.com/2012/03/blog-post.html  ---

抱歉!我並不希望你們假日來公司加班

親愛的夥伴,我最敬愛的摯友;我不知道你們多久會來看我的Blog;或是根本不會來,但是我還是想說一些心裡的話,今天我到公司看到大家認真加班,每個人不求加薪在星期假日到公司來趕工作,那種熱情;我本該由衷感激,不過;抱歉!我必須說:我並不希望你們假日來公司加班,因為加班只是效率不佳與無法準確估算時程最佳寫照,雖然;我不是你們每個人的主管,不過我必須跟你們說:這類的加班是錯誤的,不管對公司對個人來說,都損耗了最大的成本,而且;個人也不相信趕工出來的東西;品質能夠得到任何的保障 不過我應該更精確的說明我的想法,我所指的是沒有按照計畫行事而因為要交付客戶產品時程趕不及所需要的加班,這一連兩個禮拜,我看到這種狀況真的是搖頭連連,如果我自己知道;我所要購買的產品不是按部就班完成,而是透過加班的手段來達成目標,那我會毫不遲疑的退貨,理由無他;因為工作沒有按照例行計畫施行來完成,在每個流程裡的工作者都無法確實估算他的工作流程所需時間;且無法提出保證,這代表了生產品質也面臨相同的問題->不夠精確且無法提出證明,那麼;我們該為這種例外管理上的趕工喝采嗎? 值得商榷...真正有效的管理計畫,應該要包含很多變異的因素,所以計畫本身就要包含變化,才能將不確定的因素降到最低,如此才能使經營成本得到精確的估算,保障企業經營的穩定成長,如果我們遇到的每個問題都是不確定的,那我們要如何保障股東與客戶的權益,替他們提供確實可行的願景? 公司假日仍在公司的比率,我應該數一數二,且每天從事工作相關的事務直到am 1:00,但是我絕對不願意把絲毫的時間浪費在這種無法保證自己工作效率的事務上,我寧願假日到公司心情輕鬆自在的讀我想讀的技術文件,我情願熬夜去探討怎麼寫程式會比較好或怎麼把程式更有效率的完成且如何兼顧避免錯誤的發生,如果興趣就是programming,如果因為興趣而工作需要不停的工作,那是個人選擇,除此之外;抱歉!我只能說,這種補償過錯式的加班,不值得稱許 如果;你們認同我的想法,應該深自思考甚至開會檢討,這兩個星期我們是為什麼加班? 沒準時的理由是什麼? 該怎麼改善這些缺點? 是誰沒準時把東西交出來? 是誰說哪天要給而沒給? 是不是要提早先把工作完成? 我有沒有事先提醒我的夥伴該完成那些工作? 在遇到問題時我有積極向上反應嗎? 該不該獎勵 把準時 把品質 當成第一要務的夥伴? 這樣才真的有把問題

msn 疑似有一個bug

因為自己在摸索msn protocol,發現msn 在做聯絡人的地方有一個bug,當第一次把某個人加入聯絡人(且對方也核准)後,雙方如果都刪除彼此(沒封鎖聯絡人,但同時刪除hotmail聯絡人);當任一方要再訂閱對方,而有拒絕過一次後,對方從此不會再收到訂閱的通知,但自己卻可以訂閱對方為聯絡人且看到對方的線上資訊,這情況跟gtalk很類似,看來;大家在實作這個程序時都留下了一些缺憾 ps.這問題並不是msn client的bug,因為msn server確實沒有傳送ADL 指令;通知對方有人請求加入聯絡人 另外; msn 裡的顯示歌曲資訊會佔用不必要頻寬,msn client勾選這個項目後,似乎每幾秒就會送出UBX 指令給所有的聯絡人,不知道當一個團體很大(數千人,而且每個人都開啟這個功能,且彼此為聯絡人)又同在相同網域下的時候,是不是有可能造成網路嚴重的負擔

msnp15 認證過程(I)

使用別人開發好的msn sdk來開發程式;真的能夠滿足你對技術的慾望嗎?以下為msn protocol v15的認證過程,msnp15大致上延續前一版的協定,但是在認證的部份改了,目前msn server 已支援msnp16,而現階段最新的msn client (msn v8.1)還在使用msnp15,要到msn v9才會開始全面支援msnp16 直接從msn protocol著手的主要理由是~這樣,才能將msn 移植到非win32的平台上,否則;微軟本身也有釋出msn sdk,它的缺點是;只能依附在有安裝msn client 的win32上,就這一點來說;msn 的政策還相當封閉,因為每次protocol升級;認證的部份幾乎都有更動,這也是從protocol著手來應用msn 最大的麻煩,不過從追蹤 撰寫msn protocol,可以學到不少東西可說是額外的收穫,msn protocol在技術上跟xmpp真的很大的落差,msn protocol顯得格外凌亂設計不良,既不結構化也談不上功能上的彈性,看起來像是非資訊背景的工程師做出來的系統,我相信當msn與yahoo在談im整合時一定相互埋怨過對方的protocol設計怎麼如此草率,這恰好凸顯了 xmpp protocol 的優勢... 207.46.110.86:1863 c2s->[client to server] s2c->[server to client] c2s->VER 1 MSNP15 CVR0 s2c->VER 1 MSNP15 c2s->CVR 2 0x0404 winnt 5.2 i386 MSNMSGR 8.1.0178 MSFT luke_shei@hotmail.com s2c->CVR 2 8.1.0178 8.1.0178 8.1.0178 http://msgruser.dlservice.microsoft.com/download/1/C/F/1CF776CC-90D6-4497-B079-402BA9DB8BE4/Install_Messenger.exe http://get.live.com/tc c2s->USR 3 SSO I luke_shei@hotmail.com s2c->GCF 0 6713 s2c->

[微程式-技術研討會] 8月研討會 - Bidirectional-streams Over Synchronous HTTP (BOSH) - 主講人:znul

Bidirectional-streams Over Synchronous HTTP (BOSH) 網址: http://www.xmpp.org/extensions/xep-0124.html 一何謂bosh? 雙向性的Http串流,利用http protocol post transport xmpp stream 二why http protocol? 一般防火牆都會允許tcp 80 prot 的對外窗口,某些少數的防火牆甚至允許任何的通訊協定通過這個port, 但是更多的proxy,filter 會確認通過的串流是否為http 三技術名詞 1pull: client use http request from server,是一種以網路為基礎的溝通方法 2 push: server response data to client,是一種以網路為基礎的溝通方法,server主動將資料傳給client 四compare other bidirectional http-base transport protocol 1http polling :週期性的詢問server是否有資料 2 ajax(Asynchronous JavaScript and XML) 3 comet :是長時間連線要求的web 應用的模式,server在有資料要傳送時透過此連線push資料至用戶端. 利用ajax with long polling or iframe or htmlfile activex 的技術去探測server是否有新的訊息 4bosh:採用多個http request / response 對,非polling,自稱可高效率低延遲的傳輸訊息及節省網路頻寬 五要求 1相容於受約束的執行環境(如行動電話或流覽器的用戶端)**. 2可以讓流覽器的用戶端建立跨網域的連接* 3相容部份緩衝的http代理回應* 4有效率的通過http回應時間限制的代理* 5完全相容http 1.0* 6相容受限的網路連線(如防火牆.代理.閘道) 7容錯性 8擴展性 9使用的頻寬遠低於輪詢機制的protocols 10回應的時間遠低於輪詢機制的protocols 11支援輪詢 1

[微程式-技術研討會] 7月研討會 - SVN 簡介 主講人:robert / 2008前瞻資安技術年會報告 主講人:znul,jackson

一:SVN 簡介 (robert) 教材如下 : http://www.polarion.org/index.php?page=download&project=subtrain 二:2008前瞻資安技術年會報告 (znul) 相關網站: http://syscantaiwan.blogspot.com/ A. 資安及其重要性? 小至個人資料洩漏,大至國家機密,可能造成個人財產損失或危及國家安全目前的駭客已由個人好玩,演變成團體的營利組織 B. 課程內容分享? 1. 駭入RFID (hacking rfid devices) 2. 協同式攻擊性運算à使用xmpp (cooperative offensive computing) 使用xmpp為資料蒐集的工具,malware分散於各地,將蒐集的資料透過jabber server 集中至某處(Knowledge Machine à KM),再利用類sql語法Query data 3. rootkit 源於unix系統,為將多種駭客程式寫成套件,安裝至電腦,藉以取得控制權, 置換系統檔案,修改registry 等方式達到隱藏自己的目的,再伺機行動 4. 犯罪軟體鑑識工具痕分析crimeware & malware (malicious software) 5. no password longin windows (1)利用ieee1394介面連接電腦,直接修改記憶體內容,使得密碼比對傳回true (2)使用休眠檔(修改後),重開機window會直接讀取此檔回復當時的系統狀態, 直接登入系統 6. 嵌入式script攻擊 (embedded script attacks) Html,PDF,Excel,Powerpoint….支援script語言的軟體,利用此軟體的漏洞執行 malware C. 防毒軟體真的安全? 防毒軟體的運作方式可分為靜態與動態 靜態:利用病毒碼(簽章),比對硬碟檔案是否有病毒檔案,或搜尋檔案中有特定字串等 動態:執行時期監控程式的行為來判斷是否為malware D. 如何防範? 定期更新病毒碼 關閉不常用的服務及軟體功能 不開啟來路不明的檔案及來路不明的連結 E. 結論 我們也是IT的一份子,如何讓開發及建置的系統不被入侵,也應是我們該重視的一環,我們常見的疏忽:使用sa帳號連db

修正與補充--為何 Fiddler2可以Decrypt captured SSL packets?

前篇文章有部分內容有誤在此補充修正:fiddler2 並不是直接竄改網卡封包的方式去accept connection,他本身是一個 web proxy , 他listen 在 port 8888 , 所以所有通往port 8888 的都會被窺視,仔細觀察;當fiddler2 開啟時,我們可以看ie 的 工具-->連線-->網際網路選項-->進階 會發現proxy偷偷被fiddler2改成127.0.0.1:8888,當fiddler2 關閉時,這個設定會回復原值 問題一:我們並沒有改這個設定值,為何會被偷改? 因為fiddler2透過wininet 去修改proxy 設定,他把自己設定為 system proxy 問題二:那firefox opera ... 又該如何使用fiddler2 ? 可能必須自行設定proxy 為127.0.0.1 8888,除此之外 http://www.gotnet.biz/UsingFiddler2WithFirefox.ashx 有其他的做法讓 firefox 更方便的是用fiddler2 參考資料: http://msdn.microsoft.com/en-us/library/bb250446(VS.85).aspx http://www.fiddlertool.com/Fiddler/help/httpsdecryption.asp

為何 Fiddler2可以Decrypt captured SSL packets?

-- fiddler2下載點: http://www.fiddler2.com/fiddler2/version.asp 設定:tools->Fiddler Option ->HTTPS->Capture HTTPS Connects --- Fiddler2 為何可以decrypt ssl packets? 我思考了後得到這個答案 正確的說法他不是decrypt ssl , 他是屬於使用欺瞞的方式解開ssl 封包 ie----ssl----webserver 我們知道,在ie 與 webserver 中間,如果走了ssl , 那麼由外面攔截封包是沒用的,所以;我們可以大膽的說,途中封包經過任何的proxy gateway .... 都不會因為封包被攔截而導致資料外洩那麼 fiddler2 是怎麼辦到的?我們可以使用IE(一定用ie)連接一個真實的SSL 的website https://www.ssl.com/ 仔細觀察當 fiddler2 開啟時和不開啟時,有什麼差異? 當fiddler2 開啟時會出現此訊息 --- 此網站的安全性憑證有問題。 此網站出示的安全性憑證並非由信任的憑證授權單位所發行。 安全性憑證問題可能表示其他人可能正在嘗試欺騙您,或是攔截您傳送到該伺服器的任何資料。 我們建議您關閉此網頁,而且不要繼續瀏覽此網站。 按這裡關閉此網頁。 繼續瀏覽此網站 (不建議)。 其他資訊 若您是按一下連結到達此頁面,請檢查網址列中的網址,確定它是您要瀏覽的位址。 當您使用網址 (例如 https://example.com) 瀏覽網站,請嘗試在網址前加上 'www' (例如 https://www.example.com)。 若選擇略過此錯誤並繼續,請勿在此網站輸入個人資訊。 有關進一步的詳細資料,請參閱 Internet Explorer 中的「憑證錯誤」。 ---- 而在fiddler2未開啟時,IE卻沒有出現此訊息 why?(這張圖應該可以清楚的表達他的運作模式) ie--ssl(憑證1)--fiddler2--ssl(憑證2)--website 因為fiddler2 是直接在wininet api(raw socket) 上運作,所以當你的ie 要連接ssl網站時,他是被 fiddler2(proxy) 直接從網卡a

[微程式-技術研討會] 6月研討會 - 主講人vivian - 樣版系統相關簡介

目前程式與頁面結合的作法 1. 由美工人員先行編制頁面內容, 再行嵌入CGI程式中 2. XML + XSLT 3. 在CGI程式中將load進來的html檔案, 以正規表示法予以置換 採用以上方法的優缺點 1 由美工人員先行編制頁面內容, 再行嵌入CGI程式中 1.1 頁面與程式交雜在一起, 日後不易維護 1.2 程式人員需自行切割已完成的頁面, 再嵌入程式碼 1.3 日後頁面欲增加新功能或顯示欄位, 則需返回美工人員處做異動 1.4 遇相同功能的頁面無法做成模組化, 讓頁面可重複使用 1.5 實例:電腦教室系統、卡務系統 2 XML + XSLT 2.1 頁面與程式可以完全分離, 使得開發人員可各自維護 2.2 可將相同功能的頁面做成模組化, 讓頁面可重複使用 2.3 對XML異動Tag內容時, 無法透過簡易的方式告知頁面維護人員Tag資料內容已異動, 需透過XML Schema才可得知 2.4 實例:清算系統 3 在CGI程式中將load進來的html檔案, 以正規表示法予以置換 3.1 頁面與程式可以完全分離, 使得開發人員可各自維護 3.2 樣版與程式中對於取代用的變數名稱需一致, 才可順利被置換 3.3 異動(新增、修改、刪除)變數名稱, 需另行告知美工維護人員變數異動內容 3.4 較不易把相同功能的頁面做成模組化, 缺少頁面重用的理念 3.5 實例:清算系統報表處理 以上的方式各有優缺點 但我畢竟希望程式與頁面可以完全分離, 版面的設計交給專業的美工人員, 而美工人員只需以html為基準(畢竟美工人員大多使用Dreamweaver或Frontpage之類的來設計版面), 不需讓美工人員去學習程式語言(只需透過雙方已制定的協定文件), 而達到完全分工的效能, 這也就為什麼目前樣版這麼熱門的原因了 為什麼要使用樣版 ?? 1. 外觀的一致性 (Consistency of Appearance) It does