iPhone4S
【第一部分,移植环境的建立】 1. 可以正常使用Siri的iPhone4S一部(例如朋友的),正常运行可以上网的WindowsXP或者Windows7;如果是Linux或者mac用户,应该是可以看懂,参考过去的,否则玩啥呢。 以下按照内网环境进行;如果要在公网环境运行,请自行根据路由器设置DMZ等。 先在C盘根目录下,建立新目录Siri,备用。 然后,下载Python和Ruby。为了保证可以正常下载,建议先使用NPVq1an9翻为好。
2. 下载最新版OpenSSL,下载完成,点击安装,安装到C:\Siri\openssl,安装界面有一步提示“Copy Open DLLs to”时,选择第二个(包含/bin的)
3. 下载最新版Python 2.6(必须该版本,其他未测试),下载完成,点击安装,安装到C:\Siri\Python,安装过程中,需要选择打钩的,全部打钩好了。切记:全部打钩。 国内下载地址:请看参考资料地址
4. 下载最新版Ruby 1.8.7(必须该版本,其他未测试),下载完成,点击安装,安装到C:\Siri\Ruby,安装过程中,需要选择打钩的,全部打钩好了。切记:全部打钩。 记住,先点击rubyinstaller-1.8.7-....exe,安装Ruby;再点击DevKit-tdm-32-..........exe,安装DevKit。两者的目录,都输入C:\Siri\Ruby
5. 安装完Python2.6(必须该版本,其他未测试)和Ruby 1.8.7 (必须该版本,其他未测试)后,注销一次,再回来,继续操作。
6.同时按Win键(四个方块,微软图标,像飘动旗帜的那个)和R键,打开运行,输入cmd.exe
7. 在cmd.exe打开的黑窗口中,依次输入以下命令,每次输入后,要回车,才能再次输入下一条指令 复制代码 C: CD \ CD Siri CD Ruby ruby dk.rb init ruby dk.rb install gem install eventmachine --pre -- --with-ssl-dir=C:\Siri\openssl --with-ssl-include=C:\Siri\openssl\include --with-ssl-lib=C:\Siri\openssl\lib gem install CFPropertyList 其中,执行gem是为了安装Ruby的调用库eventmachine和CFPropertyList,安装下载的时间可能比较长,根据网速而定; 注意,eventmachine的安装,与昨天的版本不同,加了参数,请重新执行一次 为了保证可以正确安装下载,建议先NPVq1an9翻为好。 如果出现could not find main page README提示,可以不管,已经安装正常了。
8. 至此,基本环境,全部搞定; 那些所谓的需要建立DNS环境什么的,什么用Bind什么的,全都是圾垃,全都是瞎说。 他们本身提供的附件(本帖也提供)中dns.py,这个文件,就是用来提供最简单的DNS服务的,用它就足够了,压根不需要什么Bind。
9. 拷贝一下代码,粘贴到记事本,将192.168.*.*修改为你自己的电脑的内网ip地址。 建议直接下载附件中的dns.py dns.py dns.py.zip (1 K) 下载次数:281 ,以确保不会拷贝出错 保存文件名为C:\Siri\dns.py,保存时,保存类型选择“所有文件*.*” 复制代码 import socket myip='192.168.2.4' class DNSQuery: def __init__(self, data): self.data=data self.dominio='' tipo = (ord(data[2]) >> 3) & 15 # Opcode bits if tipo == 0: # Standard query ini=12 lon=ord(data[ini]) while lon != 0: self.dominio+=data[ini+1:ini+lon+1]+'.' ini+=lon+1 lon=ord(data[ini]) def respuesta(self, ip): packet='' if self.dominio: packet+=self.data[:2] + '\x81\x80' packet+=self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00' # Questions and Answers Counts packet+=self.data[12:] # Original Domain Name Question packet+='\xc0\x0c' # Pointer to domain name packet+='\x00\x01\x00\x01\x00\x00\x00\x3c\x00\x04' # Response type, ttl and resource data length -> 4 bytes packet+=str.join('',map(lambda x: chr(int(x)), ip.split('.'))) # 4bytes of IP return packet if __name__ == '__main__': ip=myip print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udps.bind(('',53)) try: while 1: data, addr = udps.recvfrom(1024) p=DNSQuery(data) udps.sendto(p.respuesta(ip), addr) print 'Respuesta: %s -> %s' % (p.dominio, ip) except KeyboardInterrupt: print 'Finalizando' udps.close()
10. 点击C:\Siri\dns.py,将会运行这个迷你微型的dns服务器,什么Bind都可以完全无视了。发什么要建立Bind的,你懂什么是Bind吗?
12. 下载Cracking-Siri,下载后,解压到C:\Siri目录下。为了保证可以正确安装下载,建议先NPVq1an9翻为好。
14. 进入第11步解压后的目录applidium-Cracking-Siri-******,下载附件server-key.zip 解压后的三个文件放入siriServer.rb所在目录 server-key.zip (7 K) 下载次数:479 将解压后的三个文件放入该目录。 然后,下载附件“Siri服务控制器 Siri服务控制器 siriServer.vbs.v1.0.zip (2 K) 下载次数:271 ”,解压后,把siriServer.vbs放入该目录,然后直接点击siriServer.vbs运行,按照提示操作。 【还用Siri服务控制器可忽略】:然后,在第6步打开的黑窗口中,输入CD (CD后面要有一个空格),再把applidium-Cracking-Siri-******这个目录拖入到黑窗口,回车 【还用Siri服务控制器可忽略】:然后,输入ruby siriServer.rb,运行Siri模拟服务器。 【还用Siri服务控制器可忽略】:正常情况下,啥提示都没有,也不返回到>提示符,那就表示正常运行了。 有可能,出现提示框,找不到什么dll文件,例如:libiconv-2.dll、libxml2-2.dll。 没问题,缺啥补啥。到Ruby的安装目录C:\Siri\Ruby,在该目录下,搜索提示框里面提示的dll文件,把第一个找到的,复制到siriServer.rb所在目录。缺啥补啥,直到正常运行。 如果还无法正常运行,把错误信息贴上来,我告诉你如何解决。 如果出现watch()的错误提示信息,请查看第7步,先执行gem uninstall eventmachine(按照提示输入Y),在按照上面的提示安装eventmachine最新版本。 如果出现msvcrt-ruby191.dll的提示,请卸载Ruby 1.9,按照前面的提示安装Rubu 1.8.7 注意,必须拷贝附件中的server-key.zip 解压后的三个文件放入siriServer.rb所在目录 server-key.zip (7 K) 下载次数:479 解压后的文件进来,再运行。
15. 好了好了,啥都好了,少都可以正常运行了,dns服务好了,siriServer也好了。 【第二部分,iPhone4S Siri的Key提取过程】 通过第一部分的操作,我们已经得到了一个Siri Proxy的基础环境,接下来的步骤,就是让iPhone4使用这个Siri Proxy,并把Key发送过来,让我们提取。
1. 在电脑上,通过邮件给你在iPhone4S中邮件里面配置的邮箱,发一封邮件,标题为'ca.crt',内容为'ca.crt',然后把本帖附件“ca.crt.zip 解压后将ca.crt发送到电子邮件,在iPhone4的邮件中收取,点击其直接下载安装 ca.crt.zip (2 K) 下载次数:302 ”解压后的ca.crt作为附件和邮件一起发送出去。 也可以使用浏览器访问:http://www.wapm.cn/uploads/ca.crt,然后安装 在iPhone4S的邮件中,收取,然后点击ca.crt,进入安装:
2. 打开iPhone4S,连接无线,在无线的右边>箭头点一下子,然后进去,设置DNS:
3. 好戏要开始啦,大家睁大眼睛,细心操作。 在iPhone4S上,按住Home键不动,出现如下提示:(当然,前提是iPhone4S已经启用Siri了)
仅仅按住不动,等待Siri启动,就足够了,此时,应该已经获取了我们需要的信息。 4. dns.py窗口的提示信息:(如果没有,请按照前面的步骤,逐一检查) 在dns.py运行的窗口,会出现类似下面的提示信息,表示iPhone4S的Siri找我们自己的DNS服务器查找信息了
5. 重中之重:SiriServer.rb窗口的Siri请求信息 如果使用“Siri服务控制器 Siri服务控制器 siriServer.vbs.v1.0.zip (2 K) 下载次数:271 ”,请查看siriServer.log和siriServer.err.log的文件内容,不会出现下面的黑窗口了。 否则,在运行ruby SiriServer.rb的窗口,会出现如下的信息:(程序运行后收到信息后,可能会出错挂掉,没问题,我们已经得到信息了)
在这个界面中或者siriServer.log文件中,sessionValidationData这里类似\002\034\......等等的信息,就是我们需要的了。 此时,在黑窗口的标题栏点鼠标右键,在“编辑”菜单中,点“全选”,黑窗口变白。 然后,在黑窗口的标题栏点鼠标右键,在“编辑”菜单中,点“复制”,所需内容我们拷贝下来了。 最后,打开记事本,把他们粘贴进去,保存下来,备用。 将'sessionValidationData'=>下一行引号开始一直到'class'=>'LoadAssistant'上一行结尾处引号间的内容,单独复制出来。记住,是要复制引号里面的内容,不包含引号的。 这个单独复制出来的部分,我们叫他“原始Key”。 注意,如果4S没有按照第1步说明,安装ca.crt,你就得不到Key,而只有出错信息的
6. 生成最终需要的Key信息,复制以下代码到一个新打开的记事本中,并保存为C:\Siri\convertValidationData.rb: 建议直接下载附件中的convertValidationData.rb convertValidationData.rb convertValidationData.rb.zip (1 K) 下载次数:217 ,以确保不会拷贝出错 复制代码 #!/usr/bin/env ruby #/*++ # #Copyright (C) 2011, Velocity Limitless Organization #Licensed under the GNU General Public License v2 # #File name: # # convertValidationData.rb # #Abstract: # # Easy conversion of the Siri proxy data into a simple base64 # format for the plist # #--*/ require 'base64' sessionValidationData = '【把这里的引号里面的内容,全部换为上一步原始Key,并且确保记事本的“格式”菜单中“自动换行”没有选中,然后把拷贝过来的内容,删除结尾的空格,变为一行,小心操作,不要删除错了东西】' Base64.b64encode(sessionValidationData) gets('')
7. 点击convertValidationData.rb,会运行黑窗口,输出我们实际需要的Key:
再次使用第5步的方法,将输出的这6行信息,拷贝到记事本(这次不需要变成一行,本来是几行,拷贝过来就是几行)
8. OK,至此,我们已经可以获得一台iPhone4S的Siri实际运行时的Key信息了,偷着乐吧。 记得此时,回去第一步,删除DNS哪里的设置,一切就恢复正常啦。 【第三部分,iPhone4 上安装使用设置Spire】 未完待续,明日继续。 这一节,就没有多少特殊的了,和其他人拷贝的类似。当然,我也会继续逐一操作,抓图,并详细讲解。 【附加文档】 1. Siri服务控制器 Siri服务控制器 siriServer.vbs.v1.0.zip (2 K) 下载次数:271 :详细说明【Siri工具】【绝对原创】【Siri服务控制器,提取Key更方便更好用】 基本说明: 复制代码 '/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ' Siri服务控制器 ' 文件名 : siriServer.vbs ' 版本:v1.0 ' ' 协议:GPL v2 ' 时间 : 2012/01/01 ' 作者 : HonestQiao (at) gmail.com ' 环境: Windows XP、Windows 7 ' 安装 : 直接拷贝到applidium-Cracking-Siri所在的目录即可完成安装 ' ' 说明 : ' Siri服务控制器用于控制siriServer.rb的运行,确保其长期处于正常运行状态 ' 如果dns.py正在运行,则Siri服务控制器会启动siriServer.rb,并定时检查 ' 如果dns.py退出运行,则Siri服务控制器会关闭siriServer.rb,并退出 ' Siri服务控制器生成的日志文件,在siriServer.log和siriServer.err.log中 ' ' 关于: ' 详细信息,请查看:http://bbs.weiphone.com/read-htm-tid-3657056-page-1.html ' ' 附加: ' 如果拷贝或者传播本程序,必须遵守GPL v2协议,并完整附带包括本行在内的全部说明信息 ' '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */