• <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>

            道。道。道

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

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理

            常用鏈接

            搜索

            •  

            最新評(píng)論

            如前所述, Windows95 不是一個(gè)“純” 32 位操作系統(tǒng),其內(nèi)核模塊中的 USER GDI 均是用 16 位代碼實(shí)現(xiàn)的。 USER32.DLL GDI32.DLL 只是 16 位的 USER.EXE GDI.EXE 32 位調(diào)用接口。因此,如果屏幕截獲程序用 32 位代碼實(shí)現(xiàn),則只能截獲 32 位應(yīng)用程序?qū)?/span> USER32.DLL GDI32.DLL 的調(diào)用,無(wú)法截獲 16 位應(yīng)用程序?qū)?/span> USER.EXE GDI.EXE 的調(diào)用,所以如果想截獲所有應(yīng)用程序(包括 Windows95 的桌面程序 Explorer )中有關(guān)屏幕輸出的系統(tǒng)調(diào)用,則應(yīng)該用 16 位代碼實(shí)現(xiàn)屏幕截獲功能。這就是 LTW32 為什么不是“純” 32 位應(yīng)用程序的原因。 LTW32 主要截獲兩個(gè)系統(tǒng)調(diào)用 TextOut() ExtTextOut() ,方法很簡(jiǎn)單,把這兩個(gè)函數(shù)的頭五個(gè)字節(jié)修改為一個(gè) JMP FAR 指令,使得對(duì)這兩個(gè)函數(shù)的調(diào)用均轉(zhuǎn)向屏幕截獲程序。這就涉及到一個(gè)關(guān)鍵問(wèn)題:動(dòng)態(tài)修改 Windows 的代碼。

            在傳統(tǒng)的 DOS 程序中,動(dòng)態(tài)修改程序代碼無(wú)任何困難,但在 Windows 中則不然,因?yàn)樵?/span> Windows 中,代碼可被同一程序的多個(gè)實(shí)例(進(jìn)程)共享,所以系統(tǒng)不允許應(yīng)用程序動(dòng)態(tài)的修改代碼。在 16 位側(cè),內(nèi)存的可讀、寫屬性是與段選擇符聯(lián)系在一起的。段選擇符基本上可分為兩類:數(shù)據(jù)段選擇符和代碼段選擇符。前者可讀、可寫、不可執(zhí)行;后者可讀、可執(zhí)行、不可寫。 Windows 提供了這兩類段選擇符相轉(zhuǎn)換的系統(tǒng)調(diào)用。未公開(kāi)的 16 位系統(tǒng)調(diào)用 AllocCStoDSAlias() 為給定的代碼段選擇符分配一個(gè)具有相同線性基址和尺寸的數(shù)據(jù)段別名( DS Alias )。通過(guò) DS 別名可以對(duì)給定的代碼段進(jìn)行修改。 AllocCStoDSAlias() 的使用方法如下:

            WORD (FAR PASCAL *AllocCStoDSAlias)(WORD);

            AllocCStoDSAlias = GetProcAddress(

            GetModuleHandle(“KERNEL”), ”ALLOCCSTODSALIAS”);

            調(diào)用參數(shù)為給定的代碼選擇符,調(diào)用成功時(shí)返回一個(gè)線性基址和尺寸均與原代碼選擇符相同的 DS 別名。當(dāng)不再使用此 DS 別名時(shí),要用系統(tǒng)調(diào)用 FreeSelector() DS 別名釋放掉。

            使用上述技術(shù),就可實(shí)現(xiàn)動(dòng)態(tài)修改 Windows 代碼,從而改變 GDI 的系統(tǒng)調(diào)用 TextOut() ExtTextOut() 的執(zhí)行動(dòng)作,實(shí)時(shí)地截獲屏幕輸出,為實(shí)現(xiàn)鼠標(biāo)隨動(dòng)翻譯提供可能。

            把上述的 32 位到 16 位的形式替換、 32 位代碼與 16 位代碼的數(shù)據(jù)交換、動(dòng)態(tài)修改 Windows 內(nèi)核等技術(shù)綜合應(yīng)用在一起,配合單詞查找算法和詞組分析算法就可以實(shí)現(xiàn)鼠標(biāo)隨動(dòng)翻譯功能。

            posted on 2006-11-18 16:48 獨(dú)孤九劍 閱讀(600) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Win32
            成人国内精品久久久久一区| 日韩久久无码免费毛片软件| 色婷婷狠狠久久综合五月| 久久久青草青青亚洲国产免观| 伊人久久大香线蕉AV色婷婷色| 波多野结衣久久| 久久人做人爽一区二区三区| 伊人久久亚洲综合影院| 色妞色综合久久夜夜| 国内精品综合久久久40p| 精品伊人久久大线蕉色首页| 日日噜噜夜夜狠狠久久丁香五月 | 亚洲va久久久噜噜噜久久天堂| 国产精品久久久香蕉| 新狼窝色AV性久久久久久| 久久久久亚洲av无码专区喷水| 狠狠色丁香久久婷婷综合五月| 久久精品草草草| 久久久久综合中文字幕| 精品无码久久久久国产动漫3d| 欧美熟妇另类久久久久久不卡| 久久不射电影网| 天天综合久久一二三区| 色妞色综合久久夜夜| 99热成人精品免费久久| 天天综合久久一二三区| 狠狠88综合久久久久综合网| 99久久精品免费观看国产| 午夜精品久久久久久久无码| 无码AV中文字幕久久专区| 国产成人精品久久亚洲高清不卡 | 久久人人超碰精品CAOPOREN | 久久久久免费精品国产| 性欧美大战久久久久久久| 久久av无码专区亚洲av桃花岛| 国产精品青草久久久久福利99 | 99久久人妻无码精品系列| 久久精品国产亚洲Aⅴ香蕉| 久久综合久久自在自线精品自 | 手机看片久久高清国产日韩 | 国产精品一久久香蕉国产线看观看|