OpenSSL整个项目很庞大,为了能更好的了解其实现,最好的方法就是能够单步调试。

查询了一些资料,在此留言,备忘。

1.环境:

   下载最新版本的OpenSSL:http://www.openssl.org/

   下载最新版本的Perl:http://downloads.activestate.com/ActivePerl

    VC环境变量设置,执行下面批处理

view plaincopy to clipboardprint?
"c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT" 
   "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"

2.非DEBUG版本编译。

进入openssl源码目录。   cd c:\openssl-src

运行configure:

view plaincopy to clipboardprint?
perl Configure VC-WIN32 --prefix="c:\\openssl" 
    perl Configure VC-WIN32 --prefix="c:\\openssl"

创建Makefile文件:

    ms\do_ms

    编译动态库:

    nmake -f ms\ntdll.mak

    编译静态库:

    nmake -f ms\nt.mak

    测试动态库:

    nmake -f ms\ntdll.mak test

    测试静态库:

    nmake -f ms\nt.mak test

    安装动态库:

    nmake -f ms\ntdll.mak install

    安装静态库:

    nmake -f ms\nt.mak install

    清除上次动态库的编译,以便重新编译:

    nmake -f ms\ntdll.mak clean

    清除上次静态库的编译,以便重新编译:

    nmake -f ms\nt.mak clean

3.DEBUG版本的编译

先修改ms\do_ms.bat 第2-3行

view plaincopy to clipboardprint?
perl util\mk1mf.pl no-asm debug VC-WIN32 >ms\nt.mak  
perl util\mk1mf.pl dll no-asm debug VC-WIN32 >ms\ntdll.mak 
perl util\mk1mf.pl no-asm debug VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll no-asm debug VC-WIN32 >ms\ntdll.mak

再修改ms\ntdll.mak ms\nt.mak,在其CFLAG(第19行)中加入 /Zi参数,否则无法step into openssl源代码中。

然后

nmake -f ms\ntdll.mak

....

如上操作就可以单步进入源码了。

参考两篇网文,就记住了命令,不记得出处了,在此表示感谢!

与CSDN blog同步