青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

道。道。道

安全特性不等于安全的特性

   :: 首頁 :: 聯系 :: 聚合  :: 管理

常用鏈接

搜索

  •  

最新評論

注意:如果你看了本文,對我們這個軟件有興趣,請到我們的主頁www.vrbrothers.com下載。

注:為節省篇幅,本文對一些計算機術語直接使用而沒有作詳細的解釋,讀者若有不熟悉之處,建議參考清華大學出版社出版,周明德編著的《微型計算機系統原理及應用》一書中關于8253/8254定時器和x86保護模式的相應章節。

            “變速齒輪”研究手記
                     
    也許是我孤陋寡聞吧,說出來不怕您笑話,對于“變速齒輪”這樣著名的軟件,我一直到五天前,也就是2001年2月28號才第一次聽說。我有幾個同學很喜歡玩圖形MUD,整天見了面就在一起切磋“泥”技。我對MUD本身并沒有多大興趣,但是那天早上偶爾聽他們說某個MUD站點明文規定嚴禁使用“齒輪”,這才好奇地問他們什么是“齒輪”。別人告訴我,“齒輪”是一個軟件,能對Windows下的游戲加速,他們在玩MUD時就依靠這個軟件作弊。這不禁令我一頭霧水,能讓Windows游戲改變速度,太神奇了!
    我一貫對技術很有興趣,聽說有這么一個神奇的軟件,當然要想想它是怎么實現的。這個軟件看起來并不復雜,我原以為一個早自習好好琢磨琢磨就行,可是我想了好幾節課,始終不得其要領。說來也巧,我們這學期有一面必修課是Linux內核原理分析,這幾天正好學到了進程調度,老師說,當一個時鐘中斷發生的時候,操作系統要做很多事情,比如必要時要重新調度進程從而實現搶先式多任務,還要更新系統時鐘......慢著,我突發奇想,如果讓時鐘中斷產生的更快,會發生什么事情呢?
    我們已經學過“微機原理”這門課程,我知道讓時鐘中斷產生的更快不是難事,以前我就用DOS下的匯編語言寫過這樣的程序,這是我們當時的作業。可是我以前的程序在Windows下雖然可以運行,但并不能對Windows系統加速,道理很顯然:Windows9x是使用x86虛擬機的機制來兼容DOS程序的,我的程序只能改變虛擬機,就是那個黑窗口的時鐘中斷。
    于是我試圖把以前的DOS程序搬到32位環境中。用VC內嵌匯編做這件事再合適不過了,在一個VC程序框架中加上一個__asm,然后只管把以前的匯編程序往里貼就行。我滿懷希望地運行這樣一個拼湊出來的怪物,結果,出現了一個大家都很熟悉的“該程序執行了非法操作”,我的試驗以失敗告終。
    后來冷靜下來仔細想想,這次失敗的原因是顯然的。Windows作為一個復雜的32位操作系統,如果能讓你隨便對硬件進行操作,那也許運行不了幾個程序就崩潰了。但是如何繞過操作系統去操作硬件呢?我首先想到了vxd,編寫一個驅動程序肯定可以操作硬件,但是,很可惜,我不會設計驅動程序。于是我想到了以前看到的CIH的源碼,CIH沒有寫vxd,卻能操作硬件去燒毀BIOS,陳盈豪真是太偉大了,他的程序精巧之處我至今記憶猶新。于是我模仿他的技術,修改IDT表,創建一個中斷門,然后發生中斷,進入ring0,現在我可以做任何事情了,按照以前的DOS程序那樣,往8253定時器里寫一個控制字,再分兩次寫入新的時鐘中斷發生頻率,一切順利!(詳細技術請您參考我的“兄弟變速器”源碼)我看到VC編輯區的光標瘋狂的閃爍;雙擊已經失效了,因為Windows認為我雙擊的時間間隔太長;Windows任務欄右方的時間飛快跳動,應該說,我已經成功了。
    當時我想當然的以為“變速齒輪”的原理也是如此,可是當我從同學那里把“齒輪”拷來并研究時,發現Windows的時鐘并不變快,而游戲速度照樣可以加上去,也就是說,“齒輪”采用了與我的程序不同的技術,是什么技術呢?我決定繼續研究。
    我訪問了“變速齒輪”的主頁,這個主頁上有一個“你問我答”的欄目,由“齒輪”的作者王榮先生進行技術支持。我試圖在這里找到一些關于“齒輪”的技術細節,但是很可惜,沒有找到,王榮先生只是告訴大家這個程序不能用VB編寫等等根本連皮毛也不涉及的問題,好不容易見到一個外國人問能不能公布源代碼,其實這也是我想問的,但是王榮先生明確表示不行,這不禁令我感到非常失望。
    我也想過寫信去索取原碼,也許他不向外國人公布,中國人可不一定。但是咱們“臭老九”最愛一個面子,我實在拉不下臉去問。這時已經是晚上10點了,我決定祭出SoftIce,用一夜時間去研究他的程序。
    當時使用的工具是SoftIce,WD32ASM和VC,手邊兩本參考書是《微型計算機系統原理及應用》和《Linux操作系統內核分析》(都是我們的課本,呵呵)。
    起初,“變速齒輪”0.2版的一個叫hook.dll的文件很大程度上吸引了我的注意力,我懷疑他使用Windows消息鉤子實現變速,消息鉤子我很熟悉,但我把MSDN上面關于鉤子的介紹看了好久,也沒有想出它和變速有什么聯系,這時偶然看了一下在王榮先生的主頁上得到的“變速齒輪”0.1版,才發現老版本中并沒有這個文件,也就是說,我只需要反匯編他的主程序就夠了,于是,二話不說,用WD32ASM先把0.1版的“齒輪”給拆了,匯編代碼5000多行,并不算多。
    我是從這個程序的導入函數著手的,以前編程時用于定時的SetTimer,timeGetTime,timeSetEvent等等這里都導入了,看看它們被引用的地方,我發現這些函數都是集中出現的,而且大都以這樣的形式出現:
    * Reference To: WINMM.timeGetTime, Ord:0098h
    :00401F3E 8B0D64424000        mov ecx, dword ptr [00404264]
    :00401F44 8B11                mov edx, dword ptr [ecx]
    也就是說,他并沒有調用這些函數,只是取得了函數的入口地址,保存在ecx中,然后又根據這個入口地址得到了函數的前面幾個字節,保存在edx中。
    這讓我想到了前些日子在CSDN上面和別人討論的Hook API的原理,當時我還索取了一份Hook API的例程,如果我要Hook這里的函數timeGetTime,修改ecx中的地址或者修改edx處的頭幾條指令就行,用匯編語言寫,與上面看到的這段代碼類似。
    為了測試“齒輪”是不是要Hook這里的timeGetTime,我自己編寫了一個很簡單的小程序,調用timeGetTime,每秒鐘顯示一個數字。用“齒輪”進行加速后,果然顯示的速度快多了。再用SoftIce跟進這個timeGetTime函數,第一條指令變成一個跳轉,這充分說明“齒輪”確實Hook了這幾個API,不難猜測,他要改變函數的返回值,也就是說在timeGetTime結束時還要再跳入“齒輪”自身的代碼,耐心跟下去,我發現回到timeGetTime時棧里多壓了一個地址,這樣,當timeGetTime用ret指令返回時,先返回“齒輪”的代碼(這個思想確實很巧),返回值經過處理后,才跳回我的應用程序。至于怎么處理這個返回值就簡單了,改到原先的2倍,應用程序速度也就提高了2倍。
    回頭再看WD32ASM反匯編的代碼,我又發現在Hook API前面的不遠處使用了一次SGDT指令和兩次SLDT指令,這是x86保護方式的特有指令,用于獲得全局描述符表,進一步得到局部描述符表,這段代碼引起了我的興趣,用SoftIce跟進去,往下走幾步,一邊跟一邊猜,大致整理出了這樣的思路:
    1.創建一個內存映射,把自己的代碼映射到0x80000000以上的地方,在Win9x下,這塊虛存是所有進程共享的。
    2.先得到局部描述符表的地址,然后利用這張表修改代碼段的特權級。
    3.用局部描述符表創建一個調用門,在x86的保護模式下要進入ring0必須通過門來進行,CIH是用中斷門完成的,這里用調用門完成,異曲同工。
    4.保存幾個關鍵函數前六個字節,改為一條跳轉指令,跳到自己已經映射到高端的代碼。
    5.發生函數調用時進入自己的代碼,通過調用門進入ring0,恢復函數開頭的幾個字節,修改返回值。
    這時已經是凌晨5點了,既然主要思想已經掌握,我也就沒有細看這段代碼,8點鐘還要上課,睡覺去也。
    回頭想想,我認為王榮先生的代碼還有幾點值得推敲之處:
    1.如果要Hook API,一定要改變函數的第一條指令嗎?如果僅僅改變函數的入口地址,不是既容易編也容易調試嗎?
    2.即使要改變函數第一條指令,一定要進入ring0嗎?
    3.即使要進入ring0,使用中斷門不是比用調用門更方便嗎?
    當然,按照王榮先生在他的主頁上的說法,“變速齒輪”0.1版是他在三年前即1997年寫的,那時Windows95剛剛出來兩年,能有這樣的技術已經難能可貴了,這里對王榮先生的鉆研精神表示由衷的敬佩。
    在我研究出“變速齒輪”的原理后三天,我以自己原先的研究結果為核心,編寫出了“兄弟變速器”的最初版本,不用“變速齒輪”的技術是因為我認為我的技術更優越,何況也沒有拾人牙慧之嫌了 ^_^
    最后再次對王榮先生表示感謝,這樣精彩的創意值得我們敬佩。
posted on 2007-10-23 21:43 獨孤九劍 閱讀(347) 評論(0)  編輯 收藏 引用 所屬分類: Learn articles
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产伦理一区| 精品成人一区二区| 亚洲天堂偷拍| 99国产精品久久久久久久久久| 女同性一区二区三区人了人一| 亚洲电影免费观看高清完整版| 老司机凹凸av亚洲导航| 久久亚洲国产精品日日av夜夜| 国色天香一区二区| 蜜桃久久av一区| 久久综合九色综合网站| 亚洲乱码一区二区| 亚洲免费不卡| 国产精品一区二区视频| 久久精品亚洲热| 浪潮色综合久久天堂| 亚洲日本中文| 亚洲视频第一页| 国产一区二区三区网站| 免费在线欧美黄色| 欧美日韩免费区域视频在线观看| 亚洲一区二区精品视频| 午夜一区在线| 亚洲青涩在线| 亚洲欧美日韩国产一区二区三区| 黑人一区二区三区四区五区| 亚洲黄一区二区| 国产精品福利在线| 免费精品视频| 欧美无砖砖区免费| 麻豆国产精品va在线观看不卡| 欧美高清视频一区| 性欧美8khd高清极品| 久久婷婷久久| 香蕉久久精品日日躁夜夜躁| 久久久久国产精品麻豆ai换脸| 亚洲国语精品自产拍在线观看| 99爱精品视频| 在线观看的日韩av| 99在线热播精品免费| 一区二区三区在线不卡| 夜夜嗨一区二区三区| 在线国产日韩| 亚洲一区二区精品视频| 亚洲激情在线观看| 午夜精品美女自拍福到在线| 亚洲精品影院| 久久久国产精彩视频美女艺术照福利| 中日韩美女免费视频网站在线观看| 欧美在线国产| 亚洲免费一在线| 欧美精品www| 免费观看在线综合色| 国产精品视频一二| 99国产精品国产精品久久| 亚洲国产高清一区二区三区| 午夜久久久久久| 亚洲欧美久久久久一区二区三区| 久热精品在线视频| 久久综合九色| 国产一区久久久| 亚洲欧美制服另类日韩| 亚洲自拍三区| 国产精品qvod| 亚洲午夜激情网站| 亚洲香蕉成视频在线观看| 欧美福利小视频| 欧美黑人一区二区三区| 在线观看日韩av先锋影音电影院| 羞羞色国产精品| 欧美一级网站| 国产亚洲欧美一区二区三区| 亚洲在线免费观看| 亚洲欧美视频一区| 国产精品日韩久久久| 亚洲午夜国产成人av电影男同| 亚洲视频你懂的| 国产精品理论片| 亚洲一区二区三区视频| 久久高清免费观看| 国产一区视频观看| 久久青草欧美一区二区三区| 你懂的成人av| 亚洲三级影片| 国产精品国产三级国产普通话蜜臀| 99v久久综合狠狠综合久久| 亚洲视频观看| 国产欧美在线看| 久久国产一区二区三区| 蜜臀91精品一区二区三区| 亚洲激情电影中文字幕| 欧美精品播放| 亚洲女人av| 免费欧美日韩国产三级电影| 亚洲国产成人精品久久| 欧美精品在线免费| 亚洲午夜激情| 欧美~级网站不卡| 99国产欧美久久久精品| 国产精品日韩欧美一区二区| 午夜视黄欧洲亚洲| 欧美激情视频在线播放| 中文精品99久久国产香蕉| 国产精品日本欧美一区二区三区| 欧美亚洲日本国产| 亚洲第一视频网站| 亚洲在线一区| 亚洲成色最大综合在线| 欧美日韩卡一卡二| 久久精品国亚洲| 日韩视频永久免费| 另类人畜视频在线| 亚洲影院高清在线| 亚洲二区三区四区| 国产精品欧美久久| 女同性一区二区三区人了人一| 亚洲一区二区三区国产| 亚洲东热激情| 久久精品视频免费| 亚洲午夜羞羞片| 亚洲国产专区校园欧美| 国产欧美日韩亚洲精品| 欧美激情在线有限公司| 久久国产婷婷国产香蕉| 亚洲午夜在线视频| 亚洲人午夜精品免费| 久久综合综合久久综合| 香港成人在线视频| 一区二区三区免费看| 亚洲国产成人午夜在线一区| 国产精品一区久久| 欧美视频中文在线看 | 日韩天堂在线观看| 精品99一区二区| 国产欧美日韩一区二区三区| 欧美精品电影| 免费高清在线一区| 久久国产精品第一页| 亚洲欧美综合一区| 亚洲一区中文字幕在线观看| 日韩视频在线你懂得| 亚洲国产精品久久久久| 麻豆成人在线观看| 美女久久网站| 女女同性精品视频| 嫩草伊人久久精品少妇av杨幂| 久久久久免费视频| 久久免费偷拍视频| 久久视频一区二区| 久久久久久自在自线| 久久久久国产精品一区三寸| 欧美在现视频| 欧美在线日韩精品| 久久久久一区二区| 久久综合九色综合欧美狠狠| 久久久久欧美精品| 免费成人高清视频| 亚洲电影免费在线| 亚洲精品视频在线观看免费| 亚洲精品乱码| 一区二区日韩伦理片| 亚洲香蕉在线观看| 欧美专区18| 美日韩精品免费| 欧美激情视频一区二区三区在线播放 | 久久青草久久| 欧美日韩一区二区国产| 农夫在线精品视频免费观看| 久久婷婷国产综合国色天香| 久久久久国色av免费观看性色| 久久成人精品无人区| 久久成人国产精品| 久久精品99国产精品| 久久久久久久999| 免费久久精品视频| 欧美大片免费久久精品三p| 另类尿喷潮videofree| 免费在线观看一区二区| 欧美高清在线观看| 亚洲精品一区二区三区婷婷月| 亚洲伦理在线| 亚洲女人天堂成人av在线| 午夜精品一区二区三区四区| 久久精品麻豆| 欧美日韩国产精品专区| 国产精品一区毛片| 精品电影在线观看| 一区二区成人精品| 久久精品卡一| 亚洲欧洲免费视频| 一区二区三区视频免费在线观看| 99精品国产福利在线观看免费| 亚洲欧美日韩天堂| 欧美gay视频| 国产精品视频久久久| 亚洲高清视频在线观看| 小处雏高清一区二区三区| 欧美成人网在线| 亚洲免费婷婷| 欧美精品情趣视频|