首页
社区
课程
招聘
[原创][原创]iOS writeup
2015-10-18 22:12 2776

[原创][原创]iOS writeup

2015-10-18 22:12
2776
在看《iOS逆向》学习的时候逛到看雪,刚好看到有比赛就来玩玩,距离上次登录快一年了。时间过得真快啊。

第一题

拖进Hopper,一眼看到[ViewController onClick]。
函数很简单,一共解密5次。先经过[Ceasar_CipherModel decrypt],再与密钥AES。
  
r10 = @selector(initWithCipherKey:);
    r6 = @"mrMZAbjtZozDOGI9UeeH6g0iLHNnTNsFyzS0tYca4R3KkaQ0doxdDVuxZ7HoqYOcxFhgDiEvdGKix95VJNEUP8rdox4cm7GHVkbVcTJPmrTtH7hompW+xjTgGg2zQhs0tUGQ8lCggev2SNoWcaUOUU==";
    r4 = @selector(alloc);
    r11 = 0x5;
    var_24 = @selector(decrypt);
    do {
            r0 = objc_msgSend(@class(Ceasar_CipherModel), r4);
            r11 = r11 - 0x1;
            r2 = r11;
            r0 = objc_msgSend(r0, r10);
            r5 = r0;
            r2 = r6;
            r0 = objc_msgSend(r0, r8);
            r0 = objc_msgSend(r5, var_24);
            r2 = objc_msgSend(r5, var_20);
            r3 = @"ZGlhb2RhX2ppYW5rYW5nCg==";
            r6 = objc_msgSend(@class(AESCrypt), var_1C);
    } while (r11 > 0x0);


本来打算hook Ceasar_CipherModel的,结果发现堆上保留有对象。直接拿来用了。



得到结果Sp4rkDr0idKit。我并不知道diaoda_jiankang是什么意思。。

第一题 完!

第二题

刚开始连内核里面会有什么东西都不知道。。。
只好搜了一下cdevsw+ random, 居然发现了Apple公开的源码,虽然版本不一样,但差别不会很多。

源码
http://www.opensource.apple.com/source/xnu/xnu-2782.40.9/bsd/dev/random/randomdev.c

可以看到random_init有对cdevsw的引用。

void
random_init(void)
{
  int ret;

  ret = cdevsw_add(RANDOM_MAJOR, &random_cdevsw);
  if (ret < 0) {
    panic("random_init: failed to allocate a major number!");
  }


直接定位字符串,找到



cdevsw结构体在0x803bd360 + 0xb14 = 0x803bde74


参考cdevsw定义得到
read:   0x800c0ea1
write:  0x800c0e39
ioctl:          0x800c0e05

同理,/dev/pf 在 0x803bd360 + 0xbbc = 0x803bdf1c

read:   0x802873ad
write:  0x802873ad
ioctl:    0x80149d19

开始有点怀疑,read和write是一样的,看了源码发现都是enodev。

第三个在 0x803bd360 + 0xc2c = 0x803bdf8c


read:          0x80292251
write:  0x80292661
ioctl:          0x8029298d

综上,0x800c0ea1#0x800c0e39#0x800c0e05#0x802873ad#0x802873ad#0x80149d19#0x80292251#0x80292661#0x8029298d

第二题 完!

第三题看到头都晕了,终于看懂是怎么执行的了,但还是找不到地方。
最后还是没人做出来,应该挺难的吧。

这两天学习到很多东西,看懂了arm汇编,lldb, hopper,各种逆向工具都上手了。是一次很好的练手机会。

希望这类比赛多点举办,现在移动安全越来越重要了。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回