63:攻防世界-Mobile-Android2.0

因为一点私人事情,废物了一把,出去玩了几天,调整了一下自己。要继续努力了,继续奋斗,坚持。

1.明天课设答辩,因为之前太废物,只搞了一天课设,课设应付的,心里还有点自责。。。。如果挂了,也是活该。

2.刷了一道题

直接上JEB,

查看show函数,

所以参数应该是1.

然后使用Android原生 对密码进行加密。

IDA查看原生代码。

Init函数将v2分解,分别给了v3,v4,v5,然后对这三个参数进行验证,都正确则返回1.

查看First函数,

注意,这里只对前四位进行了变换,写第一个脚本:

s1 = ''
t1 = 'LN^d'

for i in t1:
    s1 += chr((ord(i) ^ 0x80) // 2)
s1 += 'l'
print(s1)

然后对v4的前4位进行了变换,此时v3已经经过了变换,即v3=‘LN^dl’,第二个脚本:

s2 = ''
t2 = [0x20, 0x35, 0x2d, 0x16]
for i in range(len(t2)):
    s2 += chr(ord(t1[i]) ^ t2[i])
s2 += chr(0x61)
print(s2)

v5的思路也是一样,第三个脚本:

s3 = ''
t3 = 'AFBo'
for i in range(len(t3)):
    s3 += chr(t2[i] ^ ord(t3[i]))
s3 += '}'
print(s3)

然后将分析了Init函数,

就是将参数的值取余3,每一位分别赋给一个变量,脚本合体:

flag = ''
for i in range(5):
    flag += s1[i] + s2[i] + s3[i]
print(flag)

 

我要继续努力,不能因为一点挫折就一蹶不振,加油!加油!加油!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值