DIY新浪微博Android手机客户端(三)
原文:http://hi.baidu.com/aqtata817/blog/i...44a90a713.html
1.寻找iPhone的Key
iPhone的安装包为ipa格式,官方并不提供ipa文件下载
我这里找到的一个地址:http://3g.sina.com.cn/tv/soft/weibo/weibo_10243010.ipa
用IDA打开ipa文件,有很多文件,我们点击Size排序一下,选择最大的那个Weibo

按下Shift+F12调出字符串窗口,设置过滤字符类型,细心找下就能发现一个类似Key的字符

经过测试后,确定该字符串正是iPhone的Key
2.重建Android客户端
我们现在要做的就是将Android客户端中的Key替换掉,再将“android”字符替换为“iphone”
还记得第二篇里提取出的classes.dex文件吗?这次再用baksmali.jar将其反编译
进入控制台,输入:java -jar baksmali.jar -o C:\123\out classes.dex

这时C:\123目录下又多出了个out目录,其中就是反编译出的源码
我们用EF Find搜索这个目录,搜索Android的Key和替换为iPhone的Key
搜索标识字符“"android"”替换为“"iphone"”,注意有引号,这样才表示是一个字符串
修改好后再次进入控制台,输入命令:java -jar smali.jar C:\123\out -o C:\123\_classes.dex

成功后,会多出一个_classes.dex文件,改名为classes.dex后覆盖到客户端安装包里并删除META-INF文件夹
但是这个安装包并不能成功安装,因为文件已经被修改,需要重新进行签名
我们把这个安装包改名为jj.apk放到Auto-sign目录下,双击Signapk.bat即可
稍等一会,目录下会生成签名后的apk安装包,这就是最终的修改后的Android客户端了
(当然这里并不一定要用Auto-sign,别的apk签名工具都可以)
最后,我们先将手机上的客户端卸载掉,再安装这个修改后的客户端并测试

看看下方显示的“来自iPhone客户端”,成功啦!

最后提一下iPad,这个并没有访问内部接口,而是访问的公开接口,Appkey是2849184197
好了,教程到这里就全部结束了,谢谢!
