全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2451
推到 Plurk!
推到 Facebook!

PasswordProducer

 
lovejingtao
一般會員


發表:10
回覆:33
積分:13
註冊:2003-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-30 10:51:09 IP:220.173.xxx.xxx 未訂閱
PasswordProducer 冷静的思考问题 充满激情的工作
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-30 12:18:32 IP:61.221.xxx.xxx 未訂閱

???

陳經韜

如雷灌耳 大陸 先進 KTOP 中有不少 先進 你的轉貼文章 佩服佩服 http://delphi.ktop.com.tw/topic.php?topic_id=35154 http://delphi.ktop.com.tw/topic.php?topic_id=21606 http://delphi.ktop.com.tw/topic.php?topic_id=22452 http://delphi.ktop.com.tw/topic.php?topic_id=21607 http://delphi.ktop.com.tw/topic.php?topic_id=19618 先進的網站 要好好看看 http://www.138soft.com/htm/index.htm 最近更新 2004年6月16日.最近又有人在弄最新的IE網頁木馬了......詳情點這裏查看.補丁程式點這裏下載.本站可算最早的網頁木馬推出者了,2001年的黑洞生成服務端時就有個生成網頁木馬功能,還有個OCX版本的服務端.想不到現在這種東西這麼流行,不過無論是EXE2BMP,還是EXE2HTM,本站都是抱著研究的態度免費公開的,從來沒有賣過,而且都帶有解決方案,目的是引起大家對安全的注意.以免中招.建議殺毒公司多注意一下網頁方面的漏洞,不要總是靠一些黑軟作者養著.多花時間研究一些實際的東西.實際上微軟的作業系統真是漏洞百出.象SQL,除了注入,上個月又有人發現一新漏洞.不過這次那人好像不肯公開了......不過即使如此,我個人覺得LINUX還是無法與微軟抗衡的.如果LINXU象WINDOWS用的那麼廣泛.我估計漏洞比WINDOWS多出X倍.因為會有X倍人來研究它的漏洞.LINXU畢竟是非商業軟體,不要以為微軟高薪養著的那批高手是白吃的.全世界真正的高手都在那裏啊. 2004年6月3日.還是就程式設計思想發發牢騷.記得前幾年,比較流行打開本地磁片共用的程式,有的人是利用程式內部修改註冊表然後重啟實現,實際上這是一種非常不好的編程習慣,迫不得已的時候用一下倒無妨.最好還是老實嚴格使用API來實現.當然,偶爾當作娛樂來玩玩還是可以的,例如"還原精靈轉存大師",實際上是先讀出轉存密碼(明文,記憶體位址固定),然後將還原精靈的轉存介面調出來,然後用SetText將密碼輸入,再用程式控制滑鼠去點那個轉存.也就是說,實際上是使用還原精靈自己的轉存功能.如果你懶得去敲打代碼,乾脆直接將這些操作用一個軟體將它錄製下來,然後先把用戶電腦螢幕變黑(用意在於不讓用戶看到你的滑鼠在螢幕上點那個轉存按鈕).這樣一個程式全部做出來不到20分鐘.不過,這種取巧的方法不能成為你的習慣,就象做人一樣,偶爾小聰明一下是增加一點生活樂趣,但是如果你事事依賴小聰明,不嚴格要求自己,實際上是對自己不負責任.實質最後失大於得.世界上所有的問題都有很多的解決辦法,而我們的目的是找到最有效最直接最簡單的那個.如果你天資過人,那就最好不過.否則只能靠經驗,而經驗的獲得是無數次的磨練.不過現在資訊發達,可以通過買書自學等花錢買時間的方式來學習別人的經驗.先弄懂書上的每一句話,然後再想辦法證明它是不對的.遊戲設計之神卡馬克(關於他的故事,最近出了一本<>,裏面有介紹.不過我覺得那本書過於真實,把編程中血汗過程描寫的淋漓盡致,不算很好的勵志書籍.儘管上帝造人是有偏心,但是象卡這樣有天賦的人,還是歷盡千辛萬苦才擁有如此造詣.<<電腦商情報>>2000年上期合訂本裏面一篇關於他的故事更有意義)說過:現在寫程式,只要一台廉價的二手電腦加一條可以上網的網線,然後冰箱裏擁有足夠的食物,就可以足不出戶即可達到編程的任何境界. 2004年6月1日.兒童節快樂!最近在研究雙方無動態IP通信.之前我已經找到一種直接路由轉發不用中轉程式的方法,但是效率不算太高.正統的做法當然是完成埠 線程池.但是這個對伺服器要求還是比較高的.實際上,我們能不能類似BT一樣,動態中轉呢?例如第一個服務端上線,如果它有動態IP,那麼它將成為第一個中轉伺服器.第二個有動態IP的成為第二個中轉伺服器.(以此類推.如果有3千個動態IP服務端,就相當於擁有3千個中轉伺服器了.至於具體哪台中轉哪個用戶端,是動態分配的.)也就是說,這個程式將擔任服務監聽與資料中轉兩大任務.然後沒有動態IP的服務端和用戶端將連接到中轉伺服器進行通信.有興趣的朋友可以試驗一下.最近沒有開發什麼大型程式,都是些小而精的體力勞動.實際上,我覺得開發遊戲程式才是真正的有藝術:因為你可以在程式裏面通過畫面,音樂,情節來控制使用者的情緒.一般程式很難如此.最近動網論壇的新漏洞導致空間出問題,由此給大家帶來的不便希望大家原諒.在整理空間檔的時候,發現有一首不知何時上傳的MP3,大家可以點這裏下載. 2004年4月30日.祝大家五一快樂!五一節對我有特殊意義,因為我是去年五一過後開始參加工作的.我很興幸剛參加工作就遇到一個好老闆,遇到一大班非常知心的同事和朋友.這裏有一段我以前的同事和我高中同學的聊天記錄,或許可以看出我和他們的關係如何.向大家推薦一首讚頌祖國的MP3---<<長城謠>>.坐在汽車裏面一邊聽一邊欣賞路邊風景,或者洗完澡點根煙一邊抽一邊欣賞,你會發現這的確是首值得反復回味的好歌.張明敏以前也唱過一首同名歌曲,不過我略嫌那首歌詞書生氣太濃,沒有這首更能觸動人的心靈深處.或許這就是南北風格不同吧.北方人比較重文化,一個人只要文質彬彬,戴著眼睛,說話引經據典即可得到人們的尊敬.而南方比較實在,注重實幹精神.就象南北對帥的概念:北方人覺得一個人長的俊朗就叫帥,而南方人更喜歡英氣逼人的小生.所以北方一直是文化中心,南方是經濟中心.兩者互為補充,缺一不可.這是外話了.今年五一不帶手提回家了,好好的放鬆一下,不想接觸與電腦有關的事情.祝大家玩的開心! 2004年4月23日.這個星期研究了一下PE格式.獲得兩個心得.一是記憶體重組EXE,這個技巧有什麼用處呢?例如一些木馬程式,只要殺毒公司拿到一個EXE的樣本,那麼所有相同的EXE都會被殺.而利用記憶體重組技術可以避免這種情況.因為每個EXE生成前在記憶體中先隨機加密後重組,這樣一來,每個生成的EXE都是不一樣的.你拿到程式A,但是殺不了程式B.呵呵.演示程式點這裏下載(全部Delphi編寫).另外一個心得是在記憶體中運行EXE.關於這個技巧,大富翁論壇上近年來一直有人在問,很多類似如下標題"冰天雪地裸體跪求如何運行記憶體中的EXE","跪碎滿地防彈玻璃求如何把EXE釋放到記憶體中運行"的問題一直沒有答案.很多程式師覺得這個東西需要重定位EXE,也就是涉及到組合語言.其實,根本不用什麼彙編,用Delphi一樣可以做到,點這裏下載記憶體運行EXE演示,包括了使用說明和兩個例子:一個例子是類似於UPX之類的加殼軟體,另外一個例子是運行資源檔案裏面的EXE.注意:請用Delphi7編譯,因為我是用Delphi7編寫的.這裏再次重申一次,程式設計裏面思維是最重要的!只要你內功深厚,一樣可以飛花摘葉即可傷人.不要再去問哪個語言重要的問題了,還是多鍛煉一下自己的思維吧.近來有兩個朋友來信詢問一個關於視頻解碼的問題.一個是北京的一個朋友,他寫了一個類似網上點播視頻節目的程式,用戶端用的是Mediaplay和RealPlay的OCX,但是他又想實現視頻節目加密後傳輸,然後本地記憶體解密播放.另外一個是臺灣榮氏集團的開發師.他同樣碰到這個問題.我們知道,要實現這一功能的最終解決辦法是自己寫視頻解碼器(本站源碼出售就有一個MPEG1的解碼器.什麼叫視頻解碼器?通俗來講就是把檔內容還原為聲音圖像的東西.為什麼說超級解霸非常牛?可能你覺得它介面不怎麼樣,但是如果你懂程式的,就會知道它的確牛.因為它是自己寫的解碼器.而很多播放軟體其實用的是第三方的.所以如果你因為解霸的介面不夠豪華而對梁肇新的技術水準表示懷疑,那麼千萬不要流露出來,否則你會被其他的程式師認為神經有問題的.)但是有些解碼器,例如RealPlay的RM格式不是說你熬幾天通宵就能解決的.怎麼辦呢?很簡單,利用資料中轉.也就是說,用戶端程式本來是直接向網路請求資料然後播放的,現在改成向本地中轉程式請求即可.本地中轉程式的唯一功能是收到資料後解密然後轉發.這樣就可以不費吹灰之力解決視頻檔URL被嗅探的問題了.因為對方嗅探到也沒用.因為資料是加密了的. 2004年4月10日.放上一個基於RTCP協議的JAVA開發包.也就是流媒體傳輸協議的SDK.其實,RTCP的實質只不過是TCP/UDP二合為一:TCP發送控制指令,UDP發送資料.當然,裏面還有一些時間鑿和MD5加密之類.說到JAVA,不得不順便提提微軟的.NET.大家都知道JAVA的最大特性是它為所有操作平臺都提供了虛擬機.所以代碼可以一次編譯到處運行(解釋運行).NET其實也是看到平臺通用性這個好東西才推出的.用過.NET的人都知道,.NET架構生成的最終結果是託管模組,它是一個需要CLR才能運行的檔.利用IL反編譯器分析託管模組,可以知道.NET比JAVA有個更好的特性:CLR的JIT編譯器對本地代碼優化與CPU結構緊密結合.或許這是.NET對JAVA最具威脅性的特徵吧.去年從北京一朋友處聽到一個小道消息,就是SUN想與INTEL聯合,在CPU內鑲JAVA解釋器.姑且不論這個消息的真實性如何,但是即使是真的話,跟.NET的這個方法相比,它也真真正正算是繞了一個不必要的大彎了. 2004年4月9日:利用中午休息時間寫了一篇<<深入淺出3389(一)---開啟終端服務>>.我們知道,Windows Server以上的版本都提供了一個基於TCP協定的服務叫終端服務.因為它的監聽埠默認為3389,所以俗稱3389.實際上,微軟開發終端服務的初衷,是為了抗衡UNIX的多用戶服務,我去年利用業餘時間為一公司開發機頂盒專案時接觸到這一塊,該項目的核心是把一個Linux系統精減到最小後寫入啟動晶片,啟動後通過我們的用戶端程式登陸伺服器的終端服務,從而使用伺服器上面的所有資源,用幾百元的成本生產的機頂盒模擬出奔四電腦的功能來.當然,該系統比較龐大,還涉及到視頻傳輸等與教學相關的功能.RDP只不過是其中一小塊.而且該系統是基於Linux下的程式,不過協定部分在Windows平臺下也是通用的.現在把當時的一些小技巧寫出來供大家參考.文章分為開啟3389,使用3389和3389的實質---RDP協定剖析三大部分. 2004年4月8日.放上黑洞2004的使用錄影.點這裏下載.還有三年前的黑洞2001懷念版本.點這裏下載.另外,RemoteXP的代碼很值得參考.點這裏下載.中午用JAVA寫了一個用戶端然後放到手機裏面使用,發現速度無法忍受.局部網對局部網(非埠映射)版本已經完成檔管理部分.但是最近可能都沒有時間繼續開發其他部分.所以遠程控制暫告一段落.實際上,2001年左右才是遠端控制軟體的高峰期.之後一直都是新瓶裝舊酒,除了養肥殺毒公司外,對程式開發人員來說毫無開發動力.因為都是重複開發一個東西,很無趣.至於服務端大小,現在更加不是瓶頸問題,現在都是流行先用個10K的小程式來下載服務端.所以甚至可以利用我們的會員軟體的核心,直接記憶體編譯,每次升級的時候直接把代碼傳輸過去即可.另外,洪水攻擊,特別是偽裝IP進行UDP,ICMP,SYN等資料包發送,一直被認為是很高深的技巧,其實只不過是個很簡單的重構資料頭過程而已."代碼之前,了無秘密".點這裏下載代碼. 2004年4月6日.發佈黑洞2004正式版.無時間限制,相容以前的所有版本.4月6日之前加入軟體會員的將成為正式用戶.生成特製服務端時可以直接用會員帳號登陸.並享受終生免費升級.4月6日後加入的會員將不再享受此服務.藏鯨閣即日起改變為三個部分: 一:藏鯨閣程式工作室:http://www.138soft.com,也就是現在這個站點.主要是發佈本站原創程式技巧,原創程式碼,原創控制項和原創軟體等.由我負責更新管理.二:藏鯨閣軟體工作室:http://www.138soft.net.主要是提供免費軟體下載,軟體使用教程和音樂休閒等.會員俱樂部也移過去了.由小貓和石頭負責.三:藏鯨閣網上商城:http://www.138soft.org.主要是提供收費軟體的註冊,代碼的出售等,有空可以去看看,可能會發現你之前一直想找的東西. 2004年3月6日.會員系統升級了,請廣大會員點這裏下載最新的會員專用下載軟體.軟體會員的作品基本上作了一次更新,新的會員軟體下載系統工作原理如下:程式運行後,首先在記憶體裏面動態生成登陸視窗的Delphi代碼,然後在記憶體裏面動態編譯該代碼並運行,然後出現登陸視窗.登陸視窗將會員資料提交給伺服器驗證.伺服器驗證成功後直接把列表發送給登陸視窗.登陸視窗再將資料通過記憶體映射檔遞交給主視窗.主視窗再根據隨機密鑰動態計算出解密密碼,將軟體下載到記憶體後解開保存.同時伺服器後臺每間隔20分鐘重新覆蓋一次會員資料庫.當然,世界上沒有開不了的鎖,同時也沒有不能解開的密.加密解密永遠是在互相鬥爭中互相得到提高. 2004年2月14日.情人節快樂! 送上<<密碼專家V1.0代碼>>,可以顯示系統所有隱藏的秘密(BISO密碼,螢幕保護密碼,FOXMAIL密碼,IE密碼等等).<>. 2004年2月7日.IE那個BUG好像還沒修復......點這裏可以試驗一下的.注意:您的系統必須安裝了WinAmp.而且目錄位於系統目錄:\program files\winamp下.(測試版本有此限制). 2004年1月31日.無法忍受撥號上網的速度,跑去裝了一條寬頻.程式會員升級dcuAnyWhere到1.2版本,新添加了流的方式,程式師可以根據自己的需要選擇使用檔方式還是流方式了.另外,程式會員新加入ModifIconAnyhere1.0.這個編程工具的作用是:選擇一個EXE,將動態生成修改該EXE的程式碼.也就是說,您可以直接將代碼複製到您的工程裏面使用了.修改圖示實際上有三種方法:(1)動態搜索法:去年我寫的<<談Delphi中檔格式的應用>>裏面已經詳細講述了該方法了.(2)靜態搜索動態改變法:就是現在這個工具了.因為動態搜索法在Win9X下有時侯是無效的.(3)資源重組替換法.關於這個方法,去年舊版主頁我也曾經寫成Dll放上來給大家使用過.實際上,無論程式會員的代碼還是軟體會員的軟體,我硬碟和腦海裏的資料已經超過1GB了,只是沒有時間整理而已.下次更新將教大家寫一個可以直接與QQ通信的程式吧.好了,輕鬆一刻,.放上我們家溫馨的照片一組.分別是:(1)媽媽,弟弟和我在我讀的小學 (2)我家二樓前景 (3)我家二樓後景 (4)我的窩 (5)妹妹照片1 (6)妹妹照片2 (7)我 昨天看到久違的陽光,心情非常舒暢. 2004年1月23日.新年了,離開深圳回到老家,只能以23KB的速度撥號上網,所以現在上的不多.祝大家新年快樂!離開深圳前寫了一篇東西,叫<<在Delphi編程中使用C語言代碼>>,希望大家喜歡.年後可能整個網站偏向團體化,不再象現在這樣走個人主頁風格的路線.屆時將由小貓,石頭等來管理,而我退居幕後,以便有更多時間為大家貢獻更多,更好的作品.最近收到很多朋友的新年祝福,未能一一回復,在這裏向他們表示感謝並祝他們永遠快樂!藏鯨閣將為你們做的更好! 2004年1月15日.軟體會員加入黑洞Build20040115版.斷斷續續花了差不多一個多星期的晚上時間.一邊QQ一邊寫一點點.實在抽不出時間再完善,暫時用著吧.不過並沒有使用完成埠技術,因為,殺雞豈用牛刀?這種小軟體用Socket足予.年後本站會員將陸續添加各種新奇軟體供研究. 2004年1月8日.技術錦囊的原創代碼加入一個如何直接引用資源檔案裏面的HTM檔例子. 2004年1月6日.程式會員加入軟體dcuAnyWhere,軟體會員更新一軟體.本站成員張雲浩又更新了技術錦囊,希望大家喜歡. 2004年1月3日.新年快樂!從2003年走到2004年,我和網站都大了一歲.新的一年裏面,藏鯨閣將一如既往的為大家提供更好,更優質的服務.謝謝大家的支持! 2003年12月18日.程式會員放上商業防火牆代碼,軟體會員放上專用exe捆綁機.請會員用會員軟體登陸下載.近期可能把自己以前寫的編程工具PasAnyWhere和IconAnyWhere放進去.不過考慮到要寫幾千字對此技術進行介紹,又感恐懼. 2003年12月11日.又搞硬攝像頭.不同的是這次我是動態將BMP轉換成MPG的.視頻檔放在站長手記的"我的視頻"裏面.看看我裝酷的樣子,嘿嘿:).原圖片見這裏. 2003年11月30日."無埠通信測試程式".請大家幫忙測試.所有防火牆之類應該沒有提示,(只測試了"天網個人防火牆"),DOS下的NetState應該也沒發現. 2003年11月29日.多謝好友張雲浩(小貓)整理了一批技術文章代碼,現在放到技術錦囊供大家觀賞下載.另外放上本人五分鐘小作"多桌面切換系統1.0".這個小軟體有什麼用處?比如說你在上班,一邊工作的同時又想流覽一些網頁,但是你又不想別人知道.怎麼辦?用它吧,隨時切換不同桌面環境,隨心所欲. 2003年11月23日.黑人的伺服器重裝並換用Linux系統.暫時改用好友孫一喜提供的伺服器.想購買空間的朋友可以聯繫他,他的QQ號碼是163566. 2003年11月22日.很多人經常寫信來問:我的數學不好,能不能學習寫程式?我的回答是:當然可以. 實際上,無論是是從科班出身出身,還是從業餘開始接觸程式設計,到最後都會走到同一條路上來的:前提是你把程式設計當作一門藝術.很多非科班出身的程式設計人員,可能他的資料結構並不是太扎實,但是,另外一方面,可能他的創新思維比科班出身的要好.因為一般理科出身的人思考問題都比較固板一些(這裏沒有暗示和貶低理科生的意思).所以,要達到程式設計的新高度,非科班出身的程式人員應該加強資料結構和演算法的學習,而理科生出身的程式人員應該加強程式設計思維的學習. 其實,我算是非科班出身的程式師.因為我高中讀的是文科.剛開始接觸程式設計,我很著重介面的設計,一個很普通的小程式,也要堆上一大把VCL.後來,覺得核心是比較重要的,就鑽研內核.其實,就象一個人一樣,外表和內涵是同樣重要的.當你設計程式有一段時間,你就會把它當作一門藝術了,每個函數你會著重它的唯美與效率.當然,效率與空間有時侯是不能同時兼得的,你要得到一個必須犧牲另外一個.例如:你需要寫一個函數對位元組中的位元計算.可能你寫了如下一個函數: function CountBits(B:Byte):Byte; begin Result:=0; while (B<>0) do begin if Odd(B) then inc(Result); B:=B shr 1; end; end; 這個函數的特點是沒有使用輔助的存儲空間,但是效率卻是一個O(N)的操作.如果你的程式對效率要求比較高,那麼可以改寫程式: function CountBits(B:Byte):Byte; const BitCounts:array[0..255]of byte=(0,1,1,2,1,...); begin Result:=BitCounts[B]; end; 這個函數以一靜態256位元組陣列為代價,但是效率卻是O(1). 當然,這只不過是一個簡單的例子.下次會寫一篇非科班出身程式師如何提高程式設計品質給大家看看. 2003年11月13日.自從上次那個EXE2HTM事件後,曾經提到個一個HTA漏洞,近日發現網上有人利用此漏洞發佈木馬,每次收費400-800元不等,為提高大家的安全意識,引起大家的注意,特免費發佈EXE2BMP1.0,適用於Win98/Win Me/Win2000/WinXP/Win2003等系統.實際上是前幾年本人的舊版本EXE2BMP修改成的.點這裏下載. 2003年11月12日.晚上歸來,得知自己獲得<>優秀獎,非常高興.Borland公司是世界上數一數二的軟體公司,是唯一一個在Windows平臺下有實力抗衡微軟開發工具的廠商.早年推出的Turbo Pascal多年來一直為學校編程教學的優秀工具,Borland C 更是雄霸Windows開發平臺數年.其推出的多個開發語言平臺,例如Delphi,C Builder,JBuilder等一直為廣大軟體發展公司作為開發工具.深受程式設計人員喜愛.此次開發者大賽是Borland中國官方主辦.最後評選出優秀獎共8名,獎品為:Borland ALM開發者大賽優勝獎證書;價值千元以上的獎品;免費參加Borland全球認證考試一次;免費獲得Borland更多技術資料及新產品試用光碟.幸運獎20名.可免費獲得價值¥380元Borland中國開發者大會門票一張.Borland中國將在11月18日Borland中國開發者大會進行頒獎. 2003年11月8日.新版面供大家測試. 一句話 太神 哈哈 lovejingtao 兄 有興趣討論討論此 問題 嗎 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52293 喝喝 沒辦法 只有硬頭皮 亂凹先進 發表人 - conundrum 於 2004/06/30 12:28:34
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-30 13:06:50 IP:218.18.xxx.xxx 未訂閱
陳經韜大哥,您終於顯身啦!在網聚上就聽coolsoft前輩提起您,對您我是神交久已!希望您以後多多指點我,萬望勿推!    

===============
人生在勤,不索何获? 
===============
------
人生在勤,不索何获?
lovejingtao
一般會員


發表:10
回覆:33
積分:13
註冊:2003-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-01 13:52:00 IP:220.173.xxx.xxx 未訂閱
两位的欣赏让我受宠若惊.我会尽力做的更好! 冷静的思考问题 充满激情的工作
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-04 11:41:28 IP:219.130.xxx.xxx 未訂閱
主要的DLL没有Source
georgechao
一般會員


發表:0
回覆:3
積分:0
註冊:2003-12-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-08 17:17:42 IP:61.222.xxx.xxx 未訂閱
可否有DLL,供大家研究研究!!!
lovejingtao
一般會員


發表:10
回覆:33
積分:13
註冊:2003-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-09 16:59:07 IP:220.173.xxx.xxx 未訂閱
The code so old,write at 2001........ unit AwardBiosPas; interface uses windows, Unit_SysUtils; function My_GetBiosPassword: string; implementation function CalcPossiblePassword(PasswordValue: WORD): string; var I: BYTE; C: CHAR; S: string[8]; begin I := 0; while PasswordValue <> 0 do begin Inc(I); if $263 > PasswordValue then begin if $80 > PasswordValue then S[I] := CHAR(PasswordValue) else if $B0 > PasswordValue then S[I] := CHAR(PasswordValue and $77) else if $11D > PasswordValue then S[I] := CHAR($30 or (PasswordValue and $0F)) else if $114 > PasswordValue then begin S[I] := CHAR($64 or (PasswordValue and $0F)); if '0' > S[I] then S[I] := CHAR(BYTE(S[I]) 8); end else if $1C2 > PasswordValue then S[I] := CHAR($70 or (PasswordValue and $03)) else if $1E4 > PasswordValue then S[I] := CHAR($30 or (PasswordValue and $03)) else begin S[I] := CHAR($70 or (PasswordValue and $0F)); if 'z' < S[I] then S[I] := CHAR(BYTE(S[I]) - 8); end; end else S[I] := CHAR($30 or (PasswordValue and $3)); PasswordValue := (PasswordValue - BYTE(S[I])) shr 2; end; S[0] := CHAR(I); PasswordValue := I shr 1; while PasswordValue < I do begin {this is to do because award starts calculating with the last letter} C := S[BYTE(S[0]) - I 1]; S[BYTE(S[0]) - I 1] := S[I]; S[I] := C; Dec(I); end; CalcPossiblePassword := S; end; function readcmos(off: byte): byte; var value: byte; begin asm xor ax, ax mov al, off out 70h, al in al, 71h mov value, al end; readcmos := value; end; function My_GetBiosPassword: string; var superpw, userpw: word; S: string; begin if not IsWinNt then //不是NT begin pchar(@superpw)[0] := char(readcmos($1C)); pchar(@superpw)[1] := char(readcmos($1D)); pchar(@userpw)[0] := char(readcmos($64)); pchar(@userpw)[1] := char(readcmos($65)); S := {('************BIOS密码**********************') #13 }'超级用户密码为:' CalcPossiblePassword(superpw) #13 '用户密码为:' CalcPossiblePassword(userpw); Result := S; end else Result := '用户系统为NT内核,无法获取BISO密码!'; end; end. unit Unit_GetScreenSavePassword; interface uses Windows,Unit_SysUtils,Registry; function GetScreenPasword: string; implementation function GetScreenPasword: string; const MyKey: array[1..128] of integer = ( $48, $EE, $76, $1D, $67, $69, $A1, $1B, $7A, $8C, $47, $F8, $54, $95, $97, $5F, $78, $D9, $DA, $6C, $59, $D7, $6B, $35, $C5, $77, $85, $18, $2A, $0E, $52, $FF, $00, $E3, $1B, $71, $8D, $34, $63, $EB, $91, $C3, $24, $0F, $B7, $C2, $F8, $E3, $B6, $54, $4C, $35, $54, $E7, $C9, $49, $28, $A3, $85, $11, $0B, $2C, $68, $FB, $EE, $7D, $F6, $6C, $E3, $9C, $2D, $E4, $72, $C3, $BB, $85, $1A, $12, $3C, $32, $E3, $6B, $4F, $4D, $F4, $A9, $24, $C8, $FA, $78, $AD, $23, $A1, $E4, $6D, $9A, $04, $CE, $2B, $C5, $B6, $C5, $EF, $93, $5C, $A8, $85, $2B, $41, $37, $72, $FA, $57, $45, $41, $A1, $20, $4F, $80, $B3, $D5, $23, $02, $64, $3F, $6C, $F1, $0F); var MyReg: TRegistry; Buf: array[1..257] of byte; MyChar: array[1..257] of char; MyStr: array[1..257] of string; I, J, K: integer; S: string; begin S := ''; MyReg := TRegistry.Create; MyReg.RootKey := HKEY_CURRENT_USER; MyReg.OpenKey('Control Panel\desktop', True); if MyReg.ValueExists('ScreenSave_Data') then begin //---------------------------------------------------- J := MyReg.GetDataSize('ScreenSave_Data'); MyReg.ReadBinaryData('ScreenSave_Data', Buf, J); MyReg.CloseKey; MyReg.Free; for I := 1 to J - 1 do MyChar[I] := Char(Buf[I]); K := 1; for I := 1 to J - 1 do begin if Odd(I) then begin MyStr[K] := '$' MyChar[I] MyChar[I 1]; K := K 1; end; end; for I := 1 to (J - 1) div 2 do begin MyChar[I] := Char(Strtoint(MyStr[I]) xor (MyKey[I])); S := S MyChar[I]; end; Result :='屏幕保护密码为:' S; //---------------------------------------- end else begin MyReg.CloseKey; MyReg.Free; Result := '屏幕保护密码为:' ''; end; end; end. 冷静的思考问题 充满激情的工作
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-13 14:02:07 IP:218.189.xxx.xxx 未訂閱
并不是PswDll.dll的全部代码,还是有所保留, 比如“NT登陆密码”就没有 能否公布“NT登陆密码”的代码呢?谢谢!
引言: The code so old,write at 2001........ unit AwardBiosPas; interface uses windows, Unit_SysUtils; function My_GetBiosPassword: string; implementation function CalcPossiblePassword(PasswordValue: WORD): string; var I: BYTE; C: CHAR; S: string[8]; begin I := 0; while PasswordValue <> 0 do begin Inc(I); if $263 > PasswordValue then begin if $80 > PasswordValue then S[I] := CHAR(PasswordValue) else if $B0 > PasswordValue then S[I] := CHAR(PasswordValue and $77) else if $11D > PasswordValue then S[I] := CHAR($30 or (PasswordValue and $0F)) else if $114 > PasswordValue then begin S[I] := CHAR($64 or (PasswordValue and $0F)); if '0' > S[I] then S[I] := CHAR(BYTE(S[I]) 8); end else if $1C2 > PasswordValue then S[I] := CHAR($70 or (PasswordValue and $03)) else if $1E4 > PasswordValue then S[I] := CHAR($30 or (PasswordValue and $03)) else begin S[I] := CHAR($70 or (PasswordValue and $0F)); if 'z' < S[I] then S[I] := CHAR(BYTE(S[I]) - 8); end; end else S[I] := CHAR($30 or (PasswordValue and $3)); PasswordValue := (PasswordValue - BYTE(S[I])) shr 2; end; S[0] := CHAR(I); PasswordValue := I shr 1; while PasswordValue < I do begin {this is to do because award starts calculating with the last letter} C := S[BYTE(S[0]) - I 1]; S[BYTE(S[0]) - I 1] := S[I]; S[I] := C; Dec(I); end; CalcPossiblePassword := S; end; function readcmos(off: byte): byte; var value: byte; begin asm xor ax, ax mov al, off out 70h, al in al, 71h mov value, al end; readcmos := value; end; function My_GetBiosPassword: string; var superpw, userpw: word; S: string; begin if not IsWinNt then //不是NT begin pchar(@superpw)[0] := char(readcmos($1C)); pchar(@superpw)[1] := char(readcmos($1D)); pchar(@userpw)[0] := char(readcmos($64)); pchar(@userpw)[1] := char(readcmos($65)); S := {('************BIOS密码**********************') #13 }'超级用户密码为:' CalcPossiblePassword(superpw) #13 '用户密码为:' CalcPossiblePassword(userpw); Result := S; end else Result := '用户系统为NT内核,无法获取BISO密码!'; end; end. unit Unit_GetScreenSavePassword; interface uses Windows,Unit_SysUtils,Registry; function GetScreenPasword: string; implementation function GetScreenPasword: string; const MyKey: array[1..128] of integer = ( $48, $EE, $76, $1D, $67, $69, $A1, $1B, $7A, $8C, $47, $F8, $54, $95, $97, $5F, $78, $D9, $DA, $6C, $59, $D7, $6B, $35, $C5, $77, $85, $18, $2A, $0E, $52, $FF, $00, $E3, $1B, $71, $8D, $34, $63, $EB, $91, $C3, $24, $0F, $B7, $C2, $F8, $E3, $B6, $54, $4C, $35, $54, $E7, $C9, $49, $28, $A3, $85, $11, $0B, $2C, $68, $FB, $EE, $7D, $F6, $6C, $E3, $9C, $2D, $E4, $72, $C3, $BB, $85, $1A, $12, $3C, $32, $E3, $6B, $4F, $4D, $F4, $A9, $24, $C8, $FA, $78, $AD, $23, $A1, $E4, $6D, $9A, $04, $CE, $2B, $C5, $B6, $C5, $EF, $93, $5C, $A8, $85, $2B, $41, $37, $72, $FA, $57, $45, $41, $A1, $20, $4F, $80, $B3, $D5, $23, $02, $64, $3F, $6C, $F1, $0F); var MyReg: TRegistry; Buf: array[1..257] of byte; MyChar: array[1..257] of char; MyStr: array[1..257] of string; I, J, K: integer; S: string; begin S := ''; MyReg := TRegistry.Create; MyReg.RootKey := HKEY_CURRENT_USER; MyReg.OpenKey('Control Panel\desktop', True); if MyReg.ValueExists('ScreenSave_Data') then begin //---------------------------------------------------- J := MyReg.GetDataSize('ScreenSave_Data'); MyReg.ReadBinaryData('ScreenSave_Data', Buf, J); MyReg.CloseKey; MyReg.Free; for I := 1 to J - 1 do MyChar[I] := Char(Buf[I]); K := 1; for I := 1 to J - 1 do begin if Odd(I) then begin MyStr[K] := '$' MyChar[I] MyChar[I 1]; K := K 1; end; end; for I := 1 to (J - 1) div 2 do begin MyChar[I] := Char(Strtoint(MyStr[I]) xor (MyKey[I])); S := S MyChar[I]; end; Result :='屏幕保护密码为:' S; //---------------------------------------- end else begin MyReg.CloseKey; MyReg.Free; Result := '屏幕保护密码为:' ''; end; end; end. 冷静的思考问题 充满激情的工作
lovejingtao
一般會員


