瀏覽代碼

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 年之前
父節點
當前提交
725f88fa6f
共有 1 個檔案被更改,包括 40 行新增0 行删除
  1. +40
    -0
      main.cpp

+ 40
- 0
main.cpp 查看文件

@@ -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…
取消
儲存