当前位置: 首页 > news >正文

山寨windows

我的目标是能够运行windows 下的大部分PE格式的程序,这一点通过实验已经证明完全是可行的。

PE格式主要有exe dll sys等文件,这三个文件可以用相同的函数解析,

主要有以下段组成,

 1、文件头,包含DOS文件头、PE文件头、段信息等

2、.text区段:包含可执行代码,也称为代码区段。

3、.data区段:包含已初始化的全局和静态变量。

4、.rdata区段:包含只读数据,如常量、字符串等。

5、.bss区段:包含未初始化的全局和静态变量,该区段在文件中不占用空间,只在内存中分配。

6、.idata区段:包含导入表,用于存储程序运行时需要动态链接的外部函数和库的信息。

7、.rsrc区段:包含资源数据,如图标、位图、字符串等。

exe、dll、sys区别主要是入口函数不用,其他基本一样。

因此只需要将文件分段加载至内存,再处理好导入表,还有一些重定位等需要处理,就可以正常运行。

ntoskrnl.exe hal.exe 以及sys加载至内核

ntdll.dll kernel32.dll user32.dll gdi32.dll等加载到用户进程。他们之间做api处理相应调用

用户进程与内核用kiFastSystemCall 调用 ,sysenter_entry 接收内核的调用,并返回用户态。

以上过程均已通过代码实验成功。

现在要处理是驱动程序 sys的加载与调用,主要是内核api的资料比较少,还在试验当中。

http://www.lryc.cn/news/334177.html

相关文章:

  • unity工程输出的log在哪里?
  • 【力扣】7. 整数反转
  • Android Apk签名算法使用SHA256
  • 2024.3.13力扣每日一题——最大二进制奇数
  • 2024.4.1力扣每日一题——故障键盘
  • 第十四届蓝桥杯C/C++大学B组题解(一)
  • 4.网络编程-websocket(golang)
  • docker安装部署mysql后忘记root密码
  • c++的学习之路:14、list(1)
  • huawei 华为交换机 配置 VLAN 聚合示例
  • 【QT+QGIS跨平台编译】056:【pdal-dimbuilder+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • 【Python】探索Python中的aiohttp:构建高效并发爬虫
  • 创建真实项目vue2项目
  • 【大数据】安装hive-3.1.2
  • STM32工程 如何设置堆栈大小(Heap和Stack)
  • 光纤资源运维管理升级方案,让您的网络资产价值倍增!
  • 【深度学习】最强算法之:深度Q网络(DQN)
  • 微软文本转语音和语音转文本功能更新,效果显著!
  • 充场拉新工作室保证金靠谱吗?找一手渠道是否免费?
  • 揭秘淘宝商品详情数据接口(Taobao.item_get)
  • Linux从入门到精通 --- 4(上).快捷键、软件安装、systemctl、软链接、日期和时区、IP地址
  • ESP32调试笔记
  • python -- NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+
  • 解决nginx代理后,前端拿不到后端自定义的header
  • C++从入门到精通——类的6个默认成员函数之构造函数
  • 第十四届蓝桥杯省赛大学B组(C/C++)整数删除
  • openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint
  • 智慧校园|智慧校园管理小程序|基于微信小程序的智慧校园管理系统设计与实现(源码+数据库+文档)
  • 【信贷后台管理之(五)】
  • C++ 动态字符串String的介绍及经典用法展示