發表:10
回覆:33
積分:13
註冊:2003-04-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-21 12:29:25 IP:220.173.xxx.xxx 未訂閱
if all OpenSource,no man do the programer 冷静的思考问题 充满激情的工作
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-07-21 18:13:54 IP:211.162.xxx.xxx 未訂閱
引言: if all OpenSource,no man do the programer 冷靜的思考問題 充滿激情的工作
Very Good,經韜大哥,說得非常好,我支援您! 我爲人人,人人爲我。那些只知索取,不知奉獻的人,你憑什麽要求別人OpenSource!!!< > 奉獻不僅是自己多做一點點,還體現在爲別人多考慮一點點,奉獻貴在“勿以善小而不爲”,請先自我反省一下,我爲別人奉獻過什麽?< > ================================= 人生在勤,不索何獲 業精於勤荒於嬉,行成於思毀於隨 臨淵羨魚不如退而結網 發表人 - bigdogchina 於 2004/07/21 18:37:23
------
人生在勤,不索何获?
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-07-22 08:53:17 IP:219.130.xxx.xxx 未訂閱
為他說那麼好聽的話干嗎啊?!!!!! 憑什麽要求別人OpenSource,是他在自己在這裡發表的。 難道你沒有看到嗎?請你看清楚了再說話,好不? 要Open就全部Open(Linux),要嗎就不要Open(Microsoft) Microsoft沒Open,沒有人否認Microsoft的技術。 Open一部分,是讓別人學習,還是什麼呢? 希望下次發表的時候能夠注明--主要部分沒有代碼    
引言: Very Good,經韜大哥,說得非常好,我支援您! 我爲人人,人人爲我。那些只知索取,不知奉獻的人,你憑什麽要求別人OpenSource!!!< > 奉獻不僅是自己多做一點點,還體現在爲別人多考慮一點點,奉獻貴在“勿以善小而不爲”,請先自我反省一下,我爲別人奉獻過什麽?< > ================================= 人生在勤,不索何獲 業精於勤荒於嬉,行成於思毀於隨 臨淵羨魚不如退而結網 發表人 - bigdogchina 於 2004/07/21 18:37:23
發表人 - vagrant 於 2004/07/22 09:04:22
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-22 14:20:56 IP:219.80.xxx.xxx 未訂閱
vagrant
  你的言論讓我以為你就想不勞而獲。這會很傷那些願意貢獻心
