安全攻防下 (31)

简介: 名称混淆

名称混淆


  1. 混淆要求: 业务开发 -> 没有问题


  1. 但是业务上线 -> 名称混淆


  1. 逆向分析-> 入口 ->  从方法名/类名分析 -> 怎么隐藏?
  2. 用宏定义隐藏 -> .pch文件


  1. 建立pch文件, 如果项目中没有的话
  2. build setting -> prefix header -> 设置pch

微信图片_20220510050016.jpg

image.png


       d.这样写的好处, 代码完全不用变

       e.这时给断点, 查看函数栈


微信图片_20220510050023.jpg
image.png


       f.这时如果别人逆向你, 恢复符号跟没恢复一样, 让人头大


  1. 有关Swift -> 就比较好, 自带混淆, 因为有类前缀


     g.pch的好处 -> 轻量级, 对项目的污染度低(针对OC)


  1. 只能干掉自定义的方法名/函数
  2. 建议核心的类名 和 方法名可以使用
  3. 扩展: 写个脚本, 或者写一个算法, 让每次编译都不一样


扩展


可能导致上不了线的操作


  1. 大量的流程的混淆


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


字符串常量的隐藏


  1. EncryptionTools -> 一个简单的加密工具
  2. 这时候破解者只要断你的CCCrypt函数就能拿到你的Key
  3. 查看汇编


  1. adrp -> 在某页取数据


  1. 如果说本地一定要有字符串常量怎么隐藏?


  1. 全局函数 -> 没有符号

微信图片_20220510050027.jpg

image.png


       c.目的 -> 在静态分析的时候找不到我们的Key字符串

       d.但是这样如果找到函数地址, 字符串还是很明显

微信图片_20220510050031.jpg
image.png


       e.这时候可以来一个简单的疑惑算法来隐藏

微信图片_20220510050043.jpg
image.png


       f.上面的简单算法生成的字符串, 不会进入常量区, 别人看汇编也就看不到这个字符串.


ptrace防护fashhook


  1. 打符号断点, 拿到ptrace所属的库



微信图片_20220510050047.jpg

image.png


  1. 拿到库路径


  1. image list


       b.

微信图片_20220510050052.jpg

image.png


  1. #import <dlfcn.h>

微信图片_20220510050056.jpg

image.png


  1. 这种通过dlopen懒加载的, 我们fishhook写的hook代码就失效了(通过间接符号表的hook)


  1. 再用fishhook来hook -> ptrace之前, 已经查看懒加载符号表, 看里面有没有ptrace的符号, 如果没有则肯定hook失败
  2. 这里有点坑啊, dlopen的写法, 好像过不了审吧 (要查资料验证一下)


  1. 但是通过hopper查看macho -> 全局搜ptrace还是能很快定位
  2. 这时候我们上面讲的字符串隐藏就可以起到作用隐藏ptrace字符串
  3. 此时, 工程用hopper打开, 全局搜ptrace也搜不到


怎么破解上面的防护呢?


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

微信图片_20220510050101.jpg
image.png


  1. 1028f5e34


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

        d.

微信图片_20220510050105.jpg
image.png



  1. 修改汇编源码比如把 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




目录
相关文章
|
2天前
|
SQL 安全 物联网
网络安全与信息安全:防御前线的构筑之道
【4月更文挑战第30天】在数字化时代,网络安全和信息安全已成为个人和企业维护数据完整性、确保信息不被非法访问的关键。本文深入探讨网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性,旨在为读者提供一系列实用的知识分享,帮助构建更为坚固的网络安全防线。
|
3天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的关键技术与意识觉醒
【4月更文挑战第29天】在数字化时代,网络安全与信息安全已成为维护社会稳定、保障个人隐私和确保企业资产的重要防线。本文将深入探讨网络安全漏洞的概念、加密技术的最新进展以及提升安全意识的重要性,旨在为读者提供全面的安全防护知识框架,帮助构建起一个更为坚固的网络安全防线。
|
11天前
|
安全 算法 网络安全
网络安全与信息安全:防御前线的关键技术与实践
【4月更文挑战第21天】 在数字化时代,数据成为了新的货币,而网络安全则是保护这些宝贵资产不受威胁的盾牌。本文深入探讨了网络安全漏洞的成因、加密技术的最新进展以及提升个人和企业安全意识的重要性。通过分析当前网络攻击的模式,文章提出了一系列针对性的防护措施和策略,旨在为读者提供一个全面的网络安全知识框架。
|
17天前
|
SQL 监控 安全
网络安全与信息安全:防护之道与攻防之术
【4月更文挑战第15天】 在数字化时代,数据成为了新的金矿,而网络安全和信息安全则是保护这座金矿的堡垒。本文将深入探讨网络安全漏洞的产生机理、加密技术的最新发展以及提升个体和企业的安全意识的重要性。通过对网络威胁的剖析、加密技术的解读以及安全策略的构建,旨在提供一套综合性的网络安全防护框架,以帮助读者在日益复杂的网络环境中保持警觉,并采取有效措施以确保数据和资产的安全。
|
23天前
|
监控 安全 算法
网络安全与信息安全:防护之道与攻防之策
【4月更文挑战第9天】在数字化时代,网络安全与信息安全已成为维系现代社会运行的重要支柱。本文将深入探讨网络安全漏洞的产生机理,加密技术的最新进展以及提升个体和企业安全意识的有效策略。通过分析当前网络威胁的多样性和复杂性,我们强调了主动防御的必要性,并提出了结合技术手段与教育培训的综合解决方案。
|
2月前
|
安全 程序员 网络安全
网络安全与信息安全:防护之道在技术,更在人心
在数字化时代,网络安全与信息安全已成为我们不可忽视的问题。本文将探讨网络安全漏洞的产生、加密技术的应用以及安全意识的重要性,以期提供一种全面的视角来理解和应对这一挑战。我们将看到,虽然技术的发展为我们提供了强大的防护工具,但真正的安全还需要我们每个人的警觉和参与。
|
9月前
|
机器学习/深度学习 监控 安全
网络安全攻防的技术与实践
网络安全攻防技术与实践是维护信息安全的重要手段。通过理解不断进化的攻击技术、采用防御技术和实施安全实践,我们可以更好地保护网络环境,降低安全威胁。未来,网络安全将继续面临新的挑战,需要不断学习和创新,以保障个人和组织的信息安全。
229 1
|
SQL 机器学习/深度学习 安全
安全攻防技能30讲
  《安全攻防技能30讲》是极客时间上的一个关于Web安全的专栏,在学习之后特在此做记录和总结。
安全攻防技能30讲
|
安全 大数据 双11
阿里极客部队有位神秘人,让黑灰产组织闻风丧胆
黑灰产组织是电商、是互联网产业最大的敌人。阿里安全技术负责人黄眉和他的同事们要做的是:一夫当关,万夫莫开。
2911 0