Opera Mini 5 beta for WM 国际版中转

作者:@chocli   来源:https://docs.google.com/View?id=dgbsbz6v_4hdrnhcck

Opera Mini 5 beta for WM 国际版中转

*现有更好的使Opera Mini for WM穿越的方法,请移步至此处:https://docs.google.com/View?id=dgbsbz6v_5cdsq33mz

1.下载Opera Mini 5 beta for Windows Mobile(可能需要翻墙),传入手机安装

2.制作Opera Mini中转

*参考 http://www.kenengba.com/post/2021.html http://code.google.com/p/opm-server-mirror/

创建index.php,内容如下,


<?php

if ($_SERVER['REQUEST_METHOD'] == 'GET') {

if (function_exists("curl_init")) {

if (!$_GET["test"] != null) {

header( "HTTP/1.1 301 Moved Permanently" );

header( "Location: http://www.google.com/ncr" );

} else {

echo 'Hello Opera Mini Server! Fuck GFW!';

}

} else {

echo 'cURL is not enabled.';

}

} else {

$curlInterface = curl_init();

$headers[] = 'Connection: Keep-Alive';

$headers[] = 'content-type: application/xml';

$headers[] = 'User-Agent: Java0';

curl_setopt_array($curlInterface, array(

CURLOPT_URL => 'http://server4.operamini.com',

CURLOPT_HTTPHEADER => $headers,

CURLOPT_POST => 1,

CURLOPT_POSTFIELDS => @file_get_contents('php://input'))

);

$result = curl_exec($curlInterface);

curl_close($curlInterface);

header('Content-Type: application/octet-stream');

header('Cache-Control: priavte, no-cache');

echo $result;

}

?>

因Opera Mini所用代理服务器地址被写在OperaMini5-WM-armv4i.exe中,本人计算机水平有限,所以只好注册一和 server4.operamini.com长度一样的域名(例如operamini5.chocli.com)以替换OperaMini5-WM- armv4i.exe内的地址字符串,

将index.php上传至服务器空间,用浏览器访问中转地址,若跳转到google则表示中转安装完毕。

3.修改OperaMini5-WM-armv4i.exe

解压mini5wm.cab(7zip,winrar等应该都可以),用16进制编辑器(本人所用16进制编辑器在此处下载,是一免费软件)打开“NATIVE~1.009”文件,


搜索“server4”字符,第二次搜索到的就是Opera Mini所用的代理服务器(server4.operamini.com:80),


server4.operamini.com替换成自己搭建的中转地址(再次强调必须长度相同否则程序无法启动),另存为OperaMini5-WM-armv4i.exe并传入手机,替换/Program Files/Opera Mini 5/下的同名文件。

4.打开Opera Mini 5 beta for WM,点右下角扳手按钮,依次选择Settings,Advanced,Protocol,HTTP即可


补充:

1.使用以上index.php表单发送不能,导致各种登录框无法登录,原因不明

使用以下index.php,表单发送成功(未经过一定数量的测试),原理不明,(个人认为可能与黑体字部分有关)

<?php

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
if (function_exists("curl_init")) {
if (!$_GET["test"] != null) {
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.google.com/ncr" );
} else {
echo 'Hello Opera Mini Server! Fuck GFW!';
}
} else {
echo 'cURL is not enabled.';
}
} else {
$ch = curl_init();
$get_headers = apache_request_headers(); //apache_request_headers() 在特定情况下无效,详见php手册
foreach ($get_headers as $header => $value) {
$headers[] = "$header: $value";
}
curl_setopt_array($ch, array(
CURLOPT_URL => 'http://server4.operamini.com/',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_FRESH_CONNECT => true,
CURLOPT_FORBID_REUSE => true,
CURLOPT_COOKIESESSION => true,
 //CURLOPT_BINARYTRANSFER => true,
 //CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0,
CURLOPT_POST => true,

CURLOPT_POSTFIELDS => @file_get_contents('php://input'))
);
$result = curl_exec($ch);
curl_close($ch);
//header('Content-Type: application/octet-stream');
//header('Cache-Control: priavte, no-cache'); 不去掉这两行会得到 PHP Warning: Cannot modify header information - headers already sent 的报错
echo $result;
}

?>

2.登陆dabr后刷新,退回登录界面,再刷新一次恢复正常

以上问题是否属于个例暂不清楚,有待进一步研究。

欢迎交流经验

@chocli

05/03/2010

没有评论: