Google Chrome的彩蛋,不用说大家都知道的。
月度归档: 2018 年 9 月
MCPE去除Xbox登录验证,愉快的玩耍服务器
前几天又把Minecraft PE下载下来了,更新的还真的很快,我最后一次玩好像是在0.10版本左右,现在已经更新到了1.6了。
成功的利用PocketMine搭了个服务器,但是我发现不知道从什么时候开始MCPE连服务器的时候竟然需要登录Xbox账号!!!
这个可以算是非常烦人。虽然我的手机上有Google全家桶,但是要和别人联机这就不好玩了。如果把Google Play Service的依赖弄掉,那么Xbox的验证就无法成功。如果要成功登录Xbox,手机里就必须装有Google Play Service。这个真的是非常烦人。
所以我决定把Xbox验证的功能手动弄掉。(注:直接用幸运破解器弄掉Google Play Service的验证)
首先把整个APK解包出来,来到./com.mojang.minecraftpe/lib/armeabi-v7a,底下有两文件。

其中那个50多MB的libminecraftpe.so就是我们的目标文件。
用IDA6.8打开它(IDA7.0我只有x64的)(IDA6.8下载地址:Click Here)
然后就是长达3个多小时的分析过程。。。。。。。。。。。(强烈吐槽IDA的单线程
)


(PS:是真的三个多小时)
首先快速定位到字符串xbox.externalServer.title
详细的字符串信息可在./assets/resource_packs/vanilla/texts/zh_CN.lang找到
然后一个F5下去,寻找一下代码,立马就发现一个登录验证函数
isSignedIn()的返回值给v14,然后在底下判断是否成功

来到汇编代码,BLX就是ARM中的执行函数指令,且返回值保存在R0寄存器
(Intel汇编call为执行函数指令,返回值保存在eax)

因为IDA不支持ARM的汇编直接修改,所以必须转换为Hex才可以修改。


观察到相同的部位,所以直接修改。

4F F0 01 04 = MOV R0, #1
00 BF = NOP
修改过后就变成这样,这就很开心了

但是还不能开心的太早,这里还有一句验证登陆的语句。
跟刚才一样弄掉。



这样所有的验证就都弄掉了,应用这个Patch,然后重新打包APK,就可以得到一个很开心的最新版本的MCPE Stable 1.6.0.14
只要在设置里更改名字就好了,再也不需要Xbox和GooglePlayService的登录验证了。
.idb下载:libminecraftpe.idb
Thanks to https://bbs.pediy.com/thread-230034.htm,帮我节省了很多寻找验证的时间。
YZOJ P1800 质数生成器
[NOIP2015四校联训Day8]质数生成器
时间限制:1000MS 内存限制:131072KB
-
题目描述
生成给定范围内的所有质数。
-
输入格式
有多组数据。
输入数据第一行是一个整数\(T(T\leq10)\),表示测试数据的组数。
接下来\(T\)行,每行有两整数\(m, n\),表示要求生成质数的范围是\([m, n] (1 \leq m \leq n \leq 10^9, n-m \leq 10^6)\)
-
输出格式
对于每一组测试数据,输出所有在\([m, n]\)中的质数\(p\),一行一个。
不同测试数据之间用一个空行分隔。
-
样例输入
|
1 2 3 |
2 1 10 3 5 |
-
样例输出
|
1 2 3 4 5 6 7 |
2 3 5 7 3 5 |
-
数据规模与约定
对于\(30\%\)的数据,\(m < n \leq 10^3\);
对于\(50\%\)的数据,\(m < n \leq 10^6 且 n-m \leq 10^3\);