├── PwnedPasswordsDLL-API.sln
├── PwnedPasswordsDLL-API
├── PwnedPasswordsDLL-API.cpp
├── PwnedPasswordsDLL-API.vcxproj
├── PwnedPasswordsDLL-API.vcxproj.filters
├── PwnedPasswordsDLL-API.vcxproj.user
├── ReadMe.txt
├── dllmain.cpp
├── stdafx.cpp
├── stdafx.h
├── targetver.h
└── x64
│ ├── Debug
│ ├── PwnedPas.2778C83C.tlog
│ │ ├── CL.command.1.tlog
│ │ ├── CL.read.1.tlog
│ │ ├── CL.write.1.tlog
│ │ ├── PwnedPasswordsDLL-API.lastbuildstate
│ │ ├── link-cvtres.read.1.tlog
│ │ ├── link-cvtres.write.1.tlog
│ │ ├── link-rc.read.1.tlog
│ │ ├── link-rc.write.1.tlog
│ │ ├── link.command.1.tlog
│ │ ├── link.read.1.tlog
│ │ └── link.write.1.tlog
│ ├── PwnedPasswordsDLL-API.log
│ ├── PwnedPasswordsDLL-API.obj
│ ├── PwnedPasswordsDLL-API.pch
│ ├── dllmain.obj
│ ├── stdafx.obj
│ ├── vc141.idb
│ └── vc141.pdb
│ └── Release
│ ├── PwnedPas.2778C83C.tlog
│ ├── CL.command.1.tlog
│ ├── CL.read.1.tlog
│ ├── CL.write.1.tlog
│ ├── PwnedPasswordsDLL-API.lastbuildstate
│ ├── PwnedPasswordsDLL-API.write.1u.tlog
│ ├── link.command.1.tlog
│ ├── link.delete.1.tlog
│ ├── link.read.1.tlog
│ └── link.write.1.tlog
│ ├── PwnedPasswordsDLL-API.log
│ ├── PwnedPasswordsDLL-API.obj
│ ├── PwnedPasswordsDLL-API.pch
│ ├── dllmain.obj
│ ├── stdafx.obj
│ └── vc141.pdb
├── README.md
└── x64
└── Release
├── PwnedPasswordsDLL-API.dll
├── PwnedPasswordsDLL-API.exp
├── PwnedPasswordsDLL-API.iobj
├── PwnedPasswordsDLL-API.ipdb
├── PwnedPasswordsDLL-API.lib
└── PwnedPasswordsDLL-API.pdb
/PwnedPasswordsDLL-API.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26403.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PwnedPasswordsDLL-API", "PwnedPasswordsDLL-API\PwnedPasswordsDLL-API.vcxproj", "{2778C83C-1B47-4884-A39E-CC16AD27BF94}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Debug|x64.ActiveCfg = Release|x64
17 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Debug|x64.Build.0 = Release|x64
18 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Debug|x86.ActiveCfg = Debug|Win32
19 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Debug|x86.Build.0 = Debug|Win32
20 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Release|x64.ActiveCfg = Release|x64
21 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Release|x64.Build.0 = Release|x64
22 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Release|x86.ActiveCfg = Release|Win32
23 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/PwnedPasswordsDLL-API.cpp:
--------------------------------------------------------------------------------
1 | // PwnedPasswordsDLL-API.cpp : Defines the exported functions for the DLL application.
2 | //
3 |
4 | #include "stdafx.h"
5 |
6 |
7 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/PwnedPasswordsDLL-API.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | 15.0
23 | {2778C83C-1B47-4884-A39E-CC16AD27BF94}
24 | Win32Proj
25 | PwnedPasswordsDLLAPI
26 | 10.0.15063.0
27 |
28 |
29 |
30 | DynamicLibrary
31 | true
32 | v141
33 | Unicode
34 |
35 |
36 | DynamicLibrary
37 | false
38 | v141
39 | true
40 | Unicode
41 |
42 |
43 | DynamicLibrary
44 | true
45 | v141
46 | Unicode
47 |
48 |
49 | DynamicLibrary
50 | false
51 | v141
52 | true
53 | Unicode
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | true
75 |
76 |
77 | true
78 | $(LibraryPath);C:\Users\Jackson Van Dyke\OneDrive\Documents\Personal\Programming\Programs\Collection\CryptoPP\x64\Output\Release;C:\Users\Jackson Van Dyke\OneDrive\Documents\Personal\Programming\Programs\PwnedPasswordsDLL\libcurl-master\lib\static-debug-x64
79 | $(IncludePath);C:\Users\Jackson Van Dyke\OneDrive\Documents\Personal\Programming\Programs\Collection\CryptoPP\include;C:\Users\Jackson Van Dyke\OneDrive\Documents\Personal\Programming\Programs\PwnedPasswordsDLL\libcurl-master\include\curl
80 |
81 |
82 | false
83 |
84 |
85 | false
86 | $(LibraryPath)
87 | $(IncludePath)
88 | $(ExecutablePath)
89 |
90 |
91 |
92 | Use
93 | Level3
94 | Disabled
95 | WIN32;_DEBUG;_WINDOWS;_USRDLL;PWNEDPASSWORDSDLLAPI_EXPORTS;%(PreprocessorDefinitions)
96 |
97 |
98 | Windows
99 |
100 |
101 |
102 |
103 | Use
104 | Level3
105 | Disabled
106 | _DEBUG;_WINDOWS;_USRDLL;PWNEDPASSWORDSDLLAPI_EXPORTS;%(PreprocessorDefinitions);CURL_STATICLIB
107 | MultiThreadedDebug
108 |
109 |
110 | Windows
111 | libcurl_a_debug.lib;cryptlib.lib;%(AdditionalDependencies)
112 |
113 |
114 |
115 |
116 | Level3
117 | Use
118 | MaxSpeed
119 | true
120 | true
121 | WIN32;NDEBUG;_WINDOWS;_USRDLL;PWNEDPASSWORDSDLLAPI_EXPORTS;%(PreprocessorDefinitions)
122 |
123 |
124 | Windows
125 | true
126 | true
127 |
128 |
129 |
130 |
131 | Level3
132 | Use
133 | MaxSpeed
134 | true
135 | true
136 | CURL_STATICLIB;NDEBUG;_WINDOWS;_USRDLL;PWNEDPASSWORDSDLLAPI_EXPORTS;%(PreprocessorDefinitions)
137 | MultiThreaded
138 |
139 |
140 | Windows
141 | true
142 | true
143 | %(AdditionalDependencies)
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | false
156 |
157 |
158 | false
159 |
160 |
161 | false
162 |
163 |
164 | false
165 |
166 |
167 |
168 |
169 |
170 | Create
171 | Create
172 | Create
173 | Create
174 |
175 |
176 |
177 |
178 |
179 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/PwnedPasswordsDLL-API.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Header Files
23 |
24 |
25 | Header Files
26 |
27 |
28 |
29 |
30 | Source Files
31 |
32 |
33 | Source Files
34 |
35 |
36 | Source Files
37 |
38 |
39 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/PwnedPasswordsDLL-API.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | DYNAMIC LINK LIBRARY : PwnedPasswordsDLL-API Project Overview
3 | ========================================================================
4 |
5 | AppWizard has created this PwnedPasswordsDLL-API DLL for you.
6 |
7 | This file contains a summary of what you will find in each of the files that
8 | make up your PwnedPasswordsDLL-API application.
9 |
10 |
11 | PwnedPasswordsDLL-API.vcxproj
12 | This is the main project file for VC++ projects generated using an Application Wizard.
13 | It contains information about the version of Visual C++ that generated the file, and
14 | information about the platforms, configurations, and project features selected with the
15 | Application Wizard.
16 |
17 | PwnedPasswordsDLL-API.vcxproj.filters
18 | This is the filters file for VC++ projects generated using an Application Wizard.
19 | It contains information about the association between the files in your project
20 | and the filters. This association is used in the IDE to show grouping of files with
21 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the
22 | "Source Files" filter).
23 |
24 | PwnedPasswordsDLL-API.cpp
25 | This is the main DLL source file.
26 |
27 | When created, this DLL does not export any symbols. As a result, it
28 | will not produce a .lib file when it is built. If you wish this project
29 | to be a project dependency of some other project, you will either need to
30 | add code to export some symbols from the DLL so that an export library
31 | will be produced, or you can set the Ignore Input Library property to Yes
32 | on the General propert page of the Linker folder in the project's Property
33 | Pages dialog box.
34 |
35 | /////////////////////////////////////////////////////////////////////////////
36 | Other standard files:
37 |
38 | StdAfx.h, StdAfx.cpp
39 | These files are used to build a precompiled header (PCH) file
40 | named PwnedPasswordsDLL-API.pch and a precompiled types file named StdAfx.obj.
41 |
42 | /////////////////////////////////////////////////////////////////////////////
43 | Other notes:
44 |
45 | AppWizard uses "TODO:" comments to indicate parts of the source code you
46 | should add to or customize.
47 |
48 | /////////////////////////////////////////////////////////////////////////////
49 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/dllmain.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * DLLMain.cpp is the code for the custom password filter that is to be utilised by
3 | * LSA to check the validity of password requests.
4 | * The DLL sends an API request to the PwnedPasswords API, and subsequently selects
5 | * whether or not the password is valid, based on whether or not it exists as a
6 | * previously breached password.
7 | * The code utilises k-Anonymity by querying the API with the first five characters of the
8 | * prospective password hash, then checks to see if the remaining suffix exists in the
9 | * return from the API. This way, any external system can only possibly receive the first
10 | * five characters in an SHA1 hash.
11 | *
12 | * Content Author: JacksonVD
13 | * Contact: jacksonvd.com
14 | * Date Written: 25-02-18
15 | * Last Modified: 18-04-18
16 | */
17 |
18 | #include "stdafx.h"
19 |
20 | #include
21 | #include
22 | #include
23 | #include
24 |
25 | #include
26 | #include
27 | #include
28 | #include
29 |
30 | #pragma comment(lib, "Ws2_32.lib")
31 |
32 |
33 | // Visual Studio DLL Boilerplate
34 |
35 | BOOL APIENTRY DllMain(HMODULE hModule,
36 | DWORD ul_reason_for_call,
37 | LPVOID lpReserved
38 | )
39 | {
40 | switch (ul_reason_for_call)
41 | {
42 | case DLL_PROCESS_ATTACH:
43 | case DLL_THREAD_ATTACH:
44 | case DLL_THREAD_DETACH:
45 | case DLL_PROCESS_DETACH:
46 | break;
47 | }
48 | return TRUE;
49 | }
50 |
51 | /*
52 | * Quick and dirty function callback function for writing with cURL - append to string rather than using fwrite
53 | */
54 |
55 | size_t cURL_Callback(void *contents, size_t size, size_t nmemb, std::string *s)
56 | {
57 | ((std::string*)s)->append((char*)contents, size * nmemb);
58 | return size * nmemb;
59 | }
60 |
61 | /*
62 | * This function will be called by LSA - the function imports calling account information, including the prospective password
63 | * and exports a Boolean value (either TRUE or FALSE). This return value is then used by LSA in determining whether or not
64 | * the password has passed the in-place password policy.
65 | */
66 |
67 | extern "C" __declspec(dllexport) BOOLEAN __stdcall PasswordFilter(PUNICODE_STRING accountName,
68 | PUNICODE_STRING fullName,
69 | PUNICODE_STRING password,
70 | BOOLEAN operation) {
71 | // Declare and initialise the returnValue Boolean expresion as true by default - allow the password change by default
72 | BOOLEAN returnValue = TRUE;
73 |
74 | // Declare the String to hold the SHA1 hash
75 | std::string hash = "";
76 |
77 | // Long and convoluted way of getting password String from PUNICODE_STRING
78 | std::wstring wStrBuffer(password->Buffer, password->Length / sizeof(WCHAR));
79 | const wchar_t *wideChar = wStrBuffer.c_str();
80 | std::wstring wStr(wideChar);
81 | std::string str(wStr.begin(), wStr.end());
82 |
83 | // Generate an SHA1 hash of the requesting password string through Crypto++
84 | CryptoPP::SHA1 sha1;
85 | CryptoPP::StringSource(str, true, new CryptoPP::HashFilter(sha1, new CryptoPP::HexEncoder(new CryptoPP::StringSink(hash))));
86 |
87 | // Declare and initialise cURL
88 | CURL *curl = curl_easy_init();
89 |
90 | // Initialise URL String as being the API address, as well as the first 5 letters of the password hash
91 | std::string URL("https://api.pwnedpasswords.com/range/" + hash.substr(0, 5));
92 |
93 | // Declare String for the API response
94 | std::string APIResponse;
95 |
96 | int http_status_code; // Declare the http_status_code variable
97 | if (curl) { // If cURL has been initialised..
98 | CURLcode res;
99 | curl_easy_setopt(curl, CURLOPT_URL, URL.c_str()); // Set the URL for CURL to the URL string
100 | curl_easy_setopt(curl, CURLOPT_USERAGENT, "API Scraper/1.0"); // Troy requires a user-agent when calling API
101 | curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, cURL_Callback); // Set the write function for cURL to cURL_Callback
102 | curl_easy_setopt(curl, CURLOPT_WRITEDATA, &APIResponse); // Set up cURL to write the API response to the APIResponse String
103 |
104 | res = curl_easy_perform(curl); // Perform the request on the above URL with the above user-agent
105 |
106 | if (res == CURLE_OK) { // If no errors occurred..
107 |
108 | curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_status_code); // Retrieve the HTTP status code
109 |
110 | if (http_status_code == 404) { // If the status code is 404 (i.e. password doesn't exist in pwned passwords data) THEN..
111 | returnValue = TRUE; // Set returnValue Boolean to true (password is fine to use as it doesn't exist as a previously breached password)
112 | }
113 | else if (http_status_code / 100 == 3 || http_status_code / 100 == 4 || http_status_code / 100 == 5) // If there are any client, server errors or redirects
114 | {
115 | returnValue = TRUE; // Set returnValue Boolean to true (fail open)
116 | }
117 | else // If there was a response from the API
118 | {
119 | std::size_t found = APIResponse.find(hash.substr(5)); // Attempt to find the hash suffix
120 |
121 | if (found != std::string::npos) // The find function will return string::npos if the requested string was no found
122 | {
123 | returnValue = FALSE; // If the hash exists, then set the return value to false (i.e. don't allow the password to be changed)
124 | }
125 | }
126 | }
127 | curl_easy_cleanup(curl); // Clean-up for cURL
128 | }
129 |
130 | return returnValue; // Return the Boolean value to LSA
131 |
132 | }
133 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // PwnedPasswordsDLL-API.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 | // TODO: reference any additional headers you need in STDAFX.H
8 | // and not in this file
9 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #pragma once
7 |
8 | #include "targetver.h"
9 |
10 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
11 | // Windows Header Files:
12 | #include
13 |
14 |
15 |
16 | // TODO: reference additional headers your program requires here
17 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.command.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/CL.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/PwnedPasswordsDLL-API.lastbuildstate:
--------------------------------------------------------------------------------
1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.15063.0
2 | Debug|x64|C:\Users\Jackson Van Dyke\Desktop\PwnedPasswordsDLL-API-master\|
3 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-rc.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link-rc.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.command.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPas.2778C83C.tlog/link.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPasswordsDLL-API.log:
--------------------------------------------------------------------------------
1 | cryptlib.lib(cryptlib.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
2 | cryptlib.lib(cryptlib.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
3 | cryptlib.lib(misc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
4 | cryptlib.lib(misc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
5 | cryptlib.lib(filters.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
6 | cryptlib.lib(filters.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
7 | cryptlib.lib(iterhash.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
8 | cryptlib.lib(iterhash.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
9 | cryptlib.lib(sha.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
10 | cryptlib.lib(sha.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
11 | cryptlib.lib(algparam.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
12 | cryptlib.lib(algparam.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
13 | cryptlib.lib(basecode.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
14 | cryptlib.lib(basecode.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
15 | cryptlib.lib(hex.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
16 | cryptlib.lib(hex.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
17 | cryptlib.lib(pch.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
18 | cryptlib.lib(pch.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
19 | cryptlib.lib(integer.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
20 | cryptlib.lib(integer.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
21 | cryptlib.lib(queue.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
22 | cryptlib.lib(queue.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
23 | cryptlib.lib(fips140.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
24 | cryptlib.lib(fips140.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
25 | cryptlib.lib(mqueue.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
26 | cryptlib.lib(mqueue.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
27 | cryptlib.lib(dll.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
28 | cryptlib.lib(dll.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
29 | cryptlib.lib(nbtheory.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
30 | cryptlib.lib(nbtheory.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
31 | cryptlib.lib(asn.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
32 | cryptlib.lib(asn.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
33 | cryptlib.lib(pubkey.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
34 | cryptlib.lib(pubkey.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
35 | cryptlib.lib(rijndael.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
36 | cryptlib.lib(rijndael.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
37 | cryptlib.lib(cpu.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
38 | cryptlib.lib(cpu.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
39 | cryptlib.lib(modes.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
40 | cryptlib.lib(modes.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
41 | cryptlib.lib(gfpcrypt.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
42 | cryptlib.lib(gfpcrypt.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
43 | cryptlib.lib(gf2n.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
44 | cryptlib.lib(gf2n.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
45 | cryptlib.lib(ec2n.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
46 | cryptlib.lib(ec2n.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
47 | cryptlib.lib(ecp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
48 | cryptlib.lib(ecp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
49 | cryptlib.lib(rng.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
50 | cryptlib.lib(rng.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
51 | cryptlib.lib(osrng.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
52 | cryptlib.lib(osrng.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
53 | cryptlib.lib(rdtables.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
54 | cryptlib.lib(rdtables.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
55 | cryptlib.lib(randpool.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
56 | cryptlib.lib(randpool.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
57 | cryptlib.lib(hrtimer.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in dllmain.obj
58 | cryptlib.lib(hrtimer.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in dllmain.obj
59 | Creating library C:\Users\Jackson Van Dyke\Desktop\PwnedPasswordsDLL-API-master\x64\Debug\PwnedPasswordsDLL-API.lib and object C:\Users\Jackson Van Dyke\Desktop\PwnedPasswordsDLL-API-master\x64\Debug\PwnedPasswordsDLL-API.exp
60 | LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
61 | C:\Users\Jackson Van Dyke\Desktop\PwnedPasswordsDLL-API-master\x64\Debug\PwnedPasswordsDLL-API.dll : fatal error LNK1319: 58 mismatches detected
62 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPasswordsDLL-API.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPasswordsDLL-API.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/PwnedPasswordsDLL-API.pch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/PwnedPasswordsDLL-API.pch
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/dllmain.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/dllmain.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/stdafx.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/stdafx.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/vc141.idb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/vc141.idb
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Debug/vc141.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Debug/vc141.pdb
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.command.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/CL.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/PwnedPasswordsDLL-API.lastbuildstate:
--------------------------------------------------------------------------------
1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
2 | Release|x64|C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\|
3 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/PwnedPasswordsDLL-API.write.1u.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/PwnedPasswordsDLL-API.write.1u.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.command.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.delete.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.delete.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.read.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPas.2778C83C.tlog/link.write.1.tlog
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPasswordsDLL-API.log:
--------------------------------------------------------------------------------
1 | dllmain.cpp
2 | Creating library C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\PwnedPasswordsDLL-API.lib and object C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\PwnedPasswordsDLL-API.exp
3 | Generating code
4 | 1 of 494 functions ( 0.2%) were compiled, the rest were copied from previous compilation.
5 | 0 functions were new in current compilation
6 | 0 functions had inline decision re-evaluated but remain unchanged
7 | Finished generating code
8 | cryptlib.lib(cryptlib.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(cryptlib.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
9 | cryptlib.lib(cpu.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(cpu.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
10 | cryptlib.lib(integer.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(integer.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
11 | cryptlib.lib(algparam.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(algparam.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
12 | cryptlib.lib(asn.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(asn.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
13 | cryptlib.lib(basecode.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(basecode.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
14 | cryptlib.lib(dll.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(dll.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
15 | cryptlib.lib(ec2n.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(ec2n.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
16 | cryptlib.lib(ecp.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(ecp.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
17 | cryptlib.lib(filters.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(filters.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
18 | cryptlib.lib(fips140.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(fips140.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
19 | cryptlib.lib(gf2n.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(gf2n.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
20 | cryptlib.lib(gfpcrypt.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(gfpcrypt.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
21 | cryptlib.lib(hex.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(hex.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
22 | cryptlib.lib(hrtimer.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(hrtimer.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
23 | cryptlib.lib(iterhash.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(iterhash.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
24 | cryptlib.lib(misc.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(misc.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
25 | cryptlib.lib(modes.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(modes.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
26 | cryptlib.lib(mqueue.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(mqueue.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
27 | cryptlib.lib(nbtheory.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(nbtheory.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
28 | cryptlib.lib(osrng.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(osrng.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
29 | cryptlib.lib(pch.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(pch.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
30 | cryptlib.lib(pubkey.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(pubkey.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
31 | cryptlib.lib(queue.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(queue.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
32 | cryptlib.lib(randpool.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(randpool.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
33 | cryptlib.lib(rdtables.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(rdtables.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
34 | cryptlib.lib(rijndael.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(rijndael.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
35 | cryptlib.lib(rng.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(rng.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
36 | cryptlib.lib(sha.obj) : warning LNK4099: PDB 'cryptlib.pdb' was not found with 'cryptlib.lib(sha.obj)' or at 'C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\cryptlib.pdb'; linking object as if no debug info
37 | PwnedPasswordsDLL-API.vcxproj -> C:\Users\jacko\OneDrive\Documents\Personal\IT\Programming\Programs\Pwned Passwords\Pwned Passwords DLL V2\PwnedPasswordsDLL-API-master\x64\Release\PwnedPasswordsDLL-API.dll
38 |
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPasswordsDLL-API.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPasswordsDLL-API.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/PwnedPasswordsDLL-API.pch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/PwnedPasswordsDLL-API.pch
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/dllmain.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/dllmain.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/stdafx.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/stdafx.obj
--------------------------------------------------------------------------------
/PwnedPasswordsDLL-API/x64/Release/vc141.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/PwnedPasswordsDLL-API/x64/Release/vc141.pdb
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | PwnedPasswordsDLL is a DLL that allows password requests through any form of Active Directory integration to be checked against over 500 million previously breached passwords using Troy Hunt's Pwned Passwords API and k-Anonymity.
4 |
5 | Check out https://jacksonvd.com/checking-for-breached-passwords-ad-using-k-anonymity/ for more information on the background of the tool.
6 |
7 | # Compiling the Code (Visual Studio)
8 |
9 | 1. Download the PwnedPasswordsDLL-API source from here
10 | 2. Download Crypto++ from the following link (https://www.cryptopp.com/#download)
11 | 3. Build Crypto++ as a library in x64 mode – the following link is a good resource on compiling it for use in Visual Studio (http://programmingknowledgeblog.blogspot.com.au/2013/04/compiling-and-integrating-crypto-into.html)
12 | 4. Include the Crypto++ header directories through Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties –> VC++ Directories. Edit the Include Directories and add the include directory
13 | 5. Then, edit the Library Directories and add the Debug directory from the x64\Output directory.
14 | 6. Add cryptlib.lib to your Additional Dependencies list under Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties -> Linker –>Input –> Additional Dependencies
15 | 7. Build libCurl as a library in x64 mode – this is a great resource from Github that will build libcurl on Windows (https://github.com/blackrosezy/build-libcurl-windows)
16 | 8. Include the libCurl header directories through Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties –> VC++ Directories.
17 | 9. Edit the Include Directories and add the include directory
18 | 10. Then, edit the Library Directories and add the relevant libCurl library directory.
19 | 11. Add libcurl_a.lib to your Additional Dependencies list under Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties –> Linker –>Input –> Additional Dependencies
20 | 12. Add CURL_STATICLIB to your Preprocessor Definitions under Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties –> C/C++ -> Preprocessor
21 | 13. Change Runtime Library to Multi-threaded Debug (/MTd) under Project –> PwnedPasswordsDLL-API Properties –> Configuration Properties –> C/C++ –> Code Generation
22 | 14. All that’s left now is to Build and then test out the DLL!
23 |
24 | # Implementing the DLL
25 |
26 | The implementation of the DLL is the easy part - just download or build the DLL, place it in system32 and add a registry key!
27 |
28 | Note: These instructions need to be followed on all Domain Controllers in the domain if you wish to implement this for Active Directory, as any of them may end up servicing a password change request.
29 |
30 | 1. Download or build the DLL
31 | 2. The DLL itself needs to be placed in your system root directory (generally C:\Windows\System32).
32 | 3. The DLL name needs to be added to the multi-string “Notification Packages” registry subkey under HKLM\System\CurrentControlSet\Control\LSA – note that you only need to add the name of the DLL, not including the file extension.
33 | 4. To ensure that the DLL works alongside your Group Policy password filtering settings, ensure that the Passwords must meet complexity requirements policy setting is enabled through your relevant GPO(s).
34 | 5. Reboot the DC(s). Any password change request should now be filtered through the DLL.
35 |
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.dll
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.exp
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.iobj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.iobj
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.ipdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.ipdb
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.lib
--------------------------------------------------------------------------------
/x64/Release/PwnedPasswordsDLL-API.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JacksonVD/PwnedPasswordsDLL-API/f9dfcf564ad1aa6981a6548b1db6a8a57af5a887/x64/Release/PwnedPasswordsDLL-API.pdb
--------------------------------------------------------------------------------