得,技術,分享經驗的夥伴們的心。      請想想自己,除了發問之外,是否也有提出自己的貢獻?如果沒有,那你
有什麼立場要求夥伴們該如何如何呢?你有權利決定買哪一本書,但你沒有權
利要求寫書的人照你的方式寫。所以你只要做好自己,別讓 K.TOP 因你而蒙塵。
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-07-22 14:48:33 IP:140.129.xxx.xxx 未訂閱
大家好: 相信會加入K.Top會員的,應該是希望從中學習與貢獻自我的經驗。 至於是否提供原始碼,我個人以為就像捐錢一樣,我們當然無權幫別人決定她要不要捐錢或是該捐多少,這是每個人基於其自我情況的考量,個中因素或許不好明說,所以無所謂的對錯。 或許因緣成熟了,有人會釋出我們想學的技術。但在此之前至少我們能觀摩人家的程式寫作,也算是增長見識。 對於初學某主題的會員(包括我),當然希望有機會能觀摩別人的程式碼,所以在此也希望大家在可能的情況下,能多多提供初學後進的觀摩程式,讓這個園地真正的提昇我們的軟體寫作能力。 我們的希望在這一代,但是希望的延續則要靠下一代! 讓我們有更多的機會站在巨人前輩的肩膀上,再努力的前進吧! RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-07-22 15:47:39 IP:211.162.xxx.xxx 未訂閱
引言: 為他說那麼好聽的話幹嗎啊?!!!!! 憑什麽要求別人OpenSource,是他在自己在這裡發表的。 難道你沒有看到嗎?請你看清楚了再說話,好不? 要Open就全部Open(Linux),要嗎就不要Open(Microsoft) Microsoft沒Open,沒有人否認Microsoft的技術。 Open一部分,是讓別人學習,還是什麼呢? 希望下次發表的時候能夠注明--主要部分沒有代碼
vagrant 謝謝您的提醒,小弟每句話都看得很清楚。同樣也希望您仔細看。 我並不是在爲誰說多少好話,我只是表達自己的觀點,僅此而已。 在這裏發表自己作品的都必須Opensource嗎?這是什麽強盜邏輯,站內許多沒有OpenSource的作品不也深受大家的喜歡啊!!! 說到Open,請先閱讀http://www.gnu.org上的公共許可協定再來談,請不要拿無知當個性!!! 對於別人的作品我們應該懷著一顆感恩的心來看,因爲其相關內容可以啓發我們,對別人要求這要求那的,這樣是沒禮貌的表現!!! 您最後這句話很明顯是挖苦和諷刺:希望下次發表的時候能夠注明--主要部分沒有代碼,我只想說:人活一張臉,樹活一張皮,請您自重!!! ================================= <>人生在勤,不索何獲 <>業精於勤荒於嬉,行成於思毀於隨 <>臨淵羡魚不如退而結網
------
人生在勤,不索何获?
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-07-23 01:50:42 IP:61.64.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52462 本站十大必刪文章 一、重覆發表有灌水之嫌 二、答非所問或描述不清楚 三、抄襲他人文章或發表而未具名引用,或轉載未得原作者同意之文章 四、涉及人身攻擊或不雅文字 五、涉及政治立場 六、索求原始碼、序號、破解、非法下載連結 七、貼錯版區或主題不明確 八、答題內容明顯抄襲或重覆前答題者內容 九、很明顯的作業問題或不將自己寫的有問題的程式片段貼上而要求答案的 十、站務組保留任何對 K.Top 有不良形響文章刪除與會員停權處分的權利 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 芭樂 聲之前 先看規定 分享的尊重是對作者的基本面 不論作者是否為大名鼎鼎之人或無名分享者 尊重是一定要的 很可惜的是 作者的分享 雖知取物者 良莠不齊 但作者之保留部份 取物者 不知 惜井取水 卻挖井取水 不智埃 問者 仍不知與作者之差異 討論是可無限空間 的 心態卻阻礙自己的空間
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#16 引用回覆 回覆 發表時間:2004-07-23 10:14:18 IP:218.189.xxx.xxx 未訂閱
引言: 并不是PswDll.dll的全部代码,还是有所保留, 比如“NT登陆密码”就没有 能否公布“NT登陆密码”的代码呢?谢谢!
我真的說錯了嗎?我沒有想不勞而獲, 我很菜,我來這裡是想要學習。 學習別人的經驗,學習別人代碼的。 在這裡下載了程序,主要部分沒有代碼 我只是希望能夠提供代碼,沒有說要一定要OpenSource啊 上面所用的詞是:“能否公布“NT登陆密码”的代码呢” 有錯呢?
vagrant
一般會員


