OpenSSL 1.1.1的windows安装与使用VS断点调试

OpenSSL是常用的一个加密库或者说SSL实现库,常用在Linux下进行编译使用,但是在windows中也有使用的需求
在windows下进行编译安装之后,可以使用OpenSSL库,但是在对代码进行调试的时候只能在OpenSSL给出的函数外部进行调试,无法进入到函数内部。本文便是给出windows环境下OpenSSL1.1.1的编译与调试

Windows下OpenSSL的安装与编译

准备工作

配置环境变量

  • 将 NASM的路径X:\…\NASM写入环境变量
  • 将 VS的路径X:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin写入环境变量

编译安装OpenSSL

  • 解压OpenSSL 1.1.1的源码
  • 使用管理员身份运行VS2015 本机命令提示符
  • 将打开的VS控制台cd 到你解压的OpenSSL源代码文件夹
  • 输入以下命令

    1
    perl Configure debug-VC-WIN32 --prefix=C:\Build-OpenSSL-VC32-Debug-DLL

    这里去掉debug则生成的是release版本的库
    若是WIN32改为WIN64A则是64位系统

  • 修改makefile文件(optional)
    若是不使用debug模式或者没有对OpenSSL内部函数的调试需求可以跳过
    随便使用什么编辑器打开生成的makefile文件,搜索其中的 /Zi 修改为 /Z7
    这是为了在debug的时候能看到源码

  • 使用以下命令编译测试安装即可

    1
    2
    3
    nmake -f makefile
    nmake test
    nmake install

    编译安装完毕

    使用VS调试OpenSSL

  • 打开VS项目

  • 将OpenSSL的头文件库添加到项目头文件库
  • 将OpenSSL生成的库文件,.lib与.dll复制到项目文件夹
  • 在VS项目属性->链接器->输入中加入libssl.lib与libcrypto.lib
  • have fun with OpenSSL

若是有进入到源码函数的调试需求的话

  • 将OpenSSL的源码文件使用现有项进行添加
  • 将添加的文件的属性中的C++->附加包含目录中加入所需头文件
  • 编译运行

在这里应该是使用的新的文件编译得到的函数而不是库中本身的函数,这样可以的到函数内部的单步调试功能

OVER