首页
社区
课程
招聘
[原创]用VS编译edk2并用windbg源码调试OVMF
发表于: 2020-1-7 12:07 15925

[原创]用VS编译edk2并用windbg源码调试OVMF

2020-1-7 12:07
15925

不知为什么,每次尝试去编译别人的项目都要踩n个坑,应该还是太菜了吧......编译成功后把方法记下来,以后回顾的时候方便看


1.下载edk2到文件夹edk2中并更新子模块
git clone 49eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6@1K9h3q4F1L8$3y4G2M7X3g2Q4x3V1k6W2k6r3D9J5i4K6u0W2k6$3W2@1 edk2

cd edk2

git submodule update --init


2.安装工具链,我只试过2015和2019两个VS版本,任选一个就行
(1)安装VS2015,尝试创建一个Win32控制台程序,过程中会要求你安装必要的工具
(2)安装VS2019,打开后,选择“工具”->“获取工具和功能”,在安装列表中勾选“使用C++的桌面开发”,然后在右边的"安装详细信息"中勾选"使用C++的桌面开发"->"MSVC v141 -VS 2017 C++ x64/x86 生成工具",之后右下角的"修改"



3.安装相关程序

(安装相关程序在附件中,除了 Intel UDK Debugger Tool v1.5 以外不一定要安装在C盘下,也可以放在其他盘)

(1)安装NASM,并添加一条环境变量。(不一定要安装下C盘下,可以放到其他路径,下面也是)
NASM_PREFIX C:\NASM\

(2)安装PYTHON,并添加两条环境变量。
PYTHON_HOME C:\Python38
PYTHON_FREEZER_PATH %PYTHON_HOME%\Scripts

(3)添加一条关于IASL路径的环境变量。
IASL_PREFIX C:\ASL\

(4)安装windbg的32版本。

(5)安装qemu 0.13.0,安装后将qemu安装路径放到系统环境变量Path中

(6)安装Intel UDK Debugger Tool v1.5,切记别修改默认安装目录C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool,安装过程中会要求设置windbg路径和调试方式,如下面三张图所示。


填写32位windbg所在的目录即可;



这个安装路径不能更改;



调试方式选择“Pipe”,端口名为“qemu_pipe_dbg“;


4.编译BaseTools
在edk2路径下打开命令行
edksetup.bat
cd BaseTools
nmake


5.修改配置文件
打开Conf\target.txt,以下是对于部分配置项的解释,配置相关的详细信息在Conf/tools_def.txt中
(1)ACTIVE_PLATFORM
编译目标,这里为EmulatorPkg/EmulatorPkg.dsc
(2)TARGET
编译目标版本,可以为DEBUG\RELEASE或者用户自定义,这里为DEBUG
(3)TARGET_ARCH
运行平台,这里为IA32
(4)TOOL_CHAIN_TAG
工具链,如果安装了VS2015,则设置为VS2015x86,如果安装了VS2019,则设置为VS2019


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2021-6-17 17:11 被TechForBad编辑 ,原因: 添加内容
收藏
免费 4
支持
分享
最新回复 (10)
雪    币: 7149
活跃值: (2051)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
本来开源的东西很多都编不过 因不挣钱 所以不负责
2020-1-7 14:53
0
雪    币: 246
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可以问一下你编译后打算做什么吗? 
2020-1-7 14:54
0
雪    币: 4093
活跃值: (4352)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
ttwodoges 可以问一下你编译后打算做什么吗?
在看一本书《UEFI原理与编程》,学一下底层,写几个应用玩玩
2020-1-7 15:28
0
雪    币: 4093
活跃值: (4352)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
TopC 本来开源的东西很多都编不过 因不挣钱 所以不负责
可是很多知名度挺高的项目,经常被人提起的,README里面也都描述得那么理所当然,我总怀疑是不是全世界就我一个人编译不过,为什么每次都要踩n多坑才能搞定
2020-1-7 15:34
0
雪    币: 246
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个我倒是只去编译了一下,Linux下的环境会更容易编译成功,但是到后面就因为某些原因无法写程序自己编译,特指UDK2017还是UDK2018版本来着。Windows配置环境真的是噩梦呀
2020-1-7 17:05
1
雪    币: 1324
活跃值: (2487)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
总结了一下uefi的环境搭建可以参考下:
ae7K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2D9k6h3q4F1L8%4c8W2i4K6u0W2j5$3!0E0i4K6u0r3M7r3!0K6N6q4)9J5c8X3!0F1L8s2W2Q4y4h3k6@1K9r3g2Q4y4h3k6T1M7X3q4$3k6g2)9J5c8W2N6A6L8X3c8G2N6%4y4Q4x3X3c8g2c8f1k6u0i4K6t1#2c8e0N6Q4x3U0f1&6b7g2)9J5y4e0R3@1i4K6t1#2c8e0N6Q4x3U0f1^5c8g2)9J5y4f1q4r3i4K6t1#2c8e0g2Q4x3U0g2m8x3W2)9J5y4e0R3K6i4K6t1#2c8e0k6Q4x3U0f1&6x3q4)9J5y4f1q4p5i4K6t1#2c8e0g2Q4x3U0g2n7b7W2)9J5y4f1u0m8i4K6t1#2c8e0g2Q4x3U0f1&6x3W2)9J5y4e0S2o6i4K6t1#2c8e0S2Q4x3U0g2n7c8W2)9J5y4e0V1H3i4K6t1#2c8e0S2Q4x3U0g2m8x3g2)9J5y4e0S2o6g2f1g2r3d9g2)9J5y4f1f1%4i4K6t1#2b7e0S2Q4x3U0f1^5b7W2)9J5y4f1f1#2i4K6t1#2b7V1q4Q4x3U0f1^5c8R3`.`.
2021-6-17 11:00
0
雪    币: 4093
活跃值: (4352)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
灵幻空间 总结了一下uefi的环境搭建可以参考下: 35cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2D9k6h3q4F1L8%4c8W2i4K6u0W2j5$3!0E0i4K6u0r3M7r3!0K6N6q4)9J5c8X3!0F1L8s2W2Q4y4h3k6@1K9r3g2Q4y4h3k6T1M7X3q4$3k6g2)9J5c8W2N6A6L8X3c8G2N6%4y4Q4x3X3c8g2c8f1k6u0i4K6t1#2c8e0N6Q4x3U0f1&6b7g2)9J5y4e0R3@1i4K6t1#2c8e0N6Q4x3U0f1^5c8g2)9J5y4f1q4r3i4K6t1#2c8e0g2Q4x3U0f1`. ...
"注意在这个窗口中输入信息,需要切换为美式键盘,否则窗口会卡死"这个太重要了,我当时没解决这个问题,谢谢分享
2021-6-17 17:09
0
雪    币: 1129
活跃值: (191)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
兄弟,你这个是在啥系统上做的,我在win10和win11用UDK Debugger一直都没办法连接上QEMU,windbg版本是10.x
2022-5-20 13:57
0
雪    币: 1045
活跃值: (2568)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
孙小空-Liu 兄弟,你这个是在啥系统上做的,我在win10和win11用UDK Debugger一直都没办法连接上QEMU,windbg版本是10.x
碰到楼上同样的问题,一直无法连接上QEMU 
2023-3-3 11:07
0
雪    币: 1129
活跃值: (191)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
曹操abc 碰到楼上同样的问题,一直无法连接上QEMU
已解决,QEMU版本必须是很旧的一个版本
2023-10-5 22:16
0
游客
登录 | 注册 方可回帖
返回