文档章节

gcc设置段基址

i
 i不歪
发布于 2016/04/06 09:56
字数 287
阅读 27
收藏 0
点赞 1
评论 0

gcc设置段基址

@(编译相关)[gcc设置段基址]


[TOC]


设置代码段基址

向gcc/g++中传入这个命令行选项:-Wl,-Ttext-segment=<地址>,-Wl表示这个命令行选项是传给链接器(即,ld)的。

命令行选项说明

查找ld的命令行选项手册(https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html#SEC3)可找到下面的说明:

-Tbss org
-Tdata org
-Ttext org
Use org as the starting address for--respectively--the bss, data, or the text segment of the output file. org must be a single hexadecimal integer; for compatibility with other linkers, you may omit the leading `0x' usually associated with hexadecimal values.

上面英文的意思是:使用org作为输出文件的bss,data或text段的起始地址。org必须是一个十六进制整数;为了与其他链接器兼容,不要在十六进制数的前面添加'0x'。

起始地址可以理解为基址

我没有找到"-Ttext-segment"这个命令行选项,我认为"-Ttext-segment"与"-Ttext"表示同一个意思。

例子

使用下面的命令,gcc编译出来的ELF文件的text段基址为0x60000000:

gcc -Wl,-Ttext-segment=0x60000000 ...

© 著作权归作者所有

共有 人打赏支持
i
粉丝 5
博文 55
码字总数 51263
作品 0
西城
GDT,LDT,GDTR,LDTR 详解,包你理解透彻

一、引入 保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 段描述符寄存器: 存储段描述符 选择器:存储段描述符的索引 段寄存器 PS:原先实模式下的各个段寄存器作为保...

simpower ⋅ 05/30 ⋅ 0

编译可在Android上运行的qemu user mode

前言 本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码。 下文中的”NDK”若无特殊说明均指”Android NDK”。 下文中”$NDK”表示的是NDK的根目录。 ...

阿里聚安全 ⋅ 2016/07/20 ⋅ 1

80X86汇编寄存器汇总

开始逆向方面的学习了,汇编寄存器是第一关,在此作为备忘录。 数据寄存器: AX:累加器 BX:基址寄存器 CX:计数寄存器 DX:数据寄存器 段寄存器: CS:代码段段寄存器 DS:数据段段寄存器 SS:堆栈...

长平狐 ⋅ 2012/08/13 ⋅ 0

OS 学习笔记导航

环境搭建 000 实验环境搭建 保护模式 001 保护模式 002 段寄存器 003 段选择子与段描述符结构 004 段描述符属性分析 005 特权级 006 数据段权限检查 007 代码段权限检查与 jmp 008 跨段提权与...

q1007729991 ⋅ 2016/09/14 ⋅ 0

mini2440 链接脚本

在 mini2440 使用sdram 中和之前一样简单的使用 -T0x30000000 控制链接生成的ELF文件中 .text 段加载位置。在稍复杂的项目中常会涉及哪个对象文件中的哪个section是否出现在最终文件中,如果...

lanser ⋅ 2014/01/10 ⋅ 0

CVE-2018-8897 调试分析

原文地址:https://mozhe.cn/news/detail/285 漏洞说明 系统内核通过Mov到SS(stack segment)或Pop到SS指令进行堆栈切换操作后处理异常情况时发现了一个缺陷.在堆栈切换操作期间,处理器没有传...

乖巧小墨宝 ⋅ 05/22 ⋅ 0

XV6 - bootsect.S

#include "asm.h" #include "memlayout.h" #include "mmu.h" .code16 .globl start start: cli # 关中断, 防止干扰开启A20, 和保证设置GDT的完整性 # 初始化寄存器 xorw %ax,%ax # 将ax清零,......

Pagination ⋅ 2014/06/12 ⋅ 0

GDT、GDTR、LDT、LDTR的学习

在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。 为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型: 在Real Mode下,我们对一个内存地址的...

apheal ⋅ 03/14 ⋅ 0

操作系统----->>>>>关于段页式内存管理的总结

内存管理的技术主要有: 固定分区内存管理、可变分区内存管理、简单页内存管理、虚拟内存页式管理、简单段内存管理、虚拟段内存管理 这6中技术。其实还有一种是结合了段和页式内存管理的方案...

LinuxCPlusPlus ⋅ 2016/01/26 ⋅ 0

通通透透讲溢出攻击

中国E安网络联盟 Ahriman 发布 缓冲区溢出技术基础 为了提高大家的技术水平,为了更了解我们讨论的这种技术,为了把这个论坛建成一个更更好的论坛,下面我为大家推出一系列完整的有关溢出,溢...

zt371 ⋅ 2009/05/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

IDEA PermGen space内存溢出

解决方案: File -> Settings -> Build, Execution, Deployment / Build Tools / Maven / Runner下,找到VM Options选项,默认是空的,改为如下内容(或更大值)...

快乐的小火柴 ⋅ 9分钟前 ⋅ 0

前端常见跨域解决方案

什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交2.) 资源嵌入: <link>、<script>、<im...

临江仙卜算子 ⋅ 10分钟前 ⋅ 0

系统管理命令service

service命令用来控制系统服务的实用工具,例如启动、停止、重启和关闭系统服务,以及当前状态。当然也可以直接操作,例如/etc/init.d/mysqld restart等。 语法 service (选项)(参数) 选项...

Jpchina ⋅ 15分钟前 ⋅ 0

MySQL 联合索引的命中规则

为什么要用联合索引? 对于查询语句“SELECT T.* FROM T WHERE T.c1=1 AND T.c3=2”涉及到两列,这个时候我们一般采用一个联合索引(c1, c3);而不用两个单列索引,这是因为一条查询语句往往应...

hensemlee ⋅ 23分钟前 ⋅ 0

Spring 自动组件扫描

通常情况下都是在XML配置文件中手动声明Bean和组件的。不过Spring也可以自动扫描组件实例化Bean,这样就可以避免在XML文件中繁琐的Bean声明。 手动声明Bean: 这里不再啰嗦,就是简单地在XML...

霍淇滨 ⋅ 27分钟前 ⋅ 0

MapReduce简单需求分析-共同好友及查找互粉的情况

MapReduce的设计,最重要的是要找准key,然后制定一系列的数据处理流程。MapReduce的Map中,会把key相同的分配到同一个reduce中,对于key的选择,可以找到某个相同的因素。以下面的几个例子说...

Jason_typ ⋅ 29分钟前 ⋅ 0

springboot多数据源自动切换

SpringBoot多数据源切换,先上配置文件: 1.pom: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20......

JackyRiver ⋅ 31分钟前 ⋅ 0

Boost库编译应用

版本:Boost 1.66.0 Windows库编译 官网指南:直接执行bootstrap.bat处理文件即可,可以我却遇到一堆的问题。 环境:Windows 10 + Visual Studio 2017 Boost编译出来库命名 boost库生成文件命...

水海云 ⋅ 36分钟前 ⋅ 0

解决Eclipse发布到Tomcat丢失依赖jar包的问题

如果jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。 可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build ...

ArlenXu ⋅ 36分钟前 ⋅ 0

iview tree组件层级过多时可左右滚动

使用vue+iview的tree组件,iview官网iview的tree树形控件 问题描述:tree层级过多时左右不可滚动 问题解决:修改overflow属性值 .el-tree-node>.el-tree-node_children { overflow: vi...

YXMBetter ⋅ 38分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部