逆向分析使用COM组件对象模型的代码
《惡意代碼分析實(shí)戰(zhàn)》第七章實(shí)驗(yàn)7-2的程序使用了COM進(jìn)行聯(lián)網(wǎng)通信。首先把書(shū)上第七章關(guān)于COM介紹的原文貼出來(lái):
總結(jié)一下,就是說(shuō)惡意程序有時(shí)會(huì)通過(guò)另一個(gè)服務(wù)程序提供的接口函數(shù)實(shí)現(xiàn)一些操作,書(shū)上給的例子就是調(diào)用IE瀏覽器的 IWebBrowser2 接口的 IWebBrowser2Vtbl.Navigate 函數(shù)實(shí)現(xiàn)訪問(wèn)WEB地址。
逆向分析實(shí)驗(yàn)7-2,我們會(huì)看到如下代碼(已注釋):
HRESULT CoCreateInstance(REFCLSID rclsid,LPUNKNOWN pUnkOuter,DWORD dwClsContext,REFIID riid,LPVOID *ppv );關(guān)注 CoCreateInstance 函數(shù)的參數(shù),rclsid 是一個(gè)全局變量,類型是 GUID,里面的值是這樣的:
這個(gè)值可以在注冊(cè)表 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046} 找到,里面存儲(chǔ)的字符串值就是IE瀏覽器:
riid 參數(shù)表示接口,這個(gè)值是 IE 程序指定的,在本例中表示 IWebBrowser2 接口:
調(diào)用 CoCreateInstance 后,通過(guò)參數(shù) ppv 返回一個(gè)函數(shù)指針表,在本例中,調(diào)用了 +2C 偏移指向的函數(shù),我們可以在結(jié)構(gòu)體視圖添加一個(gè)標(biāo)準(zhǔn)結(jié)構(gòu)體 IWebBrowser2Vtbl:
然后應(yīng)用到匯編中,可以自動(dòng)識(shí)別到 +2C 處是 Navigate 函數(shù):
因此,這個(gè)程序的功能之一就是通過(guò)IE提供的 IWebBrowser2Vtbl.Navigate 函數(shù)訪問(wèn)了 http://www.malwareanalysisbook.com/ad.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的逆向分析使用COM组件对象模型的代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: reflective dll injec
- 下一篇: CreateFileMapping 内存