windows下使用SGX

article/2025/9/21 20:45:49

前言:

这个是简单对于毫无经验的人的入门博客,杠精勿扰,大神离开。

我觉得每当下载一个新的工具的时候要先看一看他自己带的文档。

 

何谓SGX?不解释,您可以去看其介绍,百度搜搜即可。

win10如何下载SGX?

确保你有Visual Studio 2015 或其以上。

1.搜索SGX SDK,进入,其中的账号注册等等智障操作不谈,直接下载。(下载这一个即可)

2.下载出来解压,出现安装exe和开发文档,点击exe。

3.装在C盘就好,一路点击就行。

4.再次打开Visual Studio,新建项目的时候你发现有了enclave项目。

 

以上就使得你能用SGX了。

那么怎么用SGX呢?

 

我参考了这篇文章:https://blog.csdn.net/weixin_43965454/article/details/96099976

1.建立两个工程,一个是enclave工程,一个平常console工程。console工程就是为了调用enclave。

2.然后从console工程里面导入enclave工程。怎么导入?上方菜单  “文件” -> “添加” -> “已有项目” 找你的enclave工程,加入即可。

搞完你的项目应该这个样子。(我的console名字叫ToCall,enclave叫Enclave_play)

3.修改console工程的SGX属性,在SGX configuration里面导入enclave工程的edl文件。

4.下面就编写你console中的代码和enclave中的代码。

我用的是这些,你可以复制粘贴,记得改改这些代码里面的工程名字!!!

我很简单写了一个a+b函数。

具体的edl声明,怎么outcall之类的,可以看edl_teaching.pdf文件,里面详细介绍。

console.cpp:(也就是你非enclave工程的编写代码的文件)

// ToCall.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include "pch.h"
#include <iostream>
#include <tchar.h>
#include <stdio.h>
#include "sgx_urts.h"
#include "Enclave_play_u.h"#define ENCLAVE_FILE _T("Enclave_play.signed.dll")int main(){sgx_enclave_id_t eid;sgx_status_t ret = SGX_SUCCESS;sgx_launch_token_t token = { 0 };int updated = 0;//create an enclave with above launch tokenret = sgx_create_enclave(ENCLAVE_FILE, SGX_DEBUG_FLAG, &token, &updated, &eid, NULL);if (ret != SGX_SUCCESS) {printf("failed to create an enclave.\n");return -1;}//call enclave function.int temp,*res=&temp;int a = 2, b = 5;Add(eid, res,a, b);printf("congratulations, you've succeeded call the enclave.");//destroy enclaveif (SGX_SUCCESS != sgx_destroy_enclave(eid))return -1;return 0;}

enclave.cpp:

#include "Enclave_play_t.h"
#include <stdio.h>#include "sgx_trts.h"void Add(int *res, int a, int b) {*res = (a + b);
}int main() {}

enclave的edl文件:

这个edl文件相当于两个工程的桥梁,定义各种接口。

enclave {from "sgx_tstdc.edl" import *;trusted {/* define ECALLs here. */public void Add([user_check]int *res,int a,int b);};untrusted {/* define OCALLs here. */};
};

 

5.虽然打完代码了,但是要运行接下来修改的很多。

Intel SGX不支持32位的操作系统,所以运行的时候记得把模式改成x64

①把两个工程的“属性”中的“调试”中的工作目录改为$(OutDir)。我说的是两个工程的,两个。

②把调试方式改为“模拟(simulation)”。在哪里改?找找上方运行箭头左边是啥?就是它,改成simulation。

③先右键点击enclave工程,先生成它,看看有错没。没错就能生成签名,就可以整体运行了。

如果不可以,会出现这个:

那么你就按照它提示的做就行。重定解决方案目标。

重定之后它的工作路径如果又变成ProjectDir了,你就再把它改回来。

一些其他错误供参考:https://stackoverflow.com/questions/41944179/error-loading-enclave-couldnt-open-file-with-createfile

如果你出现“could not open file  xxx, createFile()xxx”什么的,那是你的那个#define文件写错了,你看看有没有打错字母,或者看看OutDir有没有设置。

 

