危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18791759

利用Android手机翻墙实操记录

电脑端翻墙的方式,之前危险漫步博客上也介绍的很多了,虽然提到了通过浏览器中转服务器实现翻墙,但举的例子比如UC浏览器和Skyfire,在未经修改前还是不能翻墙的。本文将详细修改手机浏览器实现翻墙的方法。

文章以著名的浏览器Opera mini的android版为例,介绍修改,JAVA版和S60版做法类似,可以参考。

由于Opera mini的国际版(原来能翻墙的那个)现在在我国已经不能用,而必须下载中国版。中国版的当然是不能翻墙的,所以首先我们需要架设自己用于中转的服务器。这里以基于Google App Engine为例,介绍架设OPM。

首先需要创建一个新的GAE程序,这一步骤与之前危险漫步博客上面的GAppProxy相仿,我就挑关键步骤写一下了。访问如果没有账户则需要注册一个Gmail,用Gmail登录后按Create Application。在下一步中随意填写,一定要记住Application Identifier里填的东西,这里我为大家申请了一个,取名为gwxopmpublic,方便不愿意动手架设OPM的朋友直接使用。

接着要下载光盘中的opm压缩包和Google App Engine SDK for Java 1.3.5,将二者解压至某目录。将解压后的java-sdk文件夹命名为gaejavasdk放在D盘根目录下,然后将解压后的opm文件夹放入d:\gaejavasdk。

用记事本打开“opm/war/WEB-INF/appengine_web.xml”文件,找到一行:<application>your-

application-id</application>把“your-application-id”改成你对应的Google App的名称,这里就是gwxopmpublic,修改后保存。

进入命令行(运行cmd)进入刚才的“d:\gaejavasdk”目录,再进入bin目录,在提示符下输入如下命令:appcfg.cmd update d:\gaejavasdk\opm\war,其中update之后是刚刚那个OPM的文件夹。

接下来会有提示输入Gmail地址和密码,注意,输入密码时屏幕上什么都不提示,这和GAppProxy上传fetch.py时是一样的。最后,等待上传完成,当出现下面一行提示时则上传成功:Update completed successfully。上传好后测试一下,浏览http://你的程序帐号ID.appspot.com/opm。上传成功后我们就要对浏览器进行修改了,首先下载最新版Opera mini的APK文件放在一遍用于修改。然后我们需要一款能够反编译APK的工具,这里为了自己,我基于APK Manager重新写了一款全中文的反编译工具,这款工具的功能当然不止是修改浏览器这么简单,对于APK文件能提供全方位的修改与编译功能,这个让大家们自己研究吧。在双击其中的“运行我.EXE”进入主程序前我简单介绍一下文件目录结构。解压后你会看到6个文件夹,其中other是存放APK编译脚本和程序模块的文件夹,Projects文件夹将会包含反编译出来的文件,而place-apk-here-for-modding文件夹专用于存放待修改的文件,place-apk-here-for-signing用于放置待签名的文件,place-apk-here-to-batch-optimize用于放置待批量处理的文件(可以多个),place-ogg-here文件夹用于存放OGG文件。好了,双击“运行我.EXE”开始我们的修改之旅吧!

将要修改的Opera浏览器的APK放进place-apk-here-for-modding文件夹(这个文件夹用于存放待修改的文件,文件名一定不能有空格,最好全英文),光盘里的APK是国际版的,建议修改国际版的,当然中国版的一样修改。在APK修改器中输入22选择这个APK,然后输入9回车,提取并反编译APK文件。约3秒左右,提取出来的文件就能在projects文件夹中找到。到目录下找到:“projects\Opera.apk\smali”中的f.smali,用记事本打开,这时我们就可以替换Opera的服务器地址了。

按F3查找,以“http”或者“socket”为关键词,找到2处要替换的,分别是:

const-string  v3,"socket://mini5cn,opera-mini.

net:1080"

const-string v3,"http://mini5cn.opera-mini.

net:80/"

把这两行均替换为:const-string v3,。这样就实现了换

服。但光这样还是不够的,新版本似乎还加入了一串KEY验证的机制,这一改动使得笔者尝试了很多次都没有成功,经过笔者对代码的反复修改尝试,最终得到解决方法,我们还需要改一步,换KEY。

先找到一行:const-string v3,"socket://mini5.opera-mini.net:1080",这行上面一点点的地方有一长串东西("cldd7ab77e2c967746fel0681026c9......"),这个就是国际版的KEY。同时我们找到刚刚修改的地址上面也有一长串东西("8c60d2a6811f85366af231ae416831b09......")这个是国内版的KEY。我们复制国际版的KEY替换掉国内版的KEY。全部完成后保存。

修改完成后,应该是这样的一段代码(省略号表示无关代码省略):

<......>

const-string v3,"cldd7ab77e2c9<......KEY......>a5a28ccfa75af099147b"

aput-object v3,v2,v12

const-string v3,"socket://mini5.opera-mini.

net:1080"

aput-object v3,v2,v14

const-string v3,"http//mini5,opera-mini.net:80/"

<......>

const-string v3,cldd7ab77e2c9<......KEY......>a5a28ccfa75af099147b"

aput-odject v3,v2,v12

const-string v3,"http://gwxopmpublic.appspot.com/opm"

aput-object v3,v2,v14

const-string v3,"http://gwxopmpublic.appspot.com/opm"

<......>

我们回到APK编辑器,输入11进行编译,这是常规APK文件,所以当被询问是否是系统APK文件时输入N。完成后可以到目录下的place-apk-here-for-modding文件夹找到一个新的以unsigned开头的Opera文件,这个文件没有签名,还不能安装。

所以,继续使用APK编辑器,输入12进行签名(注意,不需要按22改工程哦)。很快projects文件夹下又多出一个signed开头的APK,这个APK就可以放进手机进行安装了。注意,安装新APKj必须把老的APK卸载掉,否则可能无法安装。

安装完成后运行,就能实现翻墙啦,HTG G1 Android2.2测试通过。

以上只是介绍了Android版Opera的修改方法,同样的方法适合修改Java版、iPhone版、S60版的Opera mini,理论上应该也适合修改QQ浏览器、UC浏览器,笔者选择了UC浏览器尝试了很多次,Java版的已经成功修改,但APK版的似乎很难成功,原因未知,希望大家们看了这篇文章能收到一点启发,修改更多浏览器实现翻墙,也希望高人能参考这篇文章的方法告诉笔者为什么UC浏览器的APK版本修改会失败。

好了,不多说了,今天就到这吧!

相关推荐