{"id":13642067,"url":"https://github.com/jovanbulck/sgx-step","last_synced_at":"2026-01-14T17:52:04.549Z","repository":{"id":38327634,"uuid":"107246929","full_name":"jovanbulck/sgx-step","owner":"jovanbulck","description":"A practical attack framework for precise enclave execution control","archived":false,"fork":false,"pushed_at":"2025-11-10T14:19:24.000Z","size":12115,"stargazers_count":464,"open_issues_count":21,"forks_count":87,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-11-10T16:17:59.536Z","etag":null,"topics":["enclave","sgx","side-channel"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jovanbulck.png","metadata":{"files":{"readme":"README-m32.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-17T09:29:27.000Z","updated_at":"2025-11-10T14:19:30.000Z","dependencies_parsed_at":"2024-06-19T03:02:42.395Z","dependency_job_id":"bf0093b4-563b-4e89-8355-4b3ba60d8236","html_url":"https://github.com/jovanbulck/sgx-step","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jovanbulck/sgx-step","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jovanbulck%2Fsgx-step","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jovanbulck%2Fsgx-step/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jovanbulck%2Fsgx-step/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jovanbulck%2Fsgx-step/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jovanbulck","download_url":"https://codeload.github.com/jovanbulck/sgx-step/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jovanbulck%2Fsgx-step/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28428963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["enclave","sgx","side-channel"],"created_at":"2024-08-02T01:01:27.054Z","updated_at":"2026-01-14T17:52:04.533Z","avatar_url":"https://github.com/jovanbulck.png","language":"C","funding_links":[],"categories":["Attacks","Tool\u0026\u0026DEBUG","Side-channel Tools"],"sub_categories":["Memory Protection","Reverse Engineering Tools"],"readme":"### 0. Setup\n\nTo configure the build processes for 32-bit, export the `M32` variable\nas follows. Note that this variable should also be set in order to build\n32-bit versions of the applications in `app/`.\n\n```bash\nexport M32=1\n``` \n\n### 1. Apply the patches to the SGX-SDK:\n\n```bash\n./patch_sdk.sh\n```\n\nWhile the Linux SGX-SDK is equipped to produce a 32-bit SDK installation\npackage, there are some small errors and warnings that need to be suppressed\nfor it to build. An extra SDK patch fixes these.\n\n### 2. Build the SGX-SDK installation package\n\n32-bit enclaves require a 32-bit SDK to function. The requirements to build \nare the same as described in the [linux-sgx](https://github.com/01org/linux-sgx) \nrepository, but should be adapted to 32-bit:\n\nUnless already installed, you will need to install gcc-multilib as well\nas g++-multilib:\n```bash\nsudo apt install gcc-multilib g++-multilib\n```\nYou will also need 32-bit versions of the required libraries\nmentioned in the linux-sgx repo:\n```bash\nsudo apt install libssl-dev:i386 libcurl4-openssl-dev:i386 protobuf-compiler:i386 libprotobuf-dev:i386\n```\nYou can then build the SGX-SDK install package with:\n```bash\ncd linux-sgx\nmake sdk_install_pkg ARCH=x86\n```\n\n### 3. Install the SGX-SDK installation package\n\nThe location of the installer will be shown at the end of the\ncompilation in the previous step.\n\nInstall the SDK to some location that is preferably **not** /opt/intel\n\n### 4. Install the PSW package\n\nDownload and install the **unmodified** 64-bit PSW installation package.\nIf you have the newest PSW installed already, there is no need\nto modify your installation. \n\n### 5. Build `libsgx_urts.so` and `libsgx_uae_service.so`\n\nThe build requirements are the same as for the 32-bit SDK. We will\nnot be building a full psw install package, we just need the \ntwo mentioned libraries.\n\n```bash\ncd psw/urts/linux\nmake all ARCH=x86\n```\n\nWhen the build finishes, the required libraries are in the following directories:\n```bash\npsw/urts/linux/libsgx_urts.so\npsw/uae_service/linux/libsgx_uae_service.so\n```\n\nTo make sure the linker finds the libraries when compiling the applications in\napp/, move the uae_service library to the urts library location:\n```bash\ncd ../../../ \nmv psw/uae_service/linux/libsgx_uae_service.so psw/urts/linux\n```\n\nIf your SDK installation path was *not* /opt/intel, then the makefiles for the sgx-step apps will find the libraries automatically. Otherwise, you can either move the libraries to /usr/lib, or set up your environment variables to point to a directory containing the libraries.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjovanbulck%2Fsgx-step","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjovanbulck%2Fsgx-step","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjovanbulck%2Fsgx-step/lists"}