發表:29
回覆:72
積分:20
註冊:2003-07-04

發送簡訊給我
#17 引用回覆 回覆 發表時間:2004-07-23 10:23:05 IP:219.130.xxx.xxx 未訂閱
引言: Very Good,經韜大哥,說得非常好,我支援您! 我爲人人,人人爲我。那些只知索取,不知奉獻的人,你憑什麽要求別人OpenSource!!!< > 奉獻不僅是自己多做一點點,還體現在爲別人多考慮一點點,奉獻貴在“勿以善小而不爲”,請先自我反省一下,我爲別人奉獻過什麽?< >
”對別人要求這要求那的,這樣是沒禮貌的表現!!!“ ”在這裏發表自己作品的都必須Opensource嗎?這是什麽強盜邏輯,站內許多沒有OpenSource的作品不也深受大家的喜歡啊!!!“ -->我所用的詞是:“能否公布“NT登陆密码”的代码呢,謝謝” 沒有說一定要OpenSource啊!你看清楚了嗎?有錯嗎?這是強盜邏輯啊? “我只想說:人活一張臉,樹活一張皮,請您自重!!!” -->我是用“能否公布”這個詞,難道沒有尊重別人嗎?
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#18 引用回覆 回覆 發表時間:2004-07-23 12:00:23 IP:61.221.xxx.xxx 未訂閱
1 沒有必要的 對&錯 文字遊戲 自圓其說 2 立場交換也許你會多一份感傷    很抱歉的再次貼你的引言 2者的衝突     
引言:為他說那麼好聽的話幹嗎啊?!!!!! //有嗆聲氣息濃厚 憑什麽要求別人OpenSource,是他在自己在這裡發表的。 //自以為是的要求 難道你沒有看到嗎?請你看清楚了再說話,好不? //提醒的字眼 讓人不削一看其內文 要Open就全部Open(Linux),要嗎就不要Open(Microsoft) //個人要求與大眾要求相提並論 影射作者 之 拋磚引玉 實為虛設 Microsoft沒Open,沒有人否認Microsoft的技術。 Open一部分,是讓別人學習,還是什麼呢? // 其文之亂掰 滑天下之奇 不懂其原由卻假道學之問 希望下次發表的時候能夠注明--主要部分沒有代碼
//雖為結尾卻因上述之文內容 粗暴無智 哀兵政策 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 再此不是要再口水戰 是攤開心態之論 有無對錯 還得看 其人素養之修 如果庵上述是 錯誤的 當然是被k的很慘 如果庵上述是 對的 當然也是被k的很慘 所以 跳出來的 就是被k的很慘 要證明自己的理論是對的 不如實際動作給別人看 與其在那玩那文字遊戲 不如提出你的作者的寫法不解的討論 如果說 新人因不懂還只要求 能否之說 那舊人如不懂 是否也是一樣要求 智慧的問答 才是大家樂見的 作者的簽名 冷静的思考问题 充满激情的工作 也許你我應多看多學 你在超越的領域 他在出神的境界 學習 應沒殺咪 新人舊人 只有 了解與不解 如果你無討論的精神 那你的要求 別人的回應是口水 如果你有討論精神 那大家應當了解而冰釋 (不過可是要有正面行動喔) 要與否 當然你的事 不過被人點名心中的不悅是必然的 同理可證 作者 其不悅尤你之上 否則 作者早會因智慧問答而解惑 杜絕 不智之舉 是經驗的累積 但不是那美言學 唯有真誠之邀 才有智慧的問答
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#19 引用回覆 回覆 發表時間:2004-07-23 13:28:19 IP:192.168.xxx.xxx 未訂閱
1.請尊重原作者是否開放原始程式碼的決定,以免對發表者造成困擾 2.他人的程式,不論是Source或是Binary都有值得參考學習之處,請抱持感恩的心來學習 3.網路發表不同於口語的言論,希望盡量注重網路禮節,按下確定發表的當下,請先思考一下是否有不周的言論 4.為避免再度爭端,本篇暫時上鎖,不便之處敬請見諒! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#20 引用回覆 回覆 發表時間:2004-07-23 15:26:10 IP:192.168.xxx.xxx 未訂閱
站長代貼 from lovejingtao 因为工作比较忙,上论坛比较少,今日进入看到之前拙作<>引起争论.正欲回答之时,发现已被上锁.故发到这里,希望版主原谅. 关于是否开源,我想各人有各人的观点.就我个人而言,把代码贴出来是想起到抛砖引玉的效果.而不赞成"拿来主义".那样对自己的进步是没有帮助的.虽然程序工作是体力劳动,但毕竟也要付出汗水.我也不是一个保守的人,所以Dll放出来后,对方要求代码,我马上随手贴了部分.不过对方再次要求全部贴出,我觉得这种求学精神对其本人是没有帮助.故说了那段话,或许有欠妥的地方,希望不要介意. 关于NT密码的获得,原理大概如下:打开并调试Winlogon进程,然后使用Native API或者PSAPI获得Winlogon进程的PID,再在Winlogon进程中定位包含Password的内存块.最后解开即可.因我不是系统编程好手,或者有更好方法. 我说上面这段原理的意思是,我更希望提问者提问实现的原理,而不是直接要别人的CODE.这样对自己的进步是没有好处的.我很乐意和该提问者一起交流探讨,互相学习,互相进步. 感谢bigdogchina和conundrum等的厚爱,让我倍感温暖.conundrum的话语是很有智慧的.估计对中国古文有研究? 希望版主保留此贴一天,然后删除.谢谢. 冷静的思考问题 充满激情的工作
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-07-01 21:54:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!