方法步驟
1:
第一步就是打開word.進入軟體之後點擊打開一個文件。
2:
第二步你會看到右上角就一個文件項目欄,點擊進入,
3:
進去之後,你會看到有羨汪許多項目欄,你只需要點擊另存為
4:
點擊之後,它會讓你選擇儲存的位置,點擊選擇儲存的位置。
5:
然後會彈出一個窗口,你會看到下面有一個儲存的格式,點擊它。
6:
點擊之後會有派派態許多格式的文本,選擇你需要轉的格式,點完成就塵源可以了。
Ⅱ 微信電腦端遷移聊天記錄到模擬器雷電
xzjpanda
關注
微信聊天記錄導出及年度報告軟體使用方法原創
2022-09-2000:48:17
6點贊
xzjpanda
碼齡10年
關注
(軟體下載地址在文末!)
要想使用pdX_Wechat_Stats軟體,首先要獲取自己微信聊天記錄的資料庫。類比計算流體力學,我把導出微信聊天數據這個過程稱為前處理,實現這個功能的商用軟體有不少,但價格普遍高得離譜,一般只能導出一個賬號,只能使用一年,只具備前處理功能,後續的分析圖表也不能生成,不得不說是非常昂貴了。
那麼如何避免落入這樣低性價比的坑呢?當然是自己動手,豐衣足食了。其實我也可以在程序中幫助大家實現這個前處理的功能,但考慮到這樣做有法律風險,可能會被別有用心的人誣告為非法獲取用戶信息,所以聊天記錄導出這個前處理過程我就不在程序中寫了,這里教大家用最簡單的方法手動導出微信聊天資料庫EnMicroMsg.db文件,之後解密資料庫和分析制圖的工作交給我寫的pdX_Wechat_Stats軟體就ok了!
一.前處理
不論你的手機是Android還是iOS的操作系統,想要獲取root許可權(蘋果稱為越獄)在現在各大品牌機上都變得不太可能(親測華為和小米的旗艦機都不行),然而要想拿到EnMicroMsg.db資料庫文件,就必須訪問root許可權才能開放的根目錄。如果你手邊正好有一台能夠root的Android設備,比如老舊手機或者雜牌低配機,那你可以嘗試把微信的聊天記錄同步到那台設備上再訪問。如果沒有能夠root的手機,我們就需要藉助電腦上的安卓模擬器實現root的手機功能了。
注意這里有個很重要的條件:安裝安卓模擬器的電腦必須帶有攝像頭,最好是你的筆記本。實在沒有的話,也可以在手機上安裝虛擬機,只要能夠獲取root許可權即可!
這里以win10電腦上的Android模擬器為例,簡要說明一下操作步驟:
1.首先隨便下載一個Android模擬器(比如雷電,夜神,逍遙等)
2.然後在模擬器的設置中打開root許可權(如下圖是雷電模擬器的設置截圖)
圖1模擬器設置root許可權
3.在模擬器上安裝微信,模擬器解析度設置為手機形式的窄長型,注意不必著急登錄,否則會把你正常手機上的微信踢下線。
圖2模擬器安裝微信
4.進入你平時正常使用的手機上的微信,點擊設置à聊天à聊天記錄備份與遷移à遷移à遷移到手機/平板微信
圖3導出設置
圖4導出設置
圖5導出設置
圖6導出設置
圖7導出設置
5.選擇聊天記錄的時間和內容。內容強烈建議選擇」不含圖片/視頻/文件」,否則遷移過程可能會非常慢。時間以你想統計的年月日跨度為准,可以導入幾年或者幾個月的,本程序都設計了智能識別的處理機制,但跨度超過2年以上的聊天記錄可能數據量非常大,遷移過程可能會很慢,如果可能盡量選取跨度1年左右的聊天記錄。另外必須強調的一點是最好不要遷移群聊的記錄,盡量選取你認為有必要統計的好友的私聊記錄,不要點擊全選,否則軟體可能會因為數據量過大而崩潰。本軟體只統計私聊的內容,涉及群聊的會在程序內部自動刪除,因此如果不小心選到了群聊的也不必擔心軟體出錯,只要不是無腦全選各種聊天記錄,本軟體都能有效處理。
6.選擇完成後點擊遷移聊天記錄,會出現如下的二維碼,此時在電腦的模擬器上登錄微信,用攝像頭掃描該二維碼即可開始同步。
7.同步完成後,在安卓模擬器的根目錄/data/data/com.tencent.mm/MicroMsg/(一個32位字元串命名的文件夾中)中找到EnMicroMsg.db文件。這里的(32位字元串命名的文件夾)如果你只在模擬器上登陸過一個微信的話就只有一個,如果有兩個這樣命名的文件夾的話(如下圖),那就每個都打開看看哪個文件夾中能找到EnMicroMsg.db。找到後將該db文件拷貝到電腦上。關於如何從安卓模擬器中復制文件到電腦文件夾中,每個模擬器操作方法各不相同,請自行網路解決。比較好的建議是使用雷電模擬器的共享文件夾功能實現模擬器和電腦之間的文件傳遞。
8.獲取手機IMEI碼和你的微信uin值。具體操作方法可以自行網路,每種安卓模擬器都會有顯示IMEI值的地方,至於微信uin,也就是你真實的微信號,需要在安卓模擬器的根目錄/data/data/com.tencent.mm/shared_prefs文件夾下找到auth_info_key_prefs.xml文件拷貝到電腦中並用記事本打開,找到如下auth_uin文字,其中value後面跟著的就是你的uin碼了,我的是8位,如果是負數則復制的時候一定要保留負號,每個人uin碼的位數可能不一樣。至此,前處理任務就算大功告成了。
二後處理
1.根據下面或文末的連接下載pdX_wechat_stats文件夾(或者壓縮包),並將其復制(或解壓)到一個英文目錄下,進入解壓後的pdX_wechat_stats文件夾內,找到Wechat_StatsV1.exe文件,退出各種殺毒軟體後再雙擊打開(畢竟自己開發的小軟體沒給殺軟交過路費),本軟體沒有後門,可以斷網運行,不會竊取你的聊天記錄上傳。
網路網盤鏈接:https://pan..com/s/1FFs5sXYl62Z6MHNtfQsS4g?pwd=6666
提取碼:6666
2.雙擊打開後需要耐心等待5-10秒左右,因為我在打包過程中設置了加密演算法防止別有用心的人破解,所以需要自解密一會。
軟體打開後首先會彈出下圖提示窗:
請認真閱讀以後顯示的每一個提示窗的文字!!!詳細操作的視頻可以關注作者的B站賬號後獲取。
3.之後如果是第一次運行會提示注冊,將顯示的機器碼,請復制並記錄下該機器碼,仔細閱讀pdX_wechat_stats文件夾中的ReadMe.txt文檔,找到注冊碼的獲取方法。
4.該注冊碼成功解鎖後即可永久使用,不限微信號,不限時間,重裝系統也不會失效!
5.之後如果是第一次使用,需要將前處理步驟中獲取的EnMicroMsg.db這個資料庫文件拷貝到Wechat_StatsV1.exe所在的文件夾「pdX_wechat_stats」(以下簡稱程序文件夾)中,特別要注意,這個文件夾中的其他文件千萬不要刪或者隨意重命名,否則程序很可能崩潰。
6.建議在打開軟體前就把資料庫文件拷貝到程序文件夾,如果拷貝正常那麼下一步程序會顯示如下界面,請你輸入前處理步驟中獲取的IMEI碼和你的微信uin。
7.之後軟體會自動幫你解密EnMicroMsg.db資料庫文件,解密過程中會彈出cmd的黑色窗口,不用理會但千萬不要手動關閉,如果解密成功,會彈出如下所示的提示,之後再次運行軟體想要打開同一個資料庫的話就不用二次解密了,軟體會直接跳過解密步驟進入下一步,非常的方便。
8.如果想要分析另一個微信號或者新一段時間的資料庫,在下圖的提示中選擇「解密新的」,之後按照彈窗提示內容來做就行了,再次提醒大家注意認真閱讀每個彈窗的內容,不要著急點關閉,按照要求來操作這里就不再贅述了。
9.解密成功後程序開始進入分析步驟,首先會讓你選擇你想統計的好友,這里選擇All_friends的話最後生成的圖表會比選擇任何個人要多出6張排行榜,其他區別以及注意事項請仔細閱讀窗口的提示文字!
10.以上好友列表的順序是按照姓名拼音的順序升序排列的,和ASCII碼值的順序類似,數字排在字母前面。如果你的好友太多,在列表中不好找到的話,可以點擊Cancel轉入手動輸入界面,本程序也設計了相應的GUI介面,此處不再放圖贅述。
11.選擇完待分析的好友後,程序會讓你輸入你想要的命名,這個命名會體現在每一張圖表的標題上,建議給你和待分析的好友都起一個短一點的名字(一般人名不要超過4個字),否則圖表可能會因為標題過長而變形。
12.接著程序會在程序目錄中(即pdX_wechat_stats文件夾)生成一個好友名字+_statistic命名的文件夾,並在其中導出你選擇的好友的聊天記錄為excel表格(名字為XXX_MsgTable.xlsx),表格內容在前述的效果展示中已經描述過了。之後所有關於該好友的統計圖表和word版報告都會導出到該文件夾中。
13.在word版報告的製作過程中,程序會提示你詞雲選項
14.請輸入你想自定義的分詞詞典,該詞典輸入一次後會自動保存,再次運行程序會自動載入上次輸入的詞彙。如果不理解這個詞典什麼意思,建議網路jieba自定義詞庫。
15.請輸入你不想在詞雲中顯示的詞彙,該詞典輸入一次後同樣會自動保存,再次運行程序會自動載入上次輸入的詞彙。如果不理解這個詞典什麼意思,建議網路詞雲停用詞。
16.稍等片刻,生成的兩幅詞雲圖會自動彈出,你可以根據生成的效果選擇是否滿意,如果選擇不滿意想要修改詞典,程序會返回第14步,你可以無限次修改,直到點擊滿意繼續下一步為止。
17.考慮到舔狗指數對於和我一樣的廣大單身狗朋友們傷害性過高,本程序貼心的設計了可選展示,你可以在下圖所示的選擇框中自由選擇展示與不展示舔狗指數在文字海報上。
18.word報告輸出成功後會展示捐贈界面,還請各位帥氣的小哥哥小姐姐大方一點,給我這樣獨立開發軟體的愛好者一點堅持研究的激勵。
19.最後如果你的電腦上安裝了word2010以上的版本,程序會自動打開導出的word版年度報告,這個word也可以在第12步中提到的名字文件夾中找到並手動打開,此外該文件夾中還保存有解析度足夠滿足論文發表要求的高清圖(300dpi),有科研需要的朋友直接看英文名就懂了,此處就不科普了。
軟體下載網路網盤鏈接:https://pan..com/s/1FFs5sXYl62Z6MHNtfQsS4g
提取碼:6666
文章知識點與官方知識檔案匹配
Python入門技能樹首頁概覽
210933人正在系統學習中
打開CSDNAPP,看更多技術內容
2022Web年鑒—JavaScript年度報告_小生方勤的博客
JavaScript打包工具現在有很多種選擇,但我們最經常想到的一個還是Webpack。幸運的是,Webpack生成的JavaScript包含許多簽名,我們可以很方便的檢測網站生產環境的JavaScript是否使用Webpack打包。使用webpack打包JavaScript的網站在1000個最受...
繼續訪問
2022年有多少人使用微信?_網路研究院的博客
微信是由科技巨頭騰訊在中國開發的多功能消息傳遞、社交媒體和支付平台。它從一個簡單的消息傳遞平台開始,改進了它的功能,並添加了一個名為微信支付的移動支付功能。微信支付在2021年記錄了約9億用戶,預計到2025年將達到25...
繼續訪問
手把手教你生成你的獨家微信聊天年度報告
大家好,我是機靈鶴。今天是跟女朋友在一起10個月的紀念日,作為一名會Python的程序員,我決定將和女朋友的聊天記錄導出來,生成一份專屬於我們的《2021戀愛年度報告》。感興趣的朋友也可以學起來。廢話不多說,直接進入正題。0.導出聊天記錄由於破解微信聊天資料庫的操作相對比較敏感,感興趣的朋友可以移步《》。經過一系列操作,我從微信資料庫中導出了跟女朋友的聊天記錄。聊天記錄數據表message.csv格式如下。其中,我們只需要關注以下幾列即可。type:消息類型,如
繼續訪問
微信聊天記錄導出和年度報告製作小軟體
教你如何導出微信聊天記錄並製作年度報告等統計圖
繼續訪問
2022年輕人微信情商報告.pdf-行業報告文檔類資源-CSDN文庫
基於微信小程序的點餐系統設計與實現開題報告.pdf被C**86下載,賺了4.0元基於sobel運算元和數學形態學的分水嶺分割演算法畢業設計被a**10下載,賺了1積分易語言5.11破解補丁(雪風版)被a**70下載,賺了1積分...
繼續訪問
2022年企業微信生態研究報告.pdf-行業報告文檔類資源-CSDN文庫
2022年企業微信生態研究報告.docx20220321-【微信】艾瑞咨詢:2022年企業微信生態研究報告-49頁.pdf20220321-【微信】艾瑞咨詢:2022年企業微信生態研究報告-49頁.pdf玩轉「小程序教育」裂變營銷——知識圈CEO孫大偉為學而思做微信生態主...
繼續訪問
一鍵導出微信所有聊天記錄的小工具
本軟體的惟一作用是把微信電腦版的聊天記錄一鍵導出到表格上,每個人或者每個群的記錄保存到一個表格中,方便備份和管理並且如果您的語音是轉過文字的,它也能把語音轉文件的結果做為聊天文字轉出來同時可以把語音導出為MP3文件,隨時可以在電腦上回放
繼續訪問
最新發布(綜述)微信聊天記錄導出製作年度報告方法和相關軟體
(綜述)微信聊天記錄導出方法和相關軟體
繼續訪問
2022年微信分析報告.docx_微信-行業報告文檔類資源-CSDN文庫
2022年城市大腦一網統管數據中台建設方案.pptx2022年城市大腦一網統管數據中台建設方案.pptx導入證書可以解決」無法建立到信任根頒發機構的證書鏈"問題。解決」無法建立到信任根頒發機構的證書鏈",則導入相關證書。
繼續訪問
叮咚!請查收你的2022openGauss年度報告_openGauss社區的博客-CSDN博...
你在openGauss的點點滴滴,我們都已用心銘記掃描下方二維碼生成您與openGauss的年度記憶新歲序開共赴新程願您歲歲常歡愉年年皆勝意openGauss社區本文分享自微信公眾號-openGauss(openGauss)。
繼續訪問
獲取微信uin的方法
本篇文章給大家講述了如何最快速的獲取微信uin的方法,對此有需要的朋友可以學習下。
微信聊天記錄查看、恢復2之uin為10位數字
微信uin
繼續訪問
微信小程序獲取用戶信息流程(2022年版)_LeeBrook0的博客_微信...
開門見山地說,本文主要講述微信小程序在2022年以後獲取用戶信息的主要方法,如果想要了解2022年之前微信小程序獲取用戶信息的相關知識或者是微信小程序之前這部分的設計思想的話,推薦博主的下面這篇博客給大家了解一下:微信小程序獲取用戶...
繼續訪問
基於python的微信好友數據分析_python微信好友特徵數據分析及可視化
#微信好友特徵數據分析及可視化#1.導包操作fromwxpyimport*.....
繼續訪問
一文教會你導出微信聊天記錄
破解微信資料庫密碼,用python導出微信聊天記錄
繼續訪問
【安卓wechat微信導出聊天記錄】
安卓wechat微信導出聊天記錄1、下載夜神安卓模擬器https://www.yeshen.com/2、打開模擬器最頂部設置圖標,確認IMEI是否存在(其實不存在也可以????)3、登錄手機微信,在設置-聊天-聊天記錄,將聊天記錄備份到電腦微信4、在模擬器下載微信並登錄5、將電腦微信聊天記錄再次備份到模擬器微信里。如果你的電腦微信被退出了,可以登錄模擬器微信,點擊掃碼登錄哦。6、打開右側小圖標,點擊打開安卓文件夾7、左側點擊根目錄,進入/data/data/com.tencent.m
繼續訪問
導出微信聊天記錄生成詞雲
獲取聊天資料庫、解密數據、導出聊天數據、生成詞雲總結
繼續訪問
微信聊天記錄導出為電腦txt文件教程
本文的最終目的是將手機微信的聊天記錄導出到電腦里,變成txt文本文件,然後對其進行分析。網上有一些工具也可以完成這個功能,但是基本都是付費的。手動操作的話,找了很多的博客,基本沒有完全有效的。最終找到一篇很靠譜的教程:小米手機提取微信聊天記錄資料庫·Issue#1·Heyxk/notes本文基本參考這篇進行整理。首先上我的githu...
繼續訪問
蘋果手機微信消息備份
最近發現手機聊天記錄太多了,想刪掉又擔心有些重要的事情忘記,所以就找了一個備份流程,大家一起共享,如何導出iOS版微信的聊天記錄?首先根據問題,我們需要明確一點:導出的是蘋果手機的微信聊天記錄。蘋果手機搭載的是iOS系統,與安卓手機的Android系統不同的是iOS無法獲取用戶最高許可權,眾所周知,安卓手機只要在root之後就可以獲取用戶最高許可權,對手機進行操作。不過導出iOS微信聊天記錄,掌握方法和正確工具便可以輕松解決了。方法一:微信功能備份聊天記錄登錄PC端微信,打開手機微信同步
繼續訪問
python將微信聊天記錄生成詞雲
問題描述:將微信的聊天記錄導出,生成詞雲,留作紀念。先看效果:非常多的哈哈哈(◕ˇ∀ˇ◕)**第一步:導出微信聊天記錄**將微信聊天記錄導出成文檔,知乎上有很多種方法,其中主要是兩類,第一種是通過root手機,獲取許可權;第二種為通過AppleiTunes備份。這里選擇第二類方法(小米note3不支持root),具體過程也較為簡便,感謝知乎**@hangcom**提供的免費工具...
繼續訪問
熱門推薦微信聊天記錄數據提取並分析
項目背景:公司有一部手機,這個手機專門用微信群拉客戶的。手機里微信群聊天記錄很多,想把這些聊天記錄提取出來分析一下有用的信息。查找一下首先看一下有沒有人之前做個這個項目,如果有的話就不用浪費時間開發了,果然找到一些從電腦上提取微信聊天記錄。Python-獲取微信聊天記錄(可以點擊進入查看原作者文章)從手機上提取聊天記錄。分別是在兩個論壇上找到的兩篇文章1.精益論壇2.安卓...
繼續訪問
將微信數據提取為exel表格(2022年版)免root保姆級教程
1.將數據導出到電腦:我們的微信數據記錄在手機的文件夾中,為了保護隱私,微型軟體給數據進行了加密處理,無法直接提取並轉化。我們需要藉助備份軟體來將微信數據備份成壓縮包,並導出到電腦(1)首推:MUI中的備份與恢復(缺點:僅限MUI系統)打開設置——搜索備份與恢復——手機備份恢復——選擇第三方應用程序和應用數據——選擇微信——進行備份將手機連接電腦(需打開文件傳輸模式)——找到手機所在硬碟——尋找目錄MIUIackupAllBackup20220416_0139
繼續訪問
微信聊天記錄數據分析
目錄一、項目背景二、數據准備三、數據預處理及描述性統計四、數據分析1.聊天時間分布圖2.高頻詞彙統計3.詞雲圖展示五、其它探索性分析一、項目背景2021年2月20日我和我女朋友第一次見面,之後開啟了我們兩個人的故事,時隔一年我想將我們的聊天記錄提取出來進行簡單的數據分析一下。微信裡面有2021年4月20日至2022年2月20日的聊天記錄,一共十個月的數據。二、數據准備在網上有許多文章關於可以找到關於...
繼續訪問
微信聊天記錄導出
本文將介紹如何將微信聊天記錄導出為結構化數據
繼續訪問
記錄導出微信聊天記錄到硬碟的過程
本文記載了將微信聊天記錄導出到電腦成html文件到過程
繼續訪問
菜鳥記錄:安卓手機導出微信聊天記錄
安卓手機導出微信聊天記錄[ios導出文末有文章,但沒試過]大致流程!!第一步:安卓手機獲取root許可權(必須獲取)一、備份聊天記錄到電腦第二步:電腦安裝手機模擬器第三步:獲取聊天記錄資料庫EnMicroMsg.db第四步:解密聊天記錄資料庫大致流程!!第一步:安卓手機獲取root許可權(必須獲取)重點:模擬器(或手機)必須獲取root許可權!!!一、備份聊天記錄到電腦步驟1.打開電腦版微信左下角點擊「三個橫」------>「備份與恢復」選擇「備份聊天記錄至電腦」打開手機
繼續訪問
微信年度報告怎麼生成2022
Ⅲ KB927270Workstation漏洞怎麼修復
微軟最近為了減輕系統管理員的工作負擔,把發布安全公告的周期從不定期改為定期發布,這無疑給系統管理員安裝補丁提供畢橋猛了極大的方便,可以一起安裝幾個補丁。而不用為每個補丁都折騰一番。在2003年11月11日,微軟又一起發布了3個安全公告,其中漏洞危害等級最高的當屬MSO3-049:WindowsWorkstation服務遠程溢出漏洞了。以下我們就這個漏洞的一些具體信息展開探討。消汪
關於這個漏洞的安全公告可以從http://www.microsoft.com/technet/security/bulletin/MS03-049.asp看到。但是按照慣例,微手橋軟網站上的安全公告只有一些關於漏洞的簡單描述、受影響平台、補丁下載地址等,不會有詳細的技術信息,這點信息對系統管理員人員來說己經足夠了,但對想深入了解一些技術細節的讀者來說是遠遠不夠的。那麼,一般情況下我們該從何處去了解漏洞的詳細技術信息呢?一般有3種途徑:
1、在安全公告的後面,一般會有"感謝某某人/某某公司/某某組織發現開向微軟提交漏洞"這樣的信息,然後我們就可以嘗試去漏洞發現者的網站上找找看有沒有關於漏洞的詳細技術信息。
2、關注一些黑客/安全論壇、郵件列表等等,一般情況下在那些地方都會就漏洞展開一些深入的探討。
3、自己獨立研究。假如上述途徑不行,那就只有靠自己了。
本文提到的漏洞是由世界著名的網路安全公司EEYE Digital Security的安全研究人員發現的,在他們公司的網站上也公布了關於此漏洞的詳細技術信息,我們可以從http//www.eeye.com/html/Research/Advisories/AD2003111l.html獲得這些信息(英文)。
Microsoft DCE/RPC服務可以提供網路管理功能,這些功能提供管理用戶賬戶和網路資的源管理,部分網路管理功能在Windows目錄下的debug子目錄會生成調試日誌文件。
微軟Windows200O和WindowsXP中的Workstation服務在處理日誌記錄時缺少充分的邊界緩沖區檢查,遠程攻擊者可以利用這個漏洞提供超長參數觸發緩沖區溢出,以SYSTEM許可權(Workstation服務默認以SYSTEM許可權運行的)在系統上執行任意指令。
日誌功能中使用vsphntf()在日誌文件中生成字元串,日誌文件名為NetSetup.LOG,它保存在%SYSTEMROOT%\debug目錄中。這個記錄函數有部分處理Workstation服務命令的函數調用,如NetValidateName、NetJoinDomain等。在NetValidateName()這個函數中,computer name作為第二個參數最終記錄在日誌文件中。
例如,我們使用如下形式調用NetValidateName()APL
NetValidateName(L"\\\\192.168.0.100","AAAAAAAA",NULL,NULL,0);
那麼,我們可以在遠程主機中產生如下記錄條目:
08/13 13:01:01 NetpValidateName:checking to see if''is valid as type 0 name 08/13 13:01:01 NetpValidateName:''is not a valid NetBIOS\\AAAAAAAA name:0x57
如果我們指定超長字元串作為NetVaUdateName()API的第二個參數,如果調試文件可寫就可以在特定主機上發生緩沖區溢出。
一般如果是NTFS文件系統,在Windows目錄中的debug目錄不允許所有人可寫,這表示不能使用NULL會話來生成日誌。因為WsImpersonateClien()API在打開日誌文件前調用,如果連接客戶端沒有有效的許可權來寫日誌文件,那麼CreateFUe()就會失敗,vsphntf()就不會被執行,因此此漏洞在FAT32系統和%SYSTEMROOT%\debug目錄可寫的情況下可被利用。
但是,在WindowsXP上實現了部分擴展的RPC函數,這些函數在調用WsImpersonateClient()前打開日誌文件,不過這些RPC函數沒有提供文檔化說明,但可以通過觀察WKSSVC.DLL中的函數表得到。這些擴展命令的RPC號開始於OxlB,如OXlB調用NetpManageComputers(),但在打開日誌文件前不調用WsImpersonateClient()。
NetpManageComputers()的使用沒有被公開化,但是我們可以在LMJoin.h中找到NetAddAlternateComputerName()API的原型定義,這個API從NETAPI32.DLL導出,這個API也一樣沒有文檔化。
我們可以使用如下形式調用這個RPC函數
(0x1B):
NetAddAlternateComputerName(L"\\\\192.168.0.200",LONG_UNICODE_STRING,0,0,0);
使用上述方法,我們不需要任何特殊許可權(只需要有能建立IPCNULLSession的許可權),便可使得遠程主機把第二個參數寫到它的日誌文件中去,如定義超長Unicode字元串作為第二個參數("AltemateName"),在第一個參數指定的的遠程系統就會由於緩沖區溢出而崩潰。Unicode字元串long_unicode_string會在日誌記錄函數調用前被轉換為ASCII字元串。
從以上的詳細技術信息中,我們可以得知有兩種攻擊方法。
1、調用NetValidateName函數,提供超長參數,發送至目標主機.
適用環境 Windows200O,WindowsXP。
條件限制 目標文件系統為FAT32,或WINNT目錄下的DEBUG任何人都具有寫許可權。
現在很少有Windows200O/XP系統使用FAT32作為文件系統了吧?而且默認情況下,WINNT目錄下的DEBUG目錄只有管理員是具有寫許可權的,所以利用這種攻擊方法沒有實際意義。
當我們調用NetVaUdateName函數給目標主機發送一段超長數據後(假如目標系統滿足上述條件限制),系統處理流程如下(以Qindows200Osever英文版為例):
wkssvc!NetpValidateName
|_wkssvc!NetSetuppOpenLog
|_wkssvc!NetpLogPrintHelper
|_wkssvc!NetpLogPrintRoutingeV
|_wkssvc!NetpDebugDumpRoutine
2、調用NetAddAlternateComputerName函數,提供超長參數。發送至目標主機。
適用環境 WindowsXP。
條件限制只要能跟目標WindowsXP系統建立IPCNULLSession就可以進行攻擊。
當我們調用NetAddAltenateComputerName函數給目標主機發送一段超長數據後(假如目標系統滿足上述條件限制),系統處理流程如下:
wkssvc!NetrAddAltrnateComputerName
|_wkssvc!NetpManageAltComputerName
|_wkssvc!NetSetuppOpenLog
|_wkssvc!NetpLogPrintHelper
|_wkssvc!NetpLogPrintRoutineVEx
|_skssvc!NetpDebugDumpRoutine
|_MSVCRT!vsprintf
由上述內容我們可以看到,不管是哪種攻擊方法,不管是攻擊Windows2000還是WindowsXP平台,目標系統處理的流程都差不多,出現漏洞的都是wkssvc.dll中一個函數名為NetpDebugDumpRoutine的函數。
OK,我們現在就來分析一下出現漏洞的那個函數的匯編代碼,看看漏洞是怎麼產生的!
以下匯編代碼(由最強悍的反匯編軟體IDA分析所得)分析基於WindowsXP簡體中文專業版。沒有安裝任何補丁,wkssvc.dll的版本為5.1.2600.0(所以你在不同版本下看到的匯編代碼可能稍有不同)。
1、通過NetValidateName函數發起攻擊
如前所述。攻擊Windows200O和WindowsXP平台均可以通過調用NetValidateName這個函數來實現。但是,目標系統在處理這個函數發送的數據包過程中,在調用有漏洞的函數wkssvc!NetpDebugDumpRoutine將超長參數記錄到日誌文件觸發緩沖區溢出之前,目標系統會先調用WsImpersonateClient函數,模擬客戶端的許可權,以客戶端提供的有效的訪問令牌的許可權去打開日誌文件。也就是說,假如你跟目標系統建立的只是IPCNULLSesSon(空會話),那麼目標系統是以空會話的許可權去打開日誌文件的。這樣我們的問題就來了!當文件系統是NTFS的情況下,Windows200O和WindowsXP下的日誌文件默認只有SYSTEM和管理員組才有許可權寫。所以,目標系統以空會話的許可權去打開日誌文件會失敗,那麼也就無法觸發後面的緩沖區溢出了!所以,只有當目標系統是FAT格式文件系統時(因為FAT文件系統沒有許可權一說),或日誌文件任何人具有可寫許可權時(沒有管理員會這樣設置吧?),這種方法才能攻擊成功!
2、通過NetAddAltemateComputerName函數發起攻擊 這個函數只在WindowsXP系統中的neta過32.dll中實現了,在Windows2000中沒有實現這個函數,所以不能調用這個函數對Windows2000發起攻擊,只能在WindowsXP平台下,對WindowsXP平台發起攻擊。利用這個函數,只要能跟目標WindowsXP系統建立空會話就可以了。
當然,我們也可以通過嗅探NetAddAlternateComputerName函數所生成的數據包,分析數據包格式,自己重組這個RPC數據包,這樣就可以在別的平台上對Windnows XP發起攻擊了
3、字元轉換
從前面的匯編代碼分析中我們可以看到,攻擊測試時發送的超長字元串會被轉換成什麼字元,直接取決於vsprintf函數的第二個參數(格式化串)。
1)NetpValidateName
調用NetpVaUdateName函數發送超長字元串到目標系統時,目標系統會兩次調用vsprintf函數把這些字元串保存在堆棧中。
第一次的格式化串為:
NetpValidateName:checking to see if '%ws'is valid as type%d name
第二次的格式化串為:
NetpValidateName:,'%OWS',is not a validNetBIOS%sname:ox%1x
對於格式化串%ws。本質上它就是一個WideChar到MultiByte的轉換過程,即是說把我們源字元串當作UNICODE串,然後把它轉換成ANSI字元。在不同的平台下,對於%s格式,vsprintf的處理過程還有些差別,在下一部分我們再詳細闡述。 雖然第一次和第二次的格式化串中都有%ws,但在第二次的格式化串中還有一個%s,所以,利用這個攻擊測試時發送的超長字元串就不會被改變,即是說shellcode不會被轉換成其他字元。
所以,利用NetAddAlternateComputerName函數來發起攻擊是相對比較容易的!
2)NetAddAlternateComputerName
調用NetAddAltemateComDuterName函數發送超長字元串到目標系統時,目標系統只有一次調用vsprintf的處理。格式化串為
AlternateName=%ws
在Wide Char到MultiByte的轉換過程中,假如轉換後的MultiByte不是合法的字元(合不合法取決於系統默認的CODEPAGE),那麼就會被截斷或替換。