首页 > 编程语言 >0183-x64 平台独立程序

0183-x64 平台独立程序

时间:2024-07-15 09:22:25浏览次数:19  
标签:target 0183 mos x64 64 toml 独立程序 rust

环境

  • Time 2022-11-13
  • WSL-Ubuntu 22.04
  • QEMU 6.2.0
  • Rust 1.67.0-nightly

前言

说明

参考:https://os.phil-opp.com/minimal-rust-kernel

目标

编译个 x64 平台的独立可执行程序。

切换到 nightly 版本

项目目录下新建 rust-toolchain 文件,文件内容为:nightly。

main.rs

#![no_std]
#![no_main]

#[no_mangle]
pub extern "C" fn _start() -> ! {
    loop {}
}

#[panic_handler]
fn panic(_info: &core::panic::PanicInfo) -> ! {
    loop {}
}

Cargo.toml

[package]
edition = "2021"
name = "mos"
version = "0.1.0"

[dependencies]

mos.json

编译的目标文件,定义了平台等一些信息,放到项目根目录下。

{
    "llvm-target": "x86_64-unknown-none",
    "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128",
    "arch": "x86_64",
    "target-endian": "little",
    "target-pointer-width": "64",
    "target-c-int-width": "32",
    "os": "none",
    "executables": true,
    "linker-flavor": "ld.lld",
    "linker": "rust-lld",
    "panic-strategy": "abort",
    "disable-redzone": true,
    "features": "-mmx,-sse,+soft-float"
}

config.toml

[unstable]
build-std-features = ["compiler-builtins-mem"]
build-std = ["core", "compiler_builtins"]

[build]
target = "mos.json"

文件目录结构

├── Cargo.lock
├── Cargo.toml
├── gdb.sh
├── mos.json
├── qemu.sh
├── rust-toolchain
├── src
│   └── main.rs
└── .cargo
    └── config.toml

总结

使用 Rust 编写了一个在 x64 平台上的独立可执行程序。

附录

标签:target,0183,mos,x64,64,toml,独立程序,rust
From: https://www.cnblogs.com/jiangbo4444/p/18302429

相关文章

  • Burp Suite Professional 2024.6 for Windows x64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.6forWindowsx64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-win/,查看最新版。原创作品,转载请保留出处。BurpSuiteProfessionalTheworld’s#1webpenetrationte......
  • Burp Suite Professional 2024.6 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.6formacOSx64&ARM64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/,查看最新版。原创作品,转载请保留出处。BurpSuiteProfessionalTheworld’s#1webpenetrat......
  • Arturia - FX Collection 5 v5.0.0 VST, VST3, AAX x64 {R2R} [13.06.2024]
    Arturia-FXCollection5v5.0.0forWindowsmac【【新品发布+小广告】ArturiaFXCollection5超强音乐制作插件套装34款产品逐一点评】https://www.bilibili.com/video/B...4d4e7f5c56f93e901cd    包括BusEXCITER-104BusFORCEBusPEAKChorusDIMENSION-DCh......
  • PixPlant.5.0.42_x64破解汉化版,创建平铺 3D 材质的更好方法
    PixPlant5是一款功能强大的贴图生成器,可用于快速生成高质量的纹理贴图,下面分享PixPlant5贴图生成器的使用方法。1、在网上找到需要的贴图类型,如丝绸,木板,砖块,纺织物等任意需要的贴图。2、找到贴图后打开PS,将贴图设置为长宽相同尺寸的图片,如以下设置为500×500像素,如贴图使......
  • Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Jun 2024)
    Windows11version23H2中文版、英文版(x64、ARM64)下载(updatedJun2024)Windows11,version23H2,企业版arm64x64请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindows11直接上链接,详细说明请访问原......
  • 好消息,飞桨统一底层Paddle.Runtime.win_x64包发布
         好消息,飞桨统一底层Paddle.Runtime.win_x64包发布,该包包括提速15%以及内存泄漏问题的优化。本包为飞桨框架CPU版通用运行时包,仅适用于windows平台。当前发布版本为2.6.1,为百度飞桨Paddle库的C++版本的优化版。自带C++运行时,win10,win11,以及winserver2014以上均​绿色......
  • HbuilderX,找不到rollup/rollup-win32-x64-msvc
    在使用HbuilderX,使用vue3开发uniapp时,我运行app,报错,rollup组件找不到了。这个rollup是一个编译js的工具,win32-x64的意思是采用windows版本64位的运行版本,msvc是说,需要windows平台下的msvc,它是一种c++编译器的类型,比如QT,就有使用另一种MinGW编译器。总的来说,rollup这个组件,是在64......
  • 在Windows上安装mysql-8.0.28-winx64.zip
    1.解压2.配置文件点击查看代码MicrosoftWindows[版本10.0.17763.316](c)2018MicrosoftCorporation。保留所有权利。D:\mysql\bin>mysqldinstallmysql8Servicesuccessfullyinstalled.D:\mysql\bin>mysqld--initialize-insecureD:\mysql\bin>mysql-uroot......
  • 借助x64dbg及Scylla的UPX手工脱壳
    参考文章:https://bbs.kanxue.com/thread-268159.htm很多地方都是复制粘贴的,学习学习大佬的文章。寻找入口点1、加载程序F9运行,会发现停在push处,push操作将所有寄存器的值压栈,这一步之后会加载UPX的解压代码用于将原始程序解压。2、upx工作原理首先将程序压缩。所谓的压缩......
  • 逆向 | Win7扫雷x64版本内存雷区读取
    逆向|Win7扫雷x64版本内存雷区读取继续写书,这是我为书中实验编写的测试代码。#include<windows.h>#include<stdio.h>#include<tlhelp32.h>#include<string.h>intmain(){ //获取pid HWNDhWnd=FindWindow(NULL,L"扫雷"); DWORDpid=NULL; GetWindowThr......