Pages

Friday, 31 July 2015

UC浏览器改服制作


首先,了解一下UCweb的选择服务器过程,几乎通用于所有版本的UCweb
打开UCweb后,其自动访问uc.ucweb.com:80这个网址,获得一个代理服务器,然后在这个UC使用的期间,这个服务器会一直为你提供中转压缩服务;如果你关闭了UC再重新打开,又会重新请求一次代理服务器
那么,我们可以改造这个UC,使其应该访问的uc.ucweb.com:80变成我们的php程序,我们的php程序引导它返回我们需要的服务器,比如有需要的时候就返回国外服务器
下面开始具体教程,笔者折腾了一晚上,才成功的.
1、你需要一需要支持curl的
PHP主机,你的域名只能是15个字符内,后面会用到
如果实在找不到,可以试试CO.CC免费二级域名,或者TK免费顶级域名
2、下载源码opm_php.zip,解压后有两个文件,opm.php『这个是OPERA改服用的』和ucweb.php,将ucweb.php改名为index.php,然后上传到你的空间根目录,通常是/public_html/文件夹
3、访问下你的域名,如果跳转到google的英文版主页,则UCWEB中转搭建成功
最好换几个浏览器试试,笔者搭建的过程中,跳转成功,却是中文版主页
原因可能是,浏览器访问的时候自动跳到hk那个服务器去
4、下载UC,版本不限,笔者下载的是最新版的
手机端用智能解包,PC端用siscontent
把UC的SIS安装包的exe提取出来
笔者的是UcWeb60Signed.exe,UC版本不同,EXE文件名可能不同.
不过也很容易辨认,体积最大的那个就是啦
5、将exe脱壳下,手机端用汉化风暴,PC端不知也,应该可以谷歌到
6、打开刚才提取的exe文件,搜索uc.ucweb.com,只会有一处结果
7、把它改为我们的域名,类似XXX.XX.XX,域名里面的HTTP://WWW就不用加上去了
8、如果你下载的UC不是国际版的,还需要改一个地方
搜索999,改为300
999是大陆的服务器,300的是墙外的服务器
最早逛手机论坛的时候,好多UC
改服教程,都只是改这个地方就可以用了
笔者试过,很早就和谐了
由于政策法规,UC的国外服务器,会被跳转会大陆的服务器
9、加壳改好的EXE文件,替换原来的文件,打包下,安装
10、打开任意一个被墙奸的网站,比如http://www.twitter.com/或者http://www.facebook.com/,访问正常,就成功了
谷歌了下,UC改服的教程不多,很多也已和谐,这是笔者今天测试成功写的.

部分参考了 http://darkhandz.com/ucweb-olchange-server/
---------------------------------------------------------------------------

 在线切换UCweb中转服务器

