本文记录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,但作者未研究相关插件依赖关系,遂建议均安装)
查看右侧发现出现此图标点击发现有已启动的Docker环境
右键Files上一栏(如图)后点击Attach Visual Dtudio Code
另起一个窗口
后等待VScode安装Server端,等待启动便可
Docker端(后述为远端)需安装插件如下(除红框外其他插件并非笔者主动安装)
注:python新版本插件 Python 不支持3.7版本以下的python,需要指定安装旧版本,实测插件版本为2022.6.0版本支持 python 3.6 debug
python版本确认
右下角查看Python环境发现出现不知一个
利用各种方法确认当前Docker启动时使用哪个版本的Python 方案 0 :进入Terminal,python 运行临时环境,import 项目扩展包(项目使用但非基础环境),如果导入失败即可排除该版本
在准备好后,切换到项目需求的python版本后点击Debug模块,创建launch.json
无启动特殊设置的话(启动脚本与主要编写脚本不一致,需要带参运行)使用默认即可,如需设置自行百度
打上断点后尝试运行基本脚本测试
能断代表设置成功
问题以及解决
问题
在调试时发现框架函数无法如本地一样进入查看细节
解决
在确认使用python版本号的前提下,使用该版本python全路径运行以下命令:
python -c "import site;print(site.getusersitepackages())"
确认项目扩展包位置,笔者如图
在远端设置(setting.json)中(user或者WorkSpace均可)设置如下字段后,再次尝试Debug
进入函数失败,右下角提示
launch.json 中设置相关字段,如下图
再次尝试,成功进入框架函数,但依旧无法主动点击进入,此时更换该插件版本,与Python插件对应,即可(笔者同样使用2022.6.0)