当前位置: 首页 > news >正文

SMC自修改代码一

 一,对SMC的通俗解释。

         就比方说,有一个游戏,一般来说游戏的规则是不变的,但是如果游戏规则能够根据你玩游戏的方式而改变,那么该游戏的难度是不是会增加。SMC与之类似,它会根据需要改变代码。

二,SMC的作用与功能

         

三,原理

        基本原理:是在编译可执行文件时,将需要加密的代码区段(如函数、代码块) 单独编译成一个section(段),并将其标记为可读,可写,不可执行,然后通过某种方法在程序运行的时候将section解密为可执行代码,并将其标记为可读、可执行、不可写。这样就不能直接在内存里面找到加密的代码,从而无法执行或修改加密的代码。(其加密过程一般采用异或等简单的加密算法,解密是通过相同的算法对密文进行解密。)

先标记为可读可写不可执行,后标记为可读可执行不可写的目的

1. 允许代码动态修改,但防止任意代码注入

  • RW- 阶段

    • 程序需要修改自身的代码段(例如动态生成指令、优化热代码路径或解密加密的代码)。

    • 此时内存必须可写(W),但不能执行(X),防止 CPU 意外执行未准备好的代码(可能包含恶意或未初始化的指令)。

  • RX- 阶段

    • 修改完成后,内存权限切换为可执行(X),但禁止写入(移除 W)。

    • 这确保修改后的代码可以安全执行,同时防止后续恶意篡改(如攻击者利用漏洞覆盖代码)。


2. 防御代码注入攻击(如 Shellcode)

  • 如果内存始终保持 RWX(可读可写可执行),攻击者可能利用缓冲区溢出等漏洞,向内存写入恶意代码并直接执行。

  • SMC 的权限切换策略(RW- → RX-) 遵循 W^X(Write XOR Execute) 原则:

    • 任何时候,内存页不能同时可写和可执行,从而阻断攻击者的代码注入途径。


3. 兼容现代 CPU 的安全特性

  • 现代 CPU(如 Intel NX、ARM XN)支持硬件级的内存执行保护。

  • 通过 RW- → RX- 切换:

    • 在修改阶段禁用执行(避免 CPU 误执行中间状态代码)。

    • 在执行阶段禁用写入(利用硬件机制锁定代码完整性)。


4. 避免自修改代码的竞争条件

  • 如果代码在修改过程中被意外执行,可能导致未定义行为(如指令解析错误或崩溃)。

  • RW- 阶段确保:

    • 只有明确的写入操作能修改代码,CPU 不会同时执行该区域。

  • RX- 阶段确保:

    • 代码一旦完成修改,立即变为只读,避免后续写入干扰执行流。

http://www.lqws.cn/news/215443.html

相关文章:

  • MCP详解及协议的使用(python版本和Node版本)
  • FreeRTOS事件组-笔记
  • AI大神吴恩达-提示词课程笔记
  • 【Go语言基础【14】】defer与异常处理(panic、recover)
  • 深入剖析MySQL存储架构,索引结构,日志机制,事务提交流程
  • 【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
  • KTO: Model Alignment as Prospect Theoretic Optimization
  • [总结篇]个人网站
  • XGBoost时间序列预测之-未来销量的预测
  • 【氧化镓】HTFB应力对β - Ga2O3 SBD的影响
  • 【JavaSE】泛型学习笔记
  • GIC700组件
  • 什么是预训练?深入解读大模型AI的“高考集训”
  • Python抽象基类实战:构建广告轮播框架ADAM的核心逻辑
  • 数据类型-整型
  • python怎么读shape文件?
  • Java 并发编程系列(上篇):多线程深入解析
  • 高级数据结构与算法期末考试速成记录2
  • 获取环境变量的两种方式:getenv()和environ
  • 【C/C++】STL实现版本为什么比手写版本高?
  • SWE-Dev:开启自主特征驱动软件开发新纪元,重新定义大模型编码能力边界
  • IOS性能优化
  • 【Linux庖丁解牛】—系统文件I/O !
  • Python网页自动化测试,DrissonPage库入门说明文档
  • 从零开始的python学习(七)P102+P103+P104+P105+P106+P107
  • [SNOI2024] 公交线路 题解(观察,点减边容斥,优化trick)
  • 【分销系统商城】
  • Python Robot Framework【自动化测试框架】简介
  • c++ —— 内存管理
  • 人工智能赋能高中学科教学的应用与前景研究