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

文章目录

    • openssl3.2 - 在VS2019下源码调试openssl.exe
    • 概述
    • 笔记
    • 先看一个用.bat调用openssl干活的实例
    • VS2019调试参数设置
    • 设置 - 命令参数
    • 设置 - 工作目录
    • 设置 - 环境变量
    • 将命令行中需要的文件拷贝到exe目录
    • 单步调试
    • 备注
    • END

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.cmdset 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239418.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多租户体系实现

文章目录 核心思路方案选择设计考量安全性扩展性通用性易用性 具体实现租户信息透传透传变量名命名规范应用内透传应用间透传 数据层租户隔离MySQL存储方案:多租户Mybatis插件Mybatis插件特点使用多租户Mybatis插件的优势参考文档 应用场景 经过工作中的一处场景启发…

PLC编程中ST语言操作符的使用方法

ST(Structured Text)语言操作符主要用于PLC编程,主要包括算术运算符、比较运算符和逻辑运算符等。 算术运算符包括加()、减(-)、乘(*)、除(/)和指…

中国1981-2023年逐年每15天8km植被指数数据集

摘要 中国1981-2023年逐年每15天8km植被指数数据集来源于GIMMS NDVI数据,包括了1981年7月-2023年12月的长时间序列逐年每15天植被指数变化,格式为arcgis grid格式,投影为WGS84,其时间分辨率是15天,空间分辨…

什么是云服务器,阿里云优势如何?

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云百科aliyunbai…

C/C++--ProtoBuf使用

一.什么是ProtoBuf 1.序列化和反序列化概念 序列化:把对象转变为字节序列的过程,称为系列化。 反序列化:把字节序列的内容恢复为对象的过程,称为反序列化。 2.什么情况下需要序列化和反序列化 存储数据:将内存中的对象…

Vulnhub靶机:driftingblues 6

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues6(10.0.2.22) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…

洛谷 P9868 [NOIP2023] 词典

原文链接&#xff1a;NOIP真题第四讲&#xff1a;词典 题目来源&#xff1a;2023 年 NOIP T1 本题考察点&#xff1a;【贪心、枚举、模拟】 前置知识 字典序&#xff1a;指按照a、b、c、...、z的顺序&#xff0c;即a<b<c<...<z&#xff1b; 一、题目及链接 题…

如何用ChatGPT写教案设计?以“沁园春雪”为例

1. 引言 随着人工智能技术的飞速发展&#xff0c;ChatGPT已成为教育领域的一大创新工具。ChatGPT不仅能够模拟人类对话&#xff0c;还可以帮助设计互动丰富、内容丰富的教案。本文将探索如何利用ChatGPT进行教案教学设计&#xff0c;特别是通过“沁园春雪”这一案例&#xff0…

项目压测优化实践思路

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

RuntimeError: CUDA error: device-side assert triggered

授人以鱼不如授人以渔 解决步骤 记录下解决步骤…cuda报错真要人命 首先根据终端的提示 他说让你加这个来定位具体的python代码错哪了&#xff0c;所以咱们就加。 我这里启动命令是&#xff1a; accelerate launch --config_file "utils/acc_configs/accelerate_con…

官方认可!360荣获“科技产业高质量发展突出贡献企业”称号

近日&#xff0c;2023年度朝阳区高质量发展突出贡献企业表彰大会在北京成功召开。会上&#xff0c;朝阳区管委会&#xff08;区科信局&#xff09;对朝阳区做出积极贡献的企业单位进行表彰&#xff0c;360数字安全集团作为数字安全的领导者&#xff0c;在技术能力、研发创新和实…

windows系统下docker软件中使用ubuntu发行版本的linux系统

1.软件下载 官网下载地址 下载安装之后&#xff0c;再去微软商店下载wsl软件&#xff0c;可以直接用&#xff0c;或者也可以使用命令行拉取&#xff08;下面会讲&#xff09; 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言&#xff1a;输入 winr 打开命令行进行下面…

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html

i18n多国语言Internationalization的实现

i18n 是"Internationalization”的缩写&#xff0c;这个术语来源于英文单词中首尾字母“”和“n”以及中间的字符数(共计18个字符) 当我们需要开发不同语言版本时&#xff0c;就可以使用i18n多国语言的一个操作处理&#xff0c;i18n主要实现那一方面的内容呢&#xff1f;…

RHCE9学习指南 第19章 网络时间服务器

19.1 时间同步的必要性 对于一些服务来说对时间要求非常严格&#xff0c;例如&#xff0c;图19-1所示由三台服务器搭建的ceph集群。 图19-1 三台机器搭建的集群对时间要求比较高 这三台服务器的时间必须要保持一样&#xff0c;如果不一样&#xff0c;就会显示报警信息。那么…

基于SSM的戏剧推广网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue、HTML 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是…

试用清华Chatglm智能体

清华AI平台&#xff0c;感觉在见过的国内AI平台中做的是比较优秀的&#xff0c;目前该平台提供的智能体功能感觉更智能或者说更傻瓜式一些。定义可以定义专属智能体&#xff0c;这些智能体是自己想要的网络上的汇集处理后的信息&#xff0c;或者是绘画或者是编写某个方面的代码…

23111 网络编程 day3

思维导图 tip协作服务 程序如下&#xff1a; #include<myhead.h> #define SER_PORT 69 #define SER_IP "192.168.125.180"int do_upload(int cfd,struct sockaddr_in sin) {//向服务器发送上传请求char buf[512]"";//组装请求数据short *p1(short*…

程序员接私活还不知道这几个平台?那你真的亏了!

程序员接私活现在已经是一个老生常谈的话题了&#xff0c;现在市面上各种程序员接单平台层出不穷&#xff0c;也参差不齐&#xff0c;有比较老牌的知名平台&#xff0c;也有比较好的新兴平台&#xff0c;如此多的平台就容易让人眼花缭乱&#xff0c;不知道该如何选择。 这期文…

推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

背景 在大多数的推荐系统中&#xff0c;往往注重于隐式正反馈(例如&#xff1a;点击)&#xff0c;而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢&#xff0c;而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中&#xff0c;提出了一个新颖…