當前位置:
首頁 > 新聞 > 360極速瀏覽器和360chrome首頁設置加密演算法

360極速瀏覽器和360chrome首頁設置加密演算法

現在越來越多廠家經常劫持用戶機器的瀏覽器首頁,今天給出360瀏覽器的主頁設置演算法一些分析。


360瀏覽器設置主頁大致有兩次計算機器碼:一次是磁碟id,一次是計算網卡mac地址。兩種md5計算方法,兩次網頁拼接設置主頁與md51的結果,再次計算md52,兩次分別得到的md52的結果再次與設置主頁拼接並計算base64的編碼最後寫入註冊表,過程很曲折,接下來我們仔細往下看。以下是列舉出計算磁碟id組合生成md5的過程:

現在我們開始設置,下面是使用ollydbg截獲的設置函數


我們看到一串字元串」software360chromehomepage」,這是360設置主頁的註冊表的位置。

繼續跟蹤:函數

chrome.65b7E6CA

首先打開 「software360chromehomepage」的註冊表。


然後計算硬體的機器嗎的md5值

{4dc99d403b2562e3b8e593ffe85b1ef0}


然後拼接設置的

主頁+{4dc99d403b2562e3b8e593ffe85b1ef0}

變成了

http://www.baidu.com/{4dc99d403b2562e3b8e593ffe85b1ef0}


然後計算以上字元串的md5值:

844232b6479fafa0800014bdff25d

到此計算得到的第一次拼接過程結束,還有第二次計算mac地址的機器碼過程,暫時略過。兩次過程得到結果再進行一次拼接:

http://www.baidu.com/

{844232b6479fafa08ba800014bdff25d}{40ee09ae51dab5e411741b80acd47150}

最後計算的base64的編碼結果:


aHR0cDovL3d3dy5iYWlkdS5jb20vezg0NDIzMmI2NDc5ZmFmYTA4YmE4MDAwMTRiZGZmMjVkfXs0MGVlMDlhZTUxZGFiNWU0MTE3NDFiODBhY2Q0NzE1MH0=

最後會把改字元串寫入註冊表的」Homepage」項目下:

至此整個設置過程計算,我們總結下大致演算法:



wchar_t szUrl[MAX_PATH] = {0};


wchar_t szUrl_2[MAX_PATH ] = {0};


char Out[MAX_PATH] = {0};


char md51[32] = {0};


wchar_t umd51[MAX_PATH] = {'{',''};


wchar_t umd52[MAX_PATH] = {'{',''};


unsigned char harddisk[MAX_PATH] = {0};


unsigned char tmp2[16] = {0};


AnsiToUnicode( url , lstrlenA(url) , &szUrl[0] , MAX_PATH );


GetHardDiskId( (char*)harddisk );




do_md51( (unsigned char *)Out ,


20 ,


(unsigned char *)md51);


AnsiToUnicode( md51 , 32 , &umd51[1] , MAX_PATH );


umd51[33] = '}';


ZeroMemory( harddisk , MAX_PATH );


GetMACreg( (TCHAR*)harddisk );




do_md51(


harddisk ,


strlen((const char *)harddisk) ,


(unsigned char *)md51);




AnsiToUnicode( md51 , 32 , &umd52[1] , MAX_PATH );


umd52[33] = '}';


wsprintfW( szUrl_2 , L"%s%s" , szUrl, umd51 );


do_md52(

(unsigned char*)&szUrl_2[0] ,


2*lstrlenW(szUrl_2),


(unsigned char *)md51 );




AnsiToUnicode( md51 , 32 , &umd51[1] , MAX_PATH );




wsprintfW( szUrl_2 , L"%s%s" , szUrl, umd52 );


do_md52(

(unsigned char*)&szUrl_2[0] ,


2*lstrlenW(szUrl_2),


(unsigned char *)md51 );




AnsiToUnicode( md51 , 32 , &umd52[1] , MAX_PATH );


wsprintfW( szUrl_2 , L"%s%s%s" , szUrl, umd51,umd52 );




char* pcur = new char[MAX_PATH];


STLMemset(pcur , 0 , MAX_PATH);


UnicodeToAnsi( szUrl_2 ,2*lstrlenW(szUrl_2),pcur , MAX_PATH );


int url_size = lstrlen(pcur);


long out_size = MAX_PATH;


base64_encode( (const unsigned char *)&pcur[0] ,


url_size ,


(unsigned char *)Out ,


(unsigned long *)&out_size


);

我們驗證下自己的演算法結果。

計算http://www.123.com,得到的結果如下圖。我們可以看到註冊表裡是 加密密文,跟蹤調試了該演算法後,寫測試函數於是就有了:

把這些值填入360瀏覽器的對應的註冊表HomePage設置,於是打開360的瀏覽器,看直接轉到了自己填寫的地址去了,打開。

驗證結果成功!

最後申明:逆向是工具,是我們學習他人軟體的方法,而不是用來做一些非法的事情。

*本文作者:浪子_三少,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

美國交通部對Shadow IT的安全管理啟示錄
電網遭受攻擊停電怎麼辦?DARPA斥資860萬美元計劃打造電網攻擊預警系統
【重磅】FreeBuf發布2017金融行業應用安全態勢報告
從遭遇「艷照門2.0」的「赫敏」談個人隱私保護
我是如何獲取全域用戶明文密碼的?

TAG:FreeBuf |

您可能感興趣

Win10系統下安裝Ubuntu16.04.3教程與設置
Oculus發布1.15更新 支持三感測器設置
Excel-列印設置的15個方法
192.168.0.1路由器密碼設置
退步了?曝華為Mate 10 Pro屏幕僅為1080P|攜程機票緊急整改 設置「無默認勾選」
192.168.1.1路由器設置問題大全
辣品iOS版2.62發布:適配iOS11、新個人賬戶設置
我的世界中國版1.12Summon指令5 生物騎乘設置方法
iOS 11 有個設置,以後用 iPhone 拍的照片或視頻可以節省 50% 空間
iPhone7設置上的1怎麼去掉 iPhone7設置上的1去掉方法
Oculus正式發布1.15更新:已完全支持三個感測器設置
Win10遊戲模式支持Win32程序 PC端加入遊戲設置選項
Win 10 edge這樣開Lantern設置頁
升級到iOS11後的iPhone6s,簡單設置能很好解決續航
iPhone 7/7 Plus手機呼叫轉移怎麼設置
蘋果iOS11固件曝光iPhone8 Face ID設置頁面,附識別演示
路由器埠設置錯誤,192.168.1.1 進不了路由器設置頁什麼原因
iOS11 beta10系統這個功能超實用,趕緊設置起來!
6399:鐵拳7遊戲60幀設置方法 鐵拳7遊戲怎麼穩定在60幀