-
-
[分享]iOS writeup
-
发表于: 2015-10-20 13:17 2710
-
第一题就是比手快啊。。。IDA打开直接看到onClick函数,然后直接写代码就可以了。。
第二题
首先在这里找到了struct cdevsw的定义
然后Apple源码库中找到了引用过ptmx_cdev的代码
然后在kernelcache里搜索ptmx字符串找到了对应的函数sub_80293330:,
以及对应的结构体
接下来寻找调用`cdevsw_add`的地方,找到了random和pf对应的位置
最后将3*3=9个地址拼接起来,为flag:0x800c0ea1#0x800c0e39#0x800c0e05#0x802873ad#0x802873ad#0x80149d19#0x80292251#0x80292661#0x8029298d
#!/usr/bin/env python # encoding: utf-8 import string from hashlib import sha256 from Crypto.Cipher import AES def caesar(s, k): r = '' for c in s: if c in string.uppercase: r += chr((ord(c)-ord('A')-k) % 26 + ord('A')) elif c in string.lowercase: r += chr((ord(c)-ord('a')-k) % 26 + ord('a')) else: r += c return r key = 'ZGlhb2RhX2ppYW5rYW5nCg==' c = 'mrMZAbjtZozDOGI9UeeH6g0iLHNnTNsFyzS0tYca4R3KkaQ0doxdDVuxZ7HoqYOcxFhgDiEvdGKix95VJNEUP8rdox4cm7GHVkbVcTJPmrTtH7hompW+xjTgGg2zQhs0tUGQ8lCggev2SNoWcaUOUU==' for k in xrange(4, -1, -1): t = caesar(c, k) aes = AES.new(sha256(key).digest(), AES.MODE_CBC, IV='\x00'*16) c = aes.decrypt(t.decode('base64')) c = c[:len(c)-ord(c[-1])] print c
第二题
首先在这里找到了struct cdevsw的定义
然后Apple源码库中找到了引用过ptmx_cdev的代码
然后在kernelcache里搜索ptmx字符串找到了对应的函数sub_80293330:,
以及对应的结构体
接下来寻找调用`cdevsw_add`的地方,找到了random和pf对应的位置
最后将3*3=9个地址拼接起来,为flag:0x800c0ea1#0x800c0e39#0x800c0e05#0x802873ad#0x802873ad#0x80149d19#0x80292251#0x80292661#0x8029298d
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: