美文网首页
安全攻防下 (31)

安全攻防下 (31)

作者: 为了自由的白菜 | 来源:发表于2021-08-04 11:20 被阅读0次

名称混淆

  1. 混淆要求: 业务开发 -> 没有问题
    1. 但是业务上线 -> 名称混淆
  2. 逆向分析-> 入口 -> 从方法名/类名分析 -> 怎么隐藏?
  3. 用宏定义隐藏 -> .pch文件
    1. 建立pch文件, 如果项目中没有的话
    2. build setting -> prefix header -> 设置pch
    3. image.png
    4. 这样写的好处, 代码完全不用变
    5. 这时给断点, 查看函数栈 image.png
    6. 这时如果别人逆向你, 恢复符号跟没恢复一样, 让人头大
      1. 有关Swift -> 就比较好, 自带混淆, 因为有类前缀
    7. pch的好处 -> 轻量级, 对项目的污染度低(针对OC)
      1. 只能干掉自定义的方法名/函数
      2. 建议核心的类名 和 方法名可以使用
      3. 扩展: 写个脚本, 或者写一个算法, 让每次编译都不一样

扩展

可能导致上不了线的操作

  1. 大量的流程的混淆
    1. LLVM -> 会把冗余的代码干掉
    2. 混淆有可能产生大量的冗余代码

字符串常量的隐藏

  1. EncryptionTools -> 一个简单的加密工具
  2. 这时候破解者只要断你的CCCrypt函数就能拿到你的Key
  3. 查看汇编
    1. adrp -> 在某页取数据
  4. 如果说本地一定要有字符串常量怎么隐藏?
    1. 全局函数 -> 没有符号
    2. image.png
    3. 目的 -> 在静态分析的时候找不到我们的Key字符串
    4. 但是这样如果找到函数地址, 字符串还是很明显 image.png
    5. 这时候可以来一个简单的疑惑算法来隐藏 image.png
    6. 上面的简单算法生成的字符串, 不会进入常量区, 别人看汇编也就看不到这个字符串.

ptrace防护fashhook

  1. 打符号断点, 拿到ptrace所属的库
    1. image.png
  2. 拿到库路径
    1. image list
    2. image.png
  3. #import <dlfcn.h>
  4. image.png
  5. 这种通过dlopen懒加载的, 我们fishhook写的hook代码就失效了(通过间接符号表的hook)
    1. 再用fishhook来hook -> ptrace之前, 已经查看懒加载符号表, 看里面有没有ptrace的符号, 如果没有则肯定hook失败
    2. 这里有点坑啊, dlopen的写法, 好像过不了审吧 (要查资料验证一下)
  6. 但是通过hopper查看macho -> 全局搜ptrace还是能很快定位
  7. 这时候我们上面讲的字符串隐藏就可以起到作用隐藏ptrace字符串
  8. 此时, 工程用hopper打开, 全局搜ptrace也搜不到

怎么破解上面的防护呢?

  1. 符号断点, 确实能断到ptrace, 但是就是找不到, 这时候就考虑别人有可能做了防护
  2. 这时候看符号断点, 通过函数调用栈找到调用者

    1. image.png
  3. 1028f5e34
    1. image list -> 拿到首地址
    2. 相减 -> 5E34
    3. 用这个地址去hopper打开的文件中搜就能找到关键函数

      4. image.png
    4. 修改汇编源码比如把 cbz改为b -> 就不会走5E34的汇编代码, 就绕过了ptrace

再套娃, 如何防护

  1. 打开strip, 脱去所有不必要的符号
  2. 这样别人就不好找了
  3. 其实只是增加了别人找的难度, 这里的重点是怎么隐藏符号断点让别人断不到

隐藏符号断点

  1. #import <sys/syscall.h>
  2. syscall(26,31,0.0) -> 这个方法等同于ptrace
  3. 自己查下该函数
  4. 这里是隐藏了其他的符号断点, 但是syscall的符号断点又暴露了, 感觉是个套娃
  5. 怎么办, 这里给个建议, 可以写汇编代码来代替syscall
  6. 当然也可以写ptrace的汇编
  7. 平时的防护检测后, 用的exit(0)的汇编
  8. 这里注意32位和64位
  9. 这种其实叫软中断, 怎么破解 -> 全局搜svc

相关文章

  • 安全攻防下 (31)

    名称混淆 混淆要求: 业务开发 -> 没有问题但是业务上线 -> 名称混淆 逆向分析-> 入口 -> 从方法名/...

  • iOS安全攻防

    iOS安全攻防 iOS安全攻防

  • iOS安全攻防1

    安全攻防

  • iOS安全攻防

    参考iOS安全攻防(二十三):Objective-C代码混淆代码混淆 md5 + base64[ios]安全攻防之...

  • 初识Empire

    前言 最近在看《Web安全攻防》一书,将不熟悉的Empire进行实验操作来学习。 参考资料《Web安全攻防渗透测试...

  • CTF初识

    ctf分类 安全加固,系统运维,漏洞修补 网络流量,日志分析, 漏洞利用,补丁开发,组织攻防 漏洞利用,攻防实施 ...

  • 网络安全中攻防演练主要作用是什么?

    在安全行业中,大家一定都听说过“攻防演练”这个词,而且很多企业都会不定期进行攻防演练,那么攻防演练主要做什么?相信...

  • 参与贵阳大数据与网络安全攻防演练赛 昂楷荣获安全防卫奖

    11月28日,2017贵阳大数据及网络安全攻防演练观摩总结大会在经开区大数据安全产业示范区展示中心举行。 此次攻防...

  • 常见web安全攻防总结

    Web 安全的对于 Web 从业人员来说是一个非常重要的课题 , 所以在这里总结一下 Web 相关的安全攻防知识,...

  • 信息安全不可错过的30门实验

    实验楼联合SEEDLabs建立SEED信息安全实验室,并推出全系列SEED信息安全在线实验,涵盖软件安全、网络攻防...

网友评论

      本文标题:安全攻防下 (31)

      本文链接:https://www.haomeiwen.com/subject/vtcuvltx.html