openssl3.2 - 在VS2019下源码调试openssl.exe

openssl3.2 - 在VS2019下源码调试openssl.exe

概述

openssl.exe运行时, 是带环境变量的.
用VS2019调试时, 只带命令行参数是不行的.

笔记

进行这个实验, 前提是自己已经编译了能在vs2019下运行的openssl3.2的命令行工程.
前面已经做了笔记(openssl3.2 - 自己构建openssl.exe的VS工程(在编译完的源码版本上))

先看一个用.bat调用openssl干活的实例

在这里插入图片描述

@echo off
rem \file a1_create_certificate_directly.cmd

set OPENSSL=.\openssl
set OPENSSL_CONF=.\openssl.cnf
rem echo OPENSSL_CONF = %OPENSSL_CONF%

rem Root CA: create certificate directly
set CN="Test Root CA"

rem root根证书的私钥和证书要放在一个.pem中
%OPENSSL% req -config ca.cnf -x509 -nodes -keyout root_ca.pem -out root_ca.pem -newkey rsa:2048 -days 3650 > opt_log_A1.txt 2>&1

这个批处理调用openssl.exe来生成一个测试用的根证书
可以看到, 有2个环境变量必须设置 OPENSSL_CONF, CN.
如果没有这2个环境变量, 操作就会失败.

下面用VS2019调试自己编译的my_openssl_cmd.exe工程, 来做同样的事情.
不同的地方, 我们要单步调试, 找出实现这个功能的函数调用序列.

VS2019调试参数设置

设置 - 命令参数

在命令参数输入框最右边选择下拉箭头/编辑, 会弹出编辑框, 输入方便一些.
在这里插入图片描述

在这里插入图片描述

设置 - 工作目录

工作目录必须是编译出来的exe的目录, 不能是源码的工程目录, 否则会导致exe找不到命令行参数中的指定配置文件, 导致打开配置文件失败

在这里插入图片描述

设置 - 环境变量

必须在环境输入框的最右边选择下拉箭头/编辑, 来输入, 否则无法正确输入(因为环境变量之间使用\r\n分隔的).

在这里插入图片描述
在这里插入图片描述
需要勾选环境变量合并.
在这里插入图片描述

将命令行中需要的文件拷贝到exe目录

在本例中, 要拷贝的文件如下:
ca.cnf
openssl.cnf
下面这个截图是程序编译跑完了, 删掉*.obj后的样子
在这里插入图片描述

单步调试

这步和普通的VS2019调试没有区别.
主要是看一下, 是否命令行参数给的不对, 导致进入报错处理.
单步了一下, 程序运行正常, 正常退出.
然后去exe目录看到, 已经正常生成了root_ca.pem.

备注

从来没调试过需要环境变量的工程, 这是头一次, 汗颜.

END

相关推荐

  1. WindowsVS2017编译Qt5.6.3动态库

    2024-01-12 06:06:03       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 06:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 06:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 06:06:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 06:06:03       20 阅读

热门阅读

  1. Linux 命令解释程序(shell)的模拟实现

    2024-01-12 06:06:03       32 阅读
  2. 初识C#语言

    2024-01-12 06:06:03       37 阅读
  3. Nacos:发现微服务的未来

    2024-01-12 06:06:03       35 阅读
  4. Docker容器,使用 Docker 做些什么

    2024-01-12 06:06:03       38 阅读
  5. LeetCode_5_中等_最长回文子串

    2024-01-12 06:06:03       35 阅读
  6. 定时音频数据采集并发送websocket实时播放

    2024-01-12 06:06:03       36 阅读
  7. python函数装饰器参数统计调用时间和次数

    2024-01-12 06:06:03       31 阅读
  8. docker 将镜像打包为 tar 包

    2024-01-12 06:06:03       35 阅读