日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机oleaut32.dll,OLEAUT32.dll模块中处理类型库的相关函数可导致代码执行 -电脑资料...

發布時間:2024/3/26 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机oleaut32.dll,OLEAUT32.dll模块中处理类型库的相关函数可导致代码执行 -电脑资料... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tombkeeper[Base64Decode("dG9tYmtlZXBlckB4Zm9jdXMub3Jn")]

2009.10.1

剛下載完幾部不錯的片子,但是考慮到做人要講信用,所以我還是堅持寫完了這篇Blog,

這個小問題是2008年初發現的,報告給微軟后,微軟認為這并不是一個安全漏洞——或者說,這并不是一個值得修復的安全漏洞。所以,以下以“小問題”來稱呼這個小問題。

接觸過COM的朋友,對類型庫(TypeLib)一定不陌生。類型庫由接口描述語言(IDL)編寫,類似下面這樣:

// TLBTest.idl

[

uuid( 11111111-1111-1111-1111-111111111111 ),

version( 1.0 ),

helpstring( "TLBTest COM" )

]

library TLBTest

{

importlib( "stdole2.tlb" );

[

uuid( 22222222-2222-2222-2222-222222222222 ),

//helpstring( "struct TLBTestVtbl" ),

dual,

oleautomation,

hidden,

nonextensible

]

interface TLBTest_ : IDispatch

{

};

[

uuid( 33333333-3333-3333-3333-333333333333 ),

//helpstring( "struct TLBTest" ),

appobject

]

coclass TLBTest

{

[default] interface TLBTest_;

}

}

把上面的TLBTest.idl用midl.exe編譯,生成TLBTest.tlb。這就是一個類型庫。類型庫可以獨立存在,也可以捆綁在PE文件中。

在Windows系統中,處理類型庫的函數都封裝在系統目錄下的OLEAUT32.dll模塊里。當你使用COM(譬如ActiveX控件)時,就會和這些函數打交道。

打開前面編譯生成的TLBTest.tlb,可以看到偏移0x1A8處的4字節是0。當類型庫被映射到內存中后,這四個字節會用來存放一個類實例指針。四個字節的0實際上是把這個指針初始化為NULL。

事實上,當類型庫被加載到內存中后,OLEAUT32.dll模塊中的代碼會先判斷一下這個指針是不是NULL:

775F4D8C???mov????edi, [esi+5Ch]??;

775F4D8F???test???edi, edi????????; 如果0x1A8處不為0

775F4D91???jnz????loc_775F4E6E

775F4E6E loc_775F4E6E:

775F4E6E???mov????ecx, edi????????;

775F4E70???call???CTypeInfo2::InternalAddRef(void)

如果這四字節不為0,就會直接將它作為類實例指針進行一系列的函數調用。類似這樣:

7760C1F0???mov????eax, [edi]

7760C1F2???lea????ecx, [ebp+var_2F0]

7760C1F8???push???ecx

7760C1F9???push???[ebp+lpSubKey]

7760C1FF???push???edi

7760C200???call???dword ptr [eax+10h] ; OLEAUT32!CTypeLib2::GetTypeInfo()

7760C203???mov????ebx, eax

7760C205???test???ebx, ebx

7760C207???jl?????loc_7760C13C

7760C20D???mov????eax, [ebp+var_314]

7760C213???test???eax, eax

7760C215???jnz????loc_776134EB

7760C21B???mov????eax, [ebp+var_2F0]

7760C221???mov????ecx, [eax]??????????; eax = 0x1A8處的值+4

7760C223???lea????edx, [ebp+var_334]

7760C229???push???edx

7760C22A???push???eax

7760C22B???call???dword ptr [ecx+0Ch]?; bingo

