微软故意留漏洞促使WP7越狱
ChevronWP7的越狱其实是把自己伪装成微软验证服务器来与手机交互达到官方unlock的效果,然而令人惊讶的是,微软的这套验证机制就藏在SDK的Windows Phone Developer Registration工具中,而且代码没有混淆过,这才让ChevronWP7 Team能够轻而易举获得越狱方法!
据媒体报道,在Windows Phone 7 SDK中有一个Windows Phone Developer Registration工具,对其进行反编译就会发现反编译后的代码几乎可以算得上是“源代码”了,微软没有采取任何混淆措施。如果再去看经过简单代码 混淆的ChevronWP7,就可以看出ChevronWP7 Team正式参考了微软官方解锁程序的代码。
通过TcpClient,利用27077端口和手机进行通讯
ient = new TcpClient();
ndTimeout = 2000;
ceiveTimeout = 2000;
abled = true;
ngerTime = 0;
Delay = true;
nnect("127.0.0.1", 27077);
检查手机状态的代码
byte[] buffer = new byte[4];
buffer[0] = 16;
buffer[1] = 1;
mandData = buffer;
unlock手机的代码段
List list = new List();
ASCIIEncoding encoding = new ASCIIEncoding();
ushort num = (ushort)(((ngth + 3) + 2) + 3);
dRange(new byte[] { 16, 3 });
dRange(tBytes(num));
d(1);
dRange(tBytes((ushort)ngth));
dRange(tBytes(authToken));
d(2);
dRange(tBytes((ushort)2));
ushort num2 = isInt ? ((ushort)0) : ((ushort)1);
dRange(tBytes(num2));
mandData = Array();
手机的任何请求都发送到一个http服务器(chevronwp7通过修改hosts文件把所有数据都重定向到本机, 而chevronwp7就把自己伪装成服务器来回应手机发来的请求).
下面是允许解锁的返回数据:
0x00000000">0x00000000>
">
365
10
10 这里代表可以最多安装10个xap包
锁定手机代码段:
internal LockCommand(string authToken)
{
List list = new List();
ASCIIEncoding encoding = new ASCIIEncoding();
ushort num = (ushort) (ngth + 3);
dRange(new byte[] { 16, 2 });
dRange(tBytes(num));
d(1);
dRange(tBytes((ushort) ngth));
dRange(tBytes(authToken));
mandData = Array();
}
不知微软为何会将如此重要的东西近乎无所保留的开放给外界……