首页 > 系统相关 >TEE 开发 禁止大内存TA加载

TEE 开发 禁止大内存TA加载

时间:2024-05-14 16:31:25浏览次数:28  
标签:load TA 加载 TEE heap ta size

我们会经常遇到一些 TA , 把自己的TA_STACK_SIZE 和 TA_HEAP_SIZE  设置的太大 ,从而无法成功被load的情况。
因为ta ram 一共就这些内存, 但是 TA的这两个宏配置是 由用户去决定的,为了避免这些TA owner 方便自己害了他人考虑,我们在可以做出如下限制。

  • 在 bl32 里面 load ta的时候做判断
  • 在 lib目录下,load ta的时候做判断
  • 在user_ta_header.c 做判断

其中:
第一个方式需要不断编译bl32 太麻烦费时费力,还会被人说成bug

第二个方式可以不用修改bl32 就可以直接完成,仅仅需要更新lib, 接着重编ta

第三个方式很简单但是容易被用户发现,自己又修改回来

于是第二个实现如下:

 1 static TEE_Result init_instance(void)
 2 {
 3         EMSG("-->TA HEAP Size: 0x%x, TA Stack Size: 0x%x", ta_heap_size, ta_head.stack_size);
 4         if (ta_heap_size >= 4*1024*1024 || ta_head.stack_size > 2*1024*1024) {
 5                 EMSG("[ATOS]: TA stack or heap size is too big! can not load it ");
 6                 return TEE_ERROR_OUT_OF_MEMORY;
 7         }
 8 
 9         trace_set_level(tahead_get_trace_level());
10         __utee_gprof_init();
11         malloc_add_pool(ta_heap, ta_heap_size);
12         _TEE_MathAPI_Init();
13         return TA_CreateEntryPoint();
14 }

成功截停:

 

标签:load,TA,加载,TEE,heap,ta,size
From: https://www.cnblogs.com/coversky/p/18191568

相关文章

  • [转]查杀linux隐藏挖矿病毒rcu_tasked
    记录一次项目中挖矿病毒的经历这是黑客使用的批量蔓延病毒的工具,通过如下脚本[[email protected]]#cat/home/pischi/.bash_historycd/root/nvidia-smi;ls-a;cd.cfg;ls-a;wc-lip./key20-fippass22"nproc;nvidia-smi;rm-rf.cfg;mkdir.cfg;cd.cfg;wget193.42......
  • 用pyinstaller打包,生成单个的exe程序,找不到资源文件怎么办?
    被这个问题生生搅了两个月。 那还是在3月底的时候,我们这个程序啊,并不是BS架构的。写好之后,肯定不能把一堆py源码发给客户嘛,要使用pyinstaller打包的,做成一个exe的可执行程序。pyinstaller怎么使用我就不教了,这个不是今天想说的重点,而且网上的教程还是很全面的。 我想说的是......
  • CompletableFuture allOf 和 anyOf
    CompletableFuture<String>future1=CompletableFuture.supplyAsync(()->{List<String>objects=newArrayList<>();Strings=objects.get(0);return"成功";}).exceptionally(ex->{//这样的话future2就可以正常执行......
  • Rancher Desktop Install
    参考:https://www.cnblogs.com/shanyou/p/15759035.htmlofficialwebsite:https://docs.rancherdesktop.io/getting-started/installation/1、prepareWSL我本机安装过DockerDesktop所以wsl已经安装好了,否则需要安装。执行wsl-l-v查看版本。安装Wingethttps://github.com/m......
  • m5stack
    m5stackcardcomputer+m5stackc3首先,感谢得捷社区,本次参与奖我选取的是m5stackcardcomputer+m5stackc3,m5stack被乐鑫已经收购了,他们的产品我觉得精致小巧,正好m5stackcardcomputer他拥有usb有线连接和蓝牙连接的键盘功能,对于开发板的一些输入指令什么可以就使用这个来进行,十分......
  • R:microtable包alpha多样性计算及箱线图绘图
    rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\microtable")#设置工作目录library(microeco)library(magrittr)feature_table<-read.table('feature_table_g.txt',header=TRUE,row.names=1,sep="\t")#特征表......
  • 未能从程序集“Microsoft.Build.Tasks.vCurrent.dll”加载任务工厂“CodeTaskFactory
     遇到如下错误:未能从程序集“Microsoft.Build.Tasks.vCurrent.dll”加载任务工厂“CodeTaskFactory”。Couldnotloadfileorassembly'file:///G:\VS2022\IDE\MSBuild\Current\Bin\amd64\Microsoft.Build.Tasks.vCurrent.dll'oroneofitsdependencies.系统找不到指定......
  • C#异步Task
    目录C#异步Task概述异步是什么?为什么需要异步?基本语法1.Task创建执行2.Task异步方法3.取消异步执行CancellationTokenSource4.Task并行数量控制LimitedConcurrencyLevelTaskScheduler常见的应用场景总结引用C#异步Task概述异步是什么?为什么需要异步?使用多线程的目的其实即......
  • git 查看当前代码是在哪个 tag 上
    在Git中,查看当前代码所在的tag可以使用以下命令:###查看当前提交所对应的所有tag如果你想查看当前HEAD或者某个特定的commit对应的所有tag,可以使用下面的命令:gittag--containsHEAD这个命令会列出包含当前HEAD的所有tag。如果你想查看某个特定commit的......
  • easyUI datagrid 数据不显示,tablebody 高度为0 的问题
    如下图,接口请求回来数据,表头也显示出来了。打开元素,可以看到table的bbody里面是有数据的,数据也渲染到了页面表格中,但是table的height为0。 排查以下问题:检查数据源格式是否正确,如是JSON数组还是符合easyui要求的对象。确保在datagrid初始化后正确触发数据加载......