Win7下安装/调试openssl
来源:互联网 发布:开淘宝都买宝马了 编辑:程序博客网 时间:2024/05/20 07:15
0x00前言
windows中安装openssl有两种方法:1)直接从http://slproweb.com/products/Win32OpenSSL.html下载已经编译好的安装包;2)使用VS编译源码进行安装。以下为第二种安装方法的具体步骤。
0x01安装openssl
1. 安装ActivePerl
从官网上http://www.activestate.com/activeperl下载与系统版本一致的安装包(32位或64位,32位版本只能生成32位版本的openssl库文件,64位版本可以选择生成32位或者64位版本的openssl库文件),这里选择32位版本。安装过程中选择配置环境变量。
测试是否安装成功:进入perl/eg,执行perl example.pl
,若显示Hello from ActivePerl!
,则说明安装成功。
2. 初始化VS编译环境
依次点击“开始”菜单 /Visual Studio 2010/Visual Studio Tools/Visual Studio 命令提示(2010)进入目录 Microsoft Visual Studio 10.0\VC\bin\ ,执行vcvars32.bat。
3. 配置openssl
从官网http://www.openssl.org/source/下载源码后解压,进入openssl目录中执行perl Configure VC-WIN32
。
4.执行ms\do_ms.bat
为了生成debug版本的库便于调试,需要修改do_ms.bat文件。修改后执行ms\do_ms.bat。
原文件:
perl util\mkfiles.pl >MINFOperl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.makperl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.makif x%OSVERSION% == x goto skipceperl util\mk1mf.pl no-asm VC-CE >ms\ce.makperl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak:skipceperl util\mkdef.pl 32 libeay > ms\libeay32.defperl util\mkdef.pl 32 ssleay > ms\ssleay32.def
修改后的文件:
perl util\mkfiles.pl >MINFOperl util\mk1mf.pl debug no-asm VC-WIN32 >ms\nt.mak #添加debugperl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdll.mak #添加debugif x%OSVERSION% == x goto skipceperl util\mk1mf.pl debug no-asm VC-CE >ms\ce.mak #添加debugperl util\mk1mf.pl debug dll no-asm VC-CE >ms\cedll.mak #添加debug:skipceperl util\mkdef.pl 32 libeay > ms\libeay32.defperl util\mkdef.pl 32 ssleay > ms\ssleay32.def
5.编译openssl nmake -f ms\ntdll.mak
—–编译动态库 nmake -f ms\nt.mak
—–编译静态库
编译成功后,在openssl目录下会多出两个文件夹:
out32dll.dbg:存放动态库及相关文件,其中包含libeay32.dll、libeay32.lib和ssleay32.dll、ssleay32.lib。
out32.dbg:存放静态库及相关文件,其中包含libeay32.lib和ssleay32.lib。
ssleay32文件中包含与ssl协议相关的函数的实现,libeay32中包含与密码运算相关的函数的实现。
在VS项目中使用libeay32.dll和ssleay32.dll时,直接将这两文件放在exe程序所在目录下(如debug或release目录)。
注:
1)若出现nmake不是内部命令或外部命令,也不是可运行程序
错误,把nmake的安装目录(E:\Program Files\Microsoft Visual Studio 10.0\VC\bin)加入环境变量可解决。
2)若出现NMAKE : fatal error U1077: '"path\cl.exe"': return code '0xc0000135'
错误,进入 E:\Program Files\Microsoft Visual Studio 10.0\VC目录执行vcvarsall.bat可解决。
3)测试
nmake -f ms\nt.mak testnmake -f ms\ntdll.mak test
测试结果如下则编译成功。
4)清除上次编译结果
nmake -f ms\ntdll.mak cleannmake -f ms\nt.mak clean
5.配置openssl的环境变量
安装完openssl后,每次执行openssl命令时都需要切换到openssl.exe所在目录下,为此,添加openssl环境变量(E:\openssl-1.0.1m\out32dll.dbg)即可在任意目录下运行openssl。
如果在打开时候出现WARING:can't open config file:E:/openssl/ssl/openssl.cnf
,只需要找到openssl.cnf所在目录(E:\openssl\apps\openssl.cnf),然后执行set OPENSSL_CONF=E:\openssl\apps\openssl.cnf
即可解决。
0x02 VS中使用openssl编程
编译好openssl库之后即可使用这些库来编程,但需要对VS进行一些设置,VS2010中的设置如下:
1. 设置头文件与库函数所在目录
项目/ 属性/ VC++目录/ 包含目录,该项设置为openssl的头文件目录(openssl/inc32)。
项目/ 属性/ VC++目录/ 库目录,该项设置为openssl的编译生成的lib、dll所在的目录(openssl/ out32dll.dbg)。
2. 设置附加依赖项
项目/ 属性/ 连接器/输入/ 附加依赖项,添加libeay32.lib与ssleay32.lib两项。
3. 设置附加包含目录
项目/ 属性/ C/C++/ 常规/ 附加包含目录,该项设置为openssl的头文件目录(openssl/inc32)。
0x03 VS中调试openssl源码
因为openssl的编译是通过Makefile的方式,不是建了一个VS的solution,所以不能很方便地加断点进行debug。但是VS的断点原理很简单,就是插入一条软件中断的汇编,于是我们也效仿之。
在想要调试的地方,插入以下汇编指令。
__asm int 3
然后重新编译源码,运行程序就能debug了。
References:
http://blog.csdn.net/houjixin/article/details/25806151
http://blog.csdn.net/henter/article/details/8364532
http://ourlove11.blog.163.com/blog/static/21266600520129217234263/
http://www.cnblogs.com/liping13599168/archive/2011/03/16/1986024.html
http://blog.csdn.net/hudaiqian/article/details/6232567
- Win7下安装/调试openssl
- WIN7下安装openssl
- WIN7 64位下安装OPENSSL
- Win7系统下OpenSSL安装及测试
- Openssl WIN7 x64 安装
- 在win7下安装openssl 64位的
- openSSL在Win7下的编译与安装
- win7下Qt安装调试器
- Linux下安装OpenSSL
- Windows下安装OpenSSL
- Windows 下OpenSSL 安装
- Windows 下OpenSSL 安装
- Windows下安装OpenSSL
- windows下openssl安装
- SUSE下安装openssl
- Linux下OpenSSL 安装
- ubuntu下安装openssl
- VS2010 下安装 openssl
- 《克隆VM主机出现无法上网的问题解决》
- SpringMVC学习使用一:搭建简单的SpringMVC开发项目环境并使用
- TCP状态迁移
- 使用JQuery生成二维码
- NBUT OJ 1643 阶乘除法 打表
- Win7下安装/调试openssl
- MySQL内连接和外连接
- Java集合类
- 学习日记20160820
- MATLAB学习笔记02——优化算法工具箱
- Java基本类型介绍
- Android View框架总结(二)View焦点
- Java数组
- poj 3468 A Simple Problem with Integers