VScode+Docker+Python+Debug安装指南

本文记录VScode Docker Python Debug 相关设置已经遇见的问题

为何

日益增多的框架和漏洞学习中,VulDB一键搭建成为安全研究福音。为更好地跟踪Payload利用路径,调试成为必不可少的一步,但VulDB以Docker为基石,随之而来只能选择非本地搭建而使用现有的Docker进行远程调试,本文记录VScode Docker Python Debug 相关设置已经遇见的问题

前提

有与本地互通的Docker环境

VulDB源码已安装

正常的逻辑思维,动手能力,观察能力以及信息搜集能力

笔者环境

Windows10家庭版 WSL2 + Docker Desktop VScode

记录

VScode正常安装,Docker 参照VulDB正常启动后,VScode本地安装 Remote Development 插件包(起作用的是Dev Containers,但作者未研究相关插件依赖关系,遂建议均安装) image-20240109155109468

查看右侧发现出现此图标image-20240109155523872点击发现有已启动的Docker环境

image-20240109155640777

右键Files上一栏(如图)后点击Attach Visual Dtudio Code 另起一个窗口

image-20240109155736705

后等待VScode安装Server端,等待启动便可

Docker端(后述为远端)需安装插件如下(除红框外其他插件并非笔者主动安装)

image-20240109160802730

注:python新版本插件 Python 不支持3.7版本以下的python,需要指定安装旧版本,实测插件版本为2022.6.0版本支持 python 3.6 debug

image-20240109160725386

python版本确认

右下角查看Python环境发现出现不知一个

image-20240109155932960

利用各种方法确认当前Docker启动时使用哪个版本的Python 方案 0 :进入Terminal,python 运行临时环境,import 项目扩展包(项目使用但非基础环境),如果导入失败即可排除该版本

在准备好后,切换到项目需求的python版本后点击Debug模块,创建launch.json

image-20240109161124932

image-20240109161215895

无启动特殊设置的话(启动脚本与主要编写脚本不一致,需要带参运行)使用默认即可,如需设置自行百度

打上断点后尝试运行基本脚本测试

image-20240109161350879

能断代表设置成功

问题以及解决

问题

image-20240109161459892

在调试时发现框架函数无法如本地一样进入查看细节

解决

在确认使用python版本号的前提下,使用该版本python全路径运行以下命令:

python -c "import site;print(site.getusersitepackages())"

确认项目扩展包位置,笔者如图

image-20240109160945872

在远端设置(setting.json)中(user或者WorkSpace均可)设置如下字段后,再次尝试Debug

image-20240109161714950

进入函数失败,右下角提示

image-20240109161820381

launch.json 中设置相关字段,如下图

image-20240109162402886

再次尝试,成功进入框架函数,但依旧无法主动点击进入,此时更换该插件版本,与Python插件对应,即可(笔者同样使用2022.6.0)

image-20240109164853642

Dan❤Anan
Built with Hugo
主题 StackJimmy 设计