山寨windows

本文介绍了如何在Windows下解析并运行PE格式的程序,包括文件头、代码段、数据段等结构,以及内核和用户进程之间的API调用和驱动程序sys的加载挑战。作者已成功实现exe、dll和sys的基本加载与部分内核API调用,但仍需进一步研究驱动程序sys的内核API资料。
摘要由CSDN通过智能技术生成

我的目标是能够运行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的资料比较少,还在试验当中。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麻雀123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值