180124 逆向-XMAN结营赛(前方高能)

1625-5 王子昂 总结《2018年1月24日》 【连续第481天总结】
A. 结营赛前方高能WP
B.

前方高能

XMAN第七组WriteUp
说实话好像确实有点难,不过逻辑链条很完整,是中规中矩的逆向题。就是内容有点太多了2333有兴趣的可以再自己做做,都是我觉得挺有意思的题型
没人做到真正的部分让我们挺失落的qvq
qvqNDK的C不支持内联x86汇编,动态解密部分可是我辛辛苦苦用汇编Patch上去再不断调试了一个上午才完成的。不看我的面子也要看欣蕾姐被我们拖累到半夜四点还在上传题目的面子上啊(欣蕾姐真是对不起orz

作为出题人有点上帝视角,感觉这些东西都是轻轻松松就能被做出来的样子。比赛去结题的时候发现每一个步骤都有很多种可能,要逐个验证排除才能做出来~
第一次出题,转换视角的经验还是挺有意思的-0-

下面奉上WP
PS:正如分享时所说,模拟器中Android4.0\5.0是可以正常安装被伪加密的APK的。而高版本的安卓则不行,需要先去除伪加密。

伪加密

打开发现被加密,在模拟器中正常安装所以猜测伪加密
使用脚本清除所有”504b0102”后第8个字节的第一比特位

加密脚本如下

    f = open(r"matex.apk", "rb")
    res = f.read()
    f.close()
    flag = b"\x50\x4b\x01\x02"
    for i in range(len(res)):
        if(res[i]==0x50):
            print(res[i:i+8])
            for j in range(3):
                if(res[i+j]!=flag[j]):
                    break
            else:
                if(not res[i+8]&1):
                    res = res[:i+8] + bytes(((res[i+8]) + 1 ,)) + res[i+9:]
    f =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值