[声明]
本文基于国外大神kost的研究成果,他将所有的源码和文档都发布出来(各位童鞋可在此贴的后面找到下载地址),本人在此基础上进行归纳和改进,最终给出一个傻瓜化的工具,在此向前辈致敬。
然后鄙视一下国内的某人,将kost的源码汉化后加上自己的水印,以原创的名义发布在某著名操作系统论坛上,公然剽窃。
Author:b41k3r
From:红客联盟(HUC)
[准备知识]
提到越狱,很多人都知道ios的越狱,安卓的root也属于此类,这些越狱的步骤大致有以下两步:
1. 寻找漏洞,将对设备的控制权提升到root级别。
2. 破解所安装应用的数字签名认证,以安装非应用商店应用。
刚刚发布的Windows 8,第一次加入了应用商店的功能,由于用户安装完win8之后,直接就拥有了管理员权限,所以越狱的工作就只剩下了第二步。
[原理]
在win8下,要安装新的Metro界面的应用程序,正常途径只有两条:
1. 注册windows账号,从官方应用商店下载安装程序。
2. 安装一个Virsual Studio 2012自己开发程序,但仅限于本机调试运行。
除此之外,其实还有两条路可走,第一条路是注册微软的开发者账号,然后就可以安装非认证的应用程序了,前段时间出来的一些越狱工具,如Win8优化大师,走的就是这条路,将应用商店账号提升为开发者账号。
但这条路有致命的弊端,不可能所有用户都注册成开发者,开发者账号现在注册很容易,且免费,但指不定哪天就像Apple一样一年100美刀了,到时候微软大量封杀咋办?
如此以来,现阶段就剩下一个办法了:
微软在Windows 8企业版中提供了一个可以让用户自由安装应用的功能”Sideloading”,要使用此功能,需要满足以下条件:
1. 在注册表或组策略中启用”允许安装受信任的应用程序”。(具体注册表位置在:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Appx下的AllowAllTrustedApps键值,设为1即可)
2.将计算机加入一个域,此域的主控计算机必须有Sideloading功能的激活密钥(也可在本机安装密钥)。
第一条很好办,那么所有的文章就要在第二条上做了,请继续往下看。
[破解过程]
kost的办法是hook windows store服务,使其认为计算机已经加入合法的域,从而达到越狱的目的,他提供了一个wsservice_crk.dll文件,通过注册为LocalServiceAndNoImpersonation组的服务,在后台运行。
这样一来,应用可以装了,可是应用在哪里呢?当然要有人先下载,然后再破解,再发布,ios的用户对这些再也熟悉不过了。
要自己发布app,需要准备四个工具,makeappx、signtool、makecert和pvk2pfx,具体用法下面会提到。
首先从应用商店下载并安装应用(TMD还得自己装啊),所有应用的安装位置都在C:\Program Files\WindowsApps下,注意:此目录先必须显示隐藏文件,并对其赋予权限才可以打开。
将你要安装好的应用连带目录整个拷贝出来(目录名以字符串表示,要是不清楚是哪个的话,打开就可以看到应用名称),删除其中的microsoft.system.package.metadata子目录(隐藏文件夹)。
第一步,你需要一个根证书,需要使用makecert和pvk2pfx两个工具:
makecert -r -pe -n “CN=microsoft” -a sha256 -cy end -sky exchange -b <证书开始日期> -e <证书过期日期> -sv <文件名>.pvk <文件名>.cer
“CN=microsoft”中的microsoft代表颁发者,可以自己设,两个文件名必须一致,这个也由你自己取。输入完回车后会弹出一个对话框要求你输入私钥,要输入三遍,选一个你能记得住的密码吧,后面要用到,全部完成后会生成一个pvk和一个cer文件。
pvk2pfx -pvk <文件名>.pvk -spc <文件名>.cer -pfx <文件名>.pfx -pi <刚才输入的私钥>
最后生成的pfx文件就是你要的根证书了。
第二步,程序文件包打包:
在打包前修改程序文件夹下的AppxManifest.xml文件,将Identity项的Publisher属性改为”CN=<刚才设置的证书颁发者>”并保存,然后打开cmd,进入MakeAppx工具所在目录输入:
MakeAppx.exe pack /d <源文件夹完整路径> /p <生成的程序包路径和文件名>
生成的程序包文件名需以appx结尾。
由于appx应用必须进行数字签名才可以安装,所以用刚才制作的根证书为程序包签名:
signtool sign /v /a /fd SHA256 /p <你的私钥> /f <证书路径和文件名> <程序包路径和文件名>
第三步,签名完成后的appx文件可以安装了,以管理员权限运行PowerShell,输入:
Add-AppxPackage <程序包路径和文件名>
进度条走完后打开你的开始屏幕,恭喜你!安装完成了!
[越狱后能干什么]
1.安装付费应用,由于Windows store现在的软件数量极少,优秀的付费应用更少,破解付费并不是本文的范畴,以后有时间再写原理和过程,kost提供了一个TokensExtractor工具来破解付费应用,破解后可以发布给别人安装,好像现阶段网上还无人发布。
2.离线安装程序包,由于Windows store在国内访问慢如蜗牛,有些地方甚至要改DNS才能打开,所以离线安装绝对是中国人的首选。
3.安装自己开发的、别人开发的无法通过微软审核上架的应用(万恶的审核制度见鬼去吧!)。
[终于轮到我写的工具了]
大众都喜欢傻瓜化工具,那么让我来做好人吧,上面的过程已被我集成到几个小按钮上,为了不让大家伙更懒,安装应用还是要通过上面那条命令(别扔臭鸡蛋):
注意:只支持64位的企业版win8,32位以后我会补上的,选项中可以设置后台破解服务的名称,和你自己的证书信息,证书文件自带,在certificate目录下。必须右键选择用管理员权限运行。
kost发布的源码和文档与本人的工具已一并打包:
下载地址: http://kuai.xunlei.com/d/TIZBYPAYFFXN
[再废话几句,展望一下未来]
随着越狱的出炉,非官方的应用商店,类似ios上的cydia,还有盗版软件中心之类的预计会很快粉墨登场,而各大杀毒软件公司对越狱补丁的态度也将很值得玩味,我已经嗅到了战争的味道……