6.运行成功有如下画面。


http://chatgpt.dhexx.cn/article/D1udweYN.shtml

相关文章

Intel SGX学习笔记(1):虚拟机Ubuntu20.04配置Intel SGX环境

写在前面 本教程仅仅适用虚拟机下的Ubuntu20.04配置Intel SGX环境&#xff0c;若是双系统下的Ubuntu系统&#xff0c;请看最后的参考连接。若是window10自带的ubuntu&#xff0c;也就是从微软商店下载的ubuntu系统&#xff0c;这个我到make preparation指令就开始疯狂报错&…

Windows10下使用Intel SGX功能(四):SGX技术分析

参考文献 Overview of Intel SGX - Part 1, SGX InternalsDeveloper Guide: Intel Software Guard Extensions (Intel SGX)&#xff08;最新版&#xff09;Overview of Intel SGX - Part 2, SGX Externals SGX 介绍 SGX 发展情况 SGX技术目前已经发展到SGX2。比如安全证明功…

可信启动、安全启动:SGX、TrustZone、SecureEnclave

最近在公众号上看到了一篇文章&#xff0c;算是又丰富了自己的安全方面的眼界。 最近看公众号取代了小视频、知乎这些东西。以前是真的不喜欢碎片化的东西&#xff0c;看什么学什么总是要找到书籍。但是这样的做法太过的极端&#xff0c;因为有时候有些事是两面性的。比如像安全…

Intel SGX 技术初探

最近公司需要开发一款使用intel 的移动终端&#xff0c;需要用到SGX技术&#xff0c;特此将调研和整理的相关资料放置于下&#xff0c;欢迎交流。 一、SGX技术背景 1.1 SGX技术定义 SGX全称Intel Software Guard Extensions&#xff0c;顾名思义&#xff0c;其是对因特尔体系…

Intel SGX入门(二)——SGX应用篇

大概了解SGX以后&#xff0c;SGX应用有哪些&#xff1f; 第一种&#xff0c;SGX应用于服务器端&#xff0c;云端 这一类个人觉得很需要结合代码、它们所描述的行业需求和以前的行业产品去考虑问题&#xff0c;毕竟是应用&#xff0c;不然可能体会不到精髓。 我对SGX应用的理解…

Intel SGX Explained

文章目录 SGX新增Abstract第一章 概括1.1 SGX简介1.2 大纲和问题发现 第二章 Intel体系架构背景知识2.1 Overview2.2 计算模型2.3 软件权限级别2.4 地址空间2.5 地址转换2.5.1 地址转换概念2.5.2 地址转换和虚拟化2.5.3 页表属性 2.6 执行上下文2.7 段寄存器2.8 特权级别转换2.…

sgx使用记录(Windows开发环境搭建以及sgx的简单介绍)1

sgx使用记录 相关代码仓库 ##sgx-sdk https://github.com/apache/incubator-teaclave-sgx-sdk.git##Teaclave&#xff1a;通用安全计算平台 https://github.com/apache/incubator-teaclave检测sgx运行环境是否支持 ##或使用cpuid命令 cpuid |grep -i sgx##或使用脚本测试 下…

Windows10下使用Intel SGX功能(一):环境搭建

文章目录 参考文献系统要求一、安装Open Enclave SDK 环境&#xff08;一&#xff09;什么是Open Enclave SDK&#xff08;二&#xff09;启动SGX功能方法一&#xff1a; BIOS启动方法二&#xff1a;软件方式启动 &#xff08;三&#xff09;安装必要环境&#xff08;1&#xf…

Intel SGX 功能如何开启

Intel SGX 功能如何开启 我本身是 Windows10 系统&#xff0c; BIOS 是 ASUS 的&#xff0c;在想装 Ubuntu 双系统的时候&#xff0c;在启动 Ubuntu 安装 ISO 的时候提示说电脑的 SGX 没有开启&#xff0c;安装失败&#xff0c;安装界面都没有进去。 之后搜了下如何开启 SGX&a…

SGX的内部组件概述

导语&#xff1a;SGX是Intel开发的新的处理器技术&#xff0c;可以在计算平台上提供一个可信的空间&#xff0c;保障用户关键代码和数据的机密性和完整性。SGX全称Intel Software Guard Extensions&#xff0c;顾名思义&#xff0c;其是对因特尔体系&#xff08;IA&#xff09;…

SGX入门

如何设计SGX程序&#xff1a; SGX分为可信部分和不可信部分&#xff0c;可信部分由enclave组成&#xff08;一个应用程序可以拥有一个或多个enclave)&#xff0c;enclave存储在加密的内存中&#xff0c;受SGX保护&#xff0c;enclave一旦被建立就不能更改&#xff0c;所以通常…

SGX Enable

根据INTEl的官方建议&#xff0c; 目前的电脑主板在BIOS设置上只保留了Disabled和Software Controlled来开启和关闭SGX扩展 使用Software Controlled开关的原因官方文档有阐述&#xff0c;如下&#xff1a; 开启SGX扩展&#xff0c;首先需要满足以下要求&#xff1a; CPU具有…

Intel SGX技术详细解释(非常棒)

http://www.jos.org.cn/html/2018/9/5594.htm#b18 随着信息技术的迅速发展与广泛应用, 人类社会已经进入了一个崭新的互联网时代.一方面, 人们享受着互联网科技带来的便利; 另一方面, 由网络和信息系统构成的网络空间也面临着日益严峻的安全问题.信任是网络空间中安全交互的基…

SGX问答

0 前言 有些问题比较常见&#xff0c;在这里直接将问答内容贴出来&#xff0c;方便大家搜索。有空再重新组织文字。 &#xff08;我会避免泄露私人信息&#xff09; 1 内存地址翻译全部交给os&#xff0c;那中间经过cache也是全部交给os是嘛&#xff1f;这个cache这部分&…

小谈Intel SGX

目录 Intel SGX简介 背景 为什么要Intel SGX&#xff1f; Intel SGX尚处于学术讨论 Intel SGX和可信启动什么关系&#xff1f; 开发者眼中SGX长什么样子&#xff1f; SGX访问控制是什么&#xff1f; MEE与SGX EPC内存加密 CPU里面SGX长什么样子&#xff1f; 有Enclav…

SGX技术与SGX攻击

2013年, Intel推出SGX(software guard extensions)指令集扩展, 旨在以硬件安全为强制性保障, 不依赖于固件和软件的安全状态, 提供用户空间的可信执行环境, 通过一组新的指令集扩展与访问控制机制, 实现不同程序间的隔离运行, 保障用户关键代码和数据的机密性与完整性不受恶意软…

Intel SGX初步学习理解笔记(持续更新)

一些概念 SGX&#xff08;Software Guard eXtensions&#xff09;软件保护扩展&#xff1a;是一组CPU指令扩展&#xff0c;能够创造出一个可信执行环境来保护代码和数据&#xff0c;即使使用root 权限也无法访问。通过这个硬件设施&#xff0c;应用程序可以隔离代码和数据来达…

Intel 的 SGX 技术小知识

1.SGX 概述 Intel SGX (Software Guard Extensions) 是一种针对特定应用程序的安全增强技术。它允许应用程序在处理机上创建受保护的执行环境&#xff0c;这个执行环境被称为“enclave”。这个 enclave 是一个被硬件隔离的内存区域&#xff0c;只有在安全条件下才可以访问。这…

新手学编程必会的100个代码

前言 我记得刚开始接触编程的时候&#xff0c;觉得太难了。 也很好奇&#xff0c;写代码的那些人也太厉害了吧&#xff1f;全是英文的&#xff0c;他们的英文水平一定很好吧&#xff1f; 他们是怎么记住这么多代码格式的&#xff1f;而且错了一个标点符号&#xff0c;整个程…

适用于编程开发自学的学习网站

今天为大家分享几个编程开发自学的学习网站 1.C语言网 该网站有很多C语言相关的教程、资源、博客和练手习题&#xff0c;同时也有很多题库和比赛&#xff0c;比较实用。 网址&#xff1a;https://www.dotcpp.com/ 2.cppreference cppreference是一个免费网站&#xff0c;上面…