OpenSSL 1.1 and VS2015 and QuarksPwDump – Oh My…

Goal

Today’s desire: Build Quarks PwDump as part of my CEH studying. Note to self: PwDump doesn’t build OOTB on VS2015 CE because the OpenSSL library it ships with fails to link.

Today’s feat and the reason for this article: Building OpenSSL 1.1 on a new Windoze 10 VM so I can get Quarks PwDump to link.

Followed recipe at http://stackoverflow.com/questions/34410711/how-to-build-openssl-in-vs2015-x86cpuid-asm-is-an-empty-file but required a few changes.

Environment

Build

  1. Install GPG4Win, NASM, and Strawberry Perl. VS2015 CE already comes with a git option (I installed basically everything as I may end up building all kinds of stuff).
  2. Important: Open an Administrator Command Prompt. You need this because when we build OpenSSL – some of the install creates a standalone CA in your C:\Program Files (x86)\Common\SSL folder and you won’t have permissions otherwise. Unless you’ve done something stupid like run as an Admin on your dev box. But you didn’t do anything that bone-headed, did you? If so – stop it Now.
  3. Pull down openssl:
    mkdir d:\proj\openssl
    d:
    
    cd \proj\openssl
    
    git clone https://github.com/openssl/openssl.git
    
    rename openssl src

    OK, I did something Kinda Stoopid here – I’m following the recipe above, and I renamed the perfectly-adequate openssl folder to be src to match the recipe. So don’t be confused in the following instructions.

  4. Setup your local environment. Notice that I installed the tools on my D:\ drive (I have more room on it):
    set path=%path%;"D:\Program Files (x86)\NASM";D:\Strawberry\perl\bin
    
    perl Configure VC-WIN32 --prefix=D:\proj\openssl\build enable-static-engine
    
    "d:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"

    OK – So you can see I installed VS2015 CE on my D:\ drive as well.

  5. Do the build:
    nmake
    
    nmake test
    
    nmake install

    Lots of code spits out. If all goes well, you will see things being built and copied.

Test

On my system I now have everything built in D:\proj\openssl\build folder (that was the the “prefix” I gave in the configuration command above). Let’s check the version:

D:\proj\openssl\src>D:\proj\openssl\build\bin\openssl.exe version
OpenSSL 1.1.1-dev  xx XXX xxxx

That looks good! Now let’s check for libraries:

D:\proj\openssl\src>dir D:\proj\openssl\build\lib
 Volume in drive D is DevTools
 Volume Serial Number is F488-92EA

 Directory of D:\proj\openssl\build\lib

10/18/2016  08:29 PM    <DIR>          .
10/18/2016  08:29 PM    <DIR>          ..
10/18/2016  08:29 PM    <DIR>          engines-1_1
10/18/2016  08:42 PM           925,662 libcrypto.lib
10/18/2016  08:42 PM            97,020 libssl.lib
               2 File(s)      1,022,682 bytes
               3 Dir(s)  36,995,768,320 bytes free

That looks even better…we have libraries.

As for Quarks PwDump? Built and linked like a charm with the two .lib files above.

So, who would have guessed? Windoze is not completely useless after all.

Team-oriented systems mentor with deep knowledge of numerous software methodologies, technologies, languages, and operating systems. Excited about turning emerging technology into working production-ready systems. Focused on moving software teams to a higher level of world-class application development. Specialties:Software analysis and development...Product management through the entire lifecycle...Discrete product integration specialist!

Posted in Teknocratica, Windows Server Tagged with:

Leave a Reply

Your email address will not be published. Required fields are marked *

*