机器码修改大师下载不了,修改机器码大师

 2023-08-22  阅读 402  评论 0

摘要:今天由小编为大家整理发布,本网站分享生活常识、旅游攻略、教育教学、房产楼市等综合信息,希望大家能够喜欢。以下就是我们要分享的内容:机器码修改大师破解补丁,机器码修改大师这个很多人还不知道,现在让我们一起来看看吧!1、其实什么不能调用库,不依

今天由小编为大家整理发布,本网站分享生活常识、旅游攻略、教育教学、房产楼市等综合信息,希望大家能够喜欢。

以下就是我们要分享的内容:

机器码修改大师破解补丁,机器码修改大师这个很多人还不知道,现在让我们一起来看看吧!

1、其实什么不能调用库,不依赖系统调用,都不是题主关注,题主关注的是二进制格式。

2、题主其实是知道:C代码经过编译和链接两个阶段,就会生成可执行文件,Linux平台是ELF格式可执行文件,而Window下是PE格式。

3、这两种格式有一个特点是有个文件头,需要OS在加载可执行文件时做解析工作,根据格式要求一步步找到代码段,并copy到相应的虚拟地址空间上,再跳到_start地址上执行,最后运行到main函数,才算是真正运行到开发人员编写的代码。

4、如果没有OS支持,ELF/PE格式的二进制文件肯定是无法运行的。

5、而专门在裸机上运行的格式是binary格式(可能这个称呼不标准,欢迎大家指正)。

6、这种格式特点是没有额外的代码杂音,即你写什么样的代码,就生成对应的汇编指令,不增一分也不减一分,没有任何文件头描述,第0节字开始就是指令。

7、下面我们来实验一下裸机运行程序的编译、链接和运行过程。

8、在网上找了个boot例子, 并将它修改成gcc汇编器认识的语法格式。

9、我们这里使用汇编来做例子,为什么使用汇编而不用C,后面有解释链接成binary二进制格式boot.binld -m elf_i386 --oformat binary -N -e _start -Ttext 0x7c00 -o boot.bin boot.o请注意,这里关键一步是ld生成了binary格式(--oformat binary选项指定生成binary格式,当然前面有答主也提到这关键一步,但没有重点强调,我想这是题主最为关心的问题)。

10、值得注意的是,程序的起始地址为0x7C00,是因为X86机器对boot程序的约定,BIOS会将它搬移到0x7C00这个址址并执行,所以要将_start地址设置为0x7C00才能运行。

11、这里生成的boot.bin就是一个标准的引导扇区,可以将它写到floppy的第0号扇区,即可运行。

12、为了方例演示,这里使用 qemu+kvm来展示它的运行过程。

13、执行以下命令:qemu-system-i386 -enable-kvm -fda boot.bin即可看到系统从floppy引导,并将boot.s程序运行成功:在对话窗左上角黑底红字的“hello, OS world!”就是boot.s程序的输出。

14、为什么是汇编,而不是C代码回过头再看这个问题,其实写C代码,也是可以先编译,再链接成binary二进制的。

15、但问题是:C语言编写的代码是以函数为最小单位,每个函数生成的指令都有一个prologue指令给函数建立栈帧。

16、但在裸机环境下,栈空间都还没有开辟,所以无法运行成功。

17、同时,作为整个系统上的第一个软件(主机上的BIOS不算),必须遵守一系列的硬件约定,比如上面的boot.s代码必须搬到0x7C00地址运行,满足这样约定下C语言是很难实现的。

18、所以现代OS的boot和loader都是先运行汇编代码,建立好相应的运行环境之后,才调用C语言编写的代码。

Www.517338.coM麻布岗信息网综合在线信息,汇聚城市生活,美食,购物,旅游,房产,交通,家居,财经,教育,健康,娱乐,历史,汽车,生活消费门户网站

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

原文链接:http://www.517338.com/a/baike/106071.html

发表评论:

管理员

  • 内容332661
  • 积分0
  • 金币0
关于我们
麻布岗信息网(www.517338.com)综合在线信息,汇聚城市生活,美食,购物,旅游,房产,交通,家居,财经,教育,健康,娱乐,历史,汽车,生活消费门户网站
联系方式
电话:13524672021
地址:
Email:773537036@qq.com
注册登录
注册帐号
登录帐号

Copyright © 2022 麻布岗信息网 Inc. 【测试站】 保留所有权利。 Powered by www.517338.com

陕ICP备2022013085号

  • 我要关灯
    我要开灯
  • 客户电话
    773537036

    工作时间:8:00-18:00

    客服电话

    13524672021

    电子邮件

    773537036@qq.com

  • 官方微信

    扫码二维码

    获取最新动态

  • 返回顶部