看到FreeBUF上有一篇文章逆向360极速浏览器和360首页设置加密算法,http://www.freebuf.com/articles/terminal/128902.html。当时对这个很感兴趣,想尝试一下。这里在WindowsXP下以360极速浏览器8.5.0.144为例进行分析。
从文章中可以获取的信息
按照文章所说,其设置流程为(这里把要设置的主页记作url):
计算硬件的机器码的MD5值,此处记为MD5-1
将MD5-1与url进行拼接,后计算MD5值,记为MD5-2
计算网卡的机器码的MD5值,记为MD-3
将MD5-1,MD-2与url拼接,计算base64
然后文章中还可以了解的信息是360极速浏览器设置主页的注册表目录为:software\360chrme\homepage。然后在几个作者发的OD图中可以发现调用了chrome。
找到入口线索
首先看看chrome是个什么程序。在安装目录中%360Chrome\Chrome\Application\8.7.0.306%中可以发现找到chrome.dll文件,由此可以推断出主程序调用了这个DLL文件。
还有一个入口线索,上文可知360极速浏览器设置主页的注册表目录,用string或者OD载入360chrome主程序都无法找到这个注册表目录的字符串。而在chrome.dll是可以找到的。
既然已经查到了字符串是在chrome.dll文件中出现,那就找到运行这个DLL的入口吧。OD载入360chrome.exe主程序,选项-调试选项-事件中勾选中断在新模块(DLL)。F9运行,观察上下文,看是否为chrome.dll程序。OK,程序停在0x1c51161处,这里就是chrome.dll的领空啦。
取消勾选中断在新模块(DLL)。F8跟踪到第一个返回,然后Alt+F9返回用户代码领空。程序停在了0x417dea地址处。F8继续跟踪可以然后接一个返回直接到了0x4180fa地址处。经过多次分析和跑飞,发现正常的流程应该是跳到0x418ad1处挂断点跑程序,完成对chrome.dll的加载,
进入chrome.dll
F7进入。这样就来到了0x1c597c4地址处。搜索字符串“Software\360Chrome\Homepage,可以发现在0x1de48df;0x1de48f2;0x1d2e51f地址处有push
chrome.03821320指令,而 chrome.03821320存放的就是要搜索的字符串。
前两个指令
Ctrl+G跳转到0x1de48df地址处,0x1de48eb地址处下断点
在第四个call下断点,运行然后进入。来到了地址0x1de4984地址处。
在0x1de498b0地址处call了一个打开注册表的函数,这个函数正是打开Homepage\Default这个目录。参数详见栈空间。
上面的分析没找到什么有关于加密的算法实现。
0x1d2e51f
这样就剩下最后的0x1d2e51f出的地址,挂断点跑程序。
首先进入第一个call函数分析,0x1d2e52a。
0x627ee28存放的是360极速浏览器用户数据目录。
找到下面的第四个函数,发现其调用chrome.0x1d2e57d地址,Ctrl+G转到chrome.0x1d2e57d地址,挂断点跑程序。这个函数要找的设置主页的函数。
chrome.0x1d2e57d详细分析
首先打开注册表
如图[360-999]可以发现打开注册表并不是homepage键值,而是urls_to_restore_on_startup键值。
接着开始得到MD5-1值,进行了第一次拼接[360-998]
接着进行第二次拼接操作[360-996],[360-995]
进行base64编码[360-994]
最后设置注册表的操作[360-993]
{width=”80.00000%”}
分析了一圈,可以发现在我的机器上,主要是设置urls_to_restore_on_startup。这个地址其实是我IE的主页urlhttp://www.msn.com/zh-cn。
一些发现
当然,这期间的分析过程中是碰到诸多的麻烦,当然也会有一些意外的收获。
解析各种文件
这段代码主要在chrome.0x1e516dc chrome.0x1e51b06。
加载chrome.dll文件
继续跟踪,发现注释多次提到了chrome.01c50000,数据窗口跟随下,发现是个PE文件,根据其PE文件头中文件属性,可知值是0x2122[],这样就可以知道是个32位的DLL文件。
{width=”80.00000%”}
单步进入0x464390。首先会验证是否是PE文件,检查0x5a4d[360-PE2]。
而在0x001bb530处则存储了DLL路径数据[360-PE3]。
{width=”80.00000%”}
当然也会获取关于PE文件内存映像大小[360-PE4]。
{width=”80.00000%”}
注册表的homepage值
OK,既然可以设置注册表位置,更改主页设置,可以找到这几个homepage值
http://www.msn.com/zh-cn:
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2lzYXBpL3JlZGlyLmRsbD9wcmQ9aWUmcHZlcj02JmFyPW1zbmhvbWV7MGY4YWFjZmExMzg3ZTNmYzFmMGI1MDUyNmE2NDk0MDh9ezViZWM0NmQ1YzA0Y2ZlYjVkZjkyYjBiMWU1NGJiMjk0fQ==
e2ZjMzYwMTE1NTJjNjA2ZjBhNDFkOTg0Nzk5YzkyNjVhfXswMTI5Zjg5NjE3N2Q1ZDVjZWI1MmJjMjU3ZmEyZGZkNn0=
https://www.baidu.com/:
aHR0cDovL3d3dy5iYWlkdS5jb20vezIzMmMxN2U1OTI0NTY5ZjA1NzIwYjE5YzI3MGYwNWE1fXtmOTgxZmViY2RiMWNhMzdkNGFiODRiZTViNGUxMmFmYX0=