栈溢出 —— 初级 ROP 学习记录

首发 CTF 后再次深刻体会到了自己以前对栈溢出的理解是如此的不深刻,故趁着剩下这没几天的时间(不是应该拿来补作业吗?)学习了一下初级 ROP 的原理及应用。

同样因为是初级学习经验,故神犇请自觉绕路((

 


 …

菜鸡首发 CTF || 部分 WriteUp & 学习经验

靠着神通广大的群友关系()混进了 HIT 的 CTF 队招新比赛,学到了很多姿势和 pwn 经验,故在此记录一下。

萌新菜鸡首发 CTF,题目比较简单,而且还没有 AK,神犇请自觉绕步(

还有 %%%%%% rxz mcfx

 


 …

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

只要在设置里更改名字就好了,再也不需要XboxGooglePlayService的登录验证了。

.idb下载:libminecraftpe.idb

详情见:https://mc.mnihyc.com/

 

 

Thanks to https://bbs.pediy.com/thread-230034.htm,帮我节省了很多寻找验证的时间。

 …

PHP md5() 大坑

看到有一个很有意思的测试,代码大概是下面的感觉:

如何得到 $flag 的值???…