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
※美國交通部對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幀