UCweb这个S60系统的优秀浏览器,翻墙之路可谓几翻起伏,先是中文版改成翻墙版,过了一段时间这种方法就失效了,过了一段时间,又冒出英文版可翻墙,又过了一段时间,英文版失效了,再过了一段时间……就到现在了,嘿嘿。
吴大(Yuri,好象是高中生,目前在国外),对UCweb的研究很深(对其他网络技术也研究很深),而且也无私地公布了他的研究成果,有兴趣的童鞋可以去他的博客参观学习。
首先,了解一下UCweb的选择服务器过程,几乎通用于所有版本的UCweb。
打开UCweb后,其自动访问uc.ucweb.com:80这个网址,获得一个代理服务器,然后在这个UC使用的期间,这个服务器会一直为你提供中转压缩服务;如果你关闭了UC再重新打开,又会重新请求一次代理服务器。
那么,我们可以改造这个UC,使其应该访问的uc.ucweb.com:80变成我们的php程序,我们的php程序引导它返回我们需要的服务器,比如有需要的时候就返回国外服务器。
好了,下面来说说具体的。
如果你想把一个UC改成用国外中转服务器的话,把下面这两句写入一个index.php(如果是UTF-8编码,记得不要BOM哦)
header(“Assign: 67.228.166.109:8086″);
print “\000\006assign\000\02467.228.166.109:8086″;
然后把这个php文件放上你的主机空间或免费服务器都可以,能在绝大多数恶劣环境生存下来,当然,你的域名(访问的网址)不能太长,只能是15个字符内,比如我的darkserver.x.gg就刚好15个字符,kilu有很多域名可选,你可以随意挑个。
上传好(有关申请免费空间和上传文件的操作,可参考我博客里那篇《使OperaMini恢复国际服务》,大虾自觉飘过吧),用PC浏览器打开这个域名(你的网址),比如我上传到darkserver.x.gg,我就打开这个网址看看,然后会出现下面的一行英文(也只有这么一行内容):
assign67.228.166.109:8086
这样就证明你成功地搭建了一个“返回中转服务器的UC服务器”,我们可以进行下一步,把UC的安装包解剖,我们要把我们的“返回服务器”写入UC的主体程序里。
1.用siscontent把uc的sisx安装包的主体exe提取出来(体积最大那个exe),如果我这样说你不是很明白,也可以参考一下我博客里那篇《Gravity一字节XX法》,有siscontent的详细使用步骤。
2.用C32asm(也可以是其他16进制编辑工具,如Winhex)打开刚才提取的exe文件,搜索uc.ucweb.com,只会有一处结果。
3.我们把这个网址改成我们刚才建立服务器的网址,我改为我的“返回服务器”darkserver.x.gg
4.保存这个exe,并用siscontent把这个exe替换原来sisx安装包里的那个。
5.传输到手机,安装,试试吧,可以用这个UC打开ip.qq.com,查看你目前的地址,如果显示 美国,你就成功了。
好了,到上面为止,就是简单Diy一个翻墙的UCweb,可以正常使用了!可是有的童鞋觉得这样不太方便,用国外服务器访问国内网页总是不快,导致手机里要安上几个UC,一个是国外服务器的,一个是国外服务器的,有没有办法一个UC有两个服务器切换呢?
呵呵,答案当然是有的,吴大也给出了方法和代码,不过他的代码涉及操作数据库(MySQL),这方面我一窍不通,即使后来弄通了,还是用不了。我只好自己想一个笨办法,用文件代替数据库,重新写了一个php程序,使用上比较方便,也降低了Diy的门槛。
具体这些事就不必对你说了,很简单的代码,你一看就会懂了,不懂也不要紧,搜一下相关的英文就懂了(我可是边Google边写的,还有几行代码关于 获取dn的,是请吴大写的,不容易呀!)下面是代码,依然是做成index.php,上传到空间,代替上面说的的两行代码那个index.php。
======================从下面开始======================
//ob_start();
$dnpart = “dndb/”; //dn files database
if ( $_SERVER['REQUEST_METHOD'] == ‘GET’) {
$dn = (preg_match (“/.*dn\/(\d+-.{8}),text.*/i”,$_SERVER["HTTP_ACCEPT"])) ? preg_replace(“/.*dn\/(\d+-.{8}),text.*/i”, “\$1″,$_SERVER["HTTP_ACCEPT"]) : “” ;
if (empty($dn)) {
exit(“Hey boy! Open with UCweb please (^_^)”);
}
if (!file_exists($dnpart)) {
mkdir($dnpart);
}
if (file_exists($dnpart.$dn)){
if(unlink($dnpart.$dn)){
print ” Well, disabled!”;
print ”
Using China Server!Please restart UCweb~”;
print ”
(o.o)=====(o.o)”;
//print $dn;
}else{
print ”
Failed!Oops?! Error deleting…”;
}
}else{
file_put_contents($dnpart.$dn,”darkhandz”);
if (file_exists($dnpart.$dn)) {
print ” OK, Now fvcking GameForWindows! Please restart UCweb~”;
print ”
\^O^/=====\^O^/”;
//print $dn;
}else{
print ”
Failed!Oops?! Error creating…”;
}
}
}else{
$dn = preg_replace(“/.*m_dn=\”(\d+-.{8})\”.*/i”, “\$1″, $HTTP_RAW_POST_DATA);
//file_put_contents(“dn.txt”,$dn);
if (!empty($dn)) {
if (file_exists($dnpart.$dn)){
header(“Assign: 67.228.166.109:8086″);
print “\000\006assign\000\02467.228.166.109:8086″;
//file_put_contents(“FuckNow.txt”,”Using American server!”);
}else{
//header(“Assign: ucs5.tj.ucweb.com:80″);
//print “\000\006assign\000\024ucs5.tj.ucweb.com:80″;
print “nothing please use your local server~”;
}
}
}
//Core codes copy from http://landon.v70.us/show-101-1.html([WU]Yuri’s Blog) ———-darkhandz
?>

也可以点击这里查看保留原来编写时的代码缩进风格,更懒一点不想动手的童鞋,这里有做好的版本,直接下载使用。

“UC可换服版”——使用过程中要注意的问题:
1.可通过访问darkserver.x.gg(当然以你写入那个exe文件的网址为准)来切换服务器,打开一次切换一次,见到“OK, Now fvcking GameForWindows!”代表切换为美国服务器,见到“Well, disabled!”代表切换为国内服务器。
2.每次切换完成后请退出UC,重新打开UC,等几秒(流量走了1KB),就切换成功了。
3.你可以打开 ip.qq.com 来查看你目前所在的IP以确定是否切换成功。
4.似乎访问twitter.com会不正常,不知道原因。
呃,还有就是,这个php程序仅供测试研究和学习用,被喝茶了或者手机爆炸了啥的,黑手我可不负责。
FROM 地址:http://darkhandz.com/ucweb-olchange-server/

对这个中转服务文件进行了一些修改。
修改后大大提高了文件在各个服务器上的存活率!
以前的必须要支持cURL才能够用,但是很多空间的cURL总是被禁用了,而真正需要的只是让我们的PHP空间将我们浏览器所发送的数据传递到Opera Mini的服务器,然后把服务器输出的数据传递到终端,这个过程并不一定需要cURL参与。
基本上只要求服务器支持cURL或者打开Allow_url_fopen就可以了。
我找过十几个PHP空间都支持这个程序,不支持的还真没有找到。
程序自带了一个空间测试功能,在同文件夹下放一个文件名称为“hide.txt”就可以变成跳转的模式了。
看下面的:
先看看x.gg这种只是不支持cURL的空间,程序将采用Fsockopen来处理。
看测试结果:
http://t.x.gg/9
不信的可以修改你的Opera Mini服务器为
“http://t.x.gg/opmx.php”
Fsockopen是从数据流的方式处理的,能够逐步输出结果,在一些场合比cURL效率还高。
但是如果Fsockopen被禁用了呢,也不怕,还有第三种方法:用Stream_context_create联合File_get_contents。
不过最后一种方法是由File_get_contents从远程获取数据,相比前面两种办法,对服务器的压力较大,速度也不咋样.