那么這個小問題影響哪些軟件呢?可以說,凡是用了OLEAUT32.dll中那些類型庫函數的軟件,都受影響,OLEAUT32.dll模塊中處理類型庫的相關函數可導致代碼執行》(https://www.unjs.com)。但是對大多數軟件來說,這并不算太大的問題。因為當其處理某類型庫時,也就意味著執行了類型庫對應的COM代碼。

譬如說,你在系統上安裝了Real Player,那么當你用任何軟件播放Real格式的媒體文件時,實際上都處理了Real Player的類型庫。理論上,如果這個類型庫是特殊處理過的,就可能使你執行任意代碼。但是別忘了,系統處理Real Player的類型庫是為了執行播放器的代碼。如果有人想構造一個惡意的Real Player,那么直接修改代碼本身是更簡單的辦法。

所以說,這個小問題,對一般人影響并不大。

但是,假如你從事的是軟件方面的技術工作,經常編譯一些網上看到的代碼,或者做一些逆向分析的工作,那么這個小問題也許就不那么小了。

很多開發工具都會處理那些并沒有安裝在系統上的COM中的類型庫。也就是說,這些工具僅僅只是“查看”COM的類型庫。而現在,當你認為自己只是在“查看”一個類型庫時,就可能已經執行了代碼。

VC中帶的OLEView工具、VC編譯器本身(cl.exe及其處理CPP的相關模塊)、eXeScope或者其它任何一個能查看PE資源中類型庫信息的工具、Total Commander的Fileinfo插件(http://physio-a.univ-tours.fr/tcplugins/FILEINFO.htm),至少這些工具都可以觸發這個小問題。

需要解釋一下的是,VC編譯器為什么會在受影響的列表里。VC編譯器支持直接從類型庫中“import”獲取接口定義的工作方式。也就是說,當我們在任意一個CPP文件中,插入一行:

#import "\\192.168.0.254\Daddy\TLBTest.tlb"

這樣,編譯器在編譯時就會試圖從192.168.0.254這臺主機上的Daddy共享目錄下讀取并解析TLBTest.tlb。

由于這是系統庫的問題,和任何軟件本身無關。所以它影響至少VC 6之后所有版本的VC。又由于至少Windows 2000之后所有Windows的OLEAUT32.dll都有這個問題,所以它基本上影響所有用VC的人。想象一下:你從某網頁找到一段能解決你問題的代碼,復制下來,一編譯,啪~。

這是一個控制指針的小問題,對這類問題一般首先想到的是Heap Spray。然而,在VC編譯器這類軟件中是沒法Heap Spray的(我和同事測試過多種方案,都沒有成功,當然也許還有我們沒有想到的方法)。

所以后來用了一種不依賴Heap Spray的方法,也可以幾乎百分之百成功利用。不過對軟件的大版本號略有依賴。以VC為例,VC 6的利用是一個代碼,VC 2005和VC 2008是另一個。也許還有人記得這篇Blog:/Article/200910/41773.html,其實講的就是這個小問題的利用。

順便多說一句:對部分類型的漏洞來說,DEP+ALSR+SEHOP雖然還不能說完全是浮云,起碼也是部分浮云了。

總結

以上是生活随笔為你收集整理的计算机oleaut32.dll,OLEAUT32.dll模块中处理类型库的相关函数可导致代码执行 -电脑资料...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜网站在线观看 | 一区二区三区激情 | 无套白嫩进入乌克兰美女 | 日韩大片一区二区 | 亚洲av无码精品色午夜 | 奇米影视9999 | yw视频在线观看 | 久久亚洲精品中文字幕 | 久草免费在线观看视频 | 日本在线观看www | 一区二区高清在线 | 亚洲天堂成人在线 | 91精品导航 | 欧美怡红院一区二区三区 | 91在线免费视频 | 在线免费看av | 奴性白洁会所调教 | 亚洲专区欧美专区 | 91国产丝袜在线播放 | 日本在线一区 | 成人av免费网站 | 你操综合 | 日韩一区二区三区四区 | 美女一区二区三区四区 | 国产九九在线 | 尤物av无码色av无码 | 色呦呦在线视频 | 动漫涩涩免费网站在线看 | 国产熟妇乱xxxxx大屁股网 | 男男上床视频 | 一级做a爱片性色毛片 | 成人自拍视频在线观看 | 老司机精品福利导航 | 国产大片一区二区三区 | 欧美图片自拍偷拍 | 福利电影一区二区三区 | 美女成人在线 | 亚洲逼逼 | 少妇太紧太爽又黄又硬又爽小说 | av最新网址| 国产精品久久久久久中文字 | 久久久免费av | 99在线观看视频 | 日本午夜电影网站 | 欧美日韩激情在线 | 欧美精品久久久 | 超碰97在线资源站 | 日本三级黄色大片 | 亚洲一区二区三区久久久成人动漫 | 美女av在线免费观看 | 国产一级爽片 | 伊人色图| 久久精品性| 又黄又免费的视频 | 亚洲精品一区二区三区中文字幕 | 一区二区三区在线观看av | 国产精品黄网站 | 国产毛片基地 | 少妇视频一区二区三区 | 美日韩在线观看 | 免费在线观看av片 | 国产69精品一区二区 | 日韩av日韩 | 国产一区二区三区在线观看免费 | 色av导航| 黑人黄色录像 | av网址观看 | 在线观看国产福利 | 欧美成人一区二区三区 | 爱爱视频网| 九九操| 女女互慰揉小黄文 | 国产中文字幕乱人伦在线观看 | 2021国产精品 | 亚洲va久久久噜噜噜无码久久 | 欧美三级小视频 | 美足av| 国产呦系列 | 国产精品视频看看 | 国产三级三级三级三级三级 | 亚洲国产精品久久久久 | 日本成人性爱 | 尤物一区 | 久久午夜精品 | 日本在线观看 | 上床视频在线观看 | 三级91| 综合在线观看 | 日韩一区二区三区久久 | 成人免费看毛片 | 成人 黄 色 免费播放 | 自拍偷拍亚洲视频 | 中文字幕视频观看 | 少妇无内裤下蹲露大唇视频 | 97理伦| 色妞网| 欧美大喷水吹潮合集在线观看 | 久久天堂av综合合色蜜桃网 | 色综合久久88色综合天天 |