首页 > 安全 > 网络安全 > 正文
360极速浏览器和360chrome首页设置加密算法
2017-03-21       个评论      
收藏    我要投稿

360极速浏览器和360chrome首页设置加密算法。 现在越来越多厂家经常劫持用户机器的浏览器首页,今天给出360浏览器的主页设置算法一些分析。

\

360浏览器设置主页大致有两次计算机器码:一次是磁盘id,一次是计算网卡mac地址。两种md5计算方法,两次网页拼接设置主页与md51的结果,再次计算md52,两次分别得到的md52的结果再次与设置主页拼接并计算base64的编码最后写入注册表,过程很曲折,接下来我们仔细往下看。以下是列举出计算磁盘id组合生成md5的过程:

现在我们开始设置,下面是使用ollydbg截获的设置函数

\

我们看到一串字符串”software\360chrome\homepage”,这是360设置主页的注册表的位置。

继续跟踪:函数 chrome.65b7E6CA

首先打开 “software\360chrome\homepage”的注册表。

\

然后计算硬件的机器吗的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的浏览器,看直接转到了自己填写的地址去了,打开。

\
点击复制链接 与好友分享!回本站首页
上一篇:网络空间搜索引擎全方位评测
下一篇:人脸识别滑铁卢?拆解“变脸炸弹”急救包
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站