slax Posted August 8, 2009 Posted August 8, 2009 Hello Everybody, I need to call a API Function called CredEnumerate. It is used to enumerate the credentials of the current user. I have read that this function belongs to advapi32.dll but everythime I try to call it, autoit crashes. I found this page that explains the function's parameters: http://msdn.microsoft.com/en-us/library/aa374794(VS.85).aspx If anybody has a idea about how to call this function, please answer. Thanks in advance
Authenticity Posted August 8, 2009 Posted August 8, 2009 Func _CredEnumerate($sFilter, $iFlags) Local $aResult $aResult = DllCall('advapi32.dll', 'int', 'CredEnumerateW', 'wstr', $sFilter, 'uint', $iFlags, 'uint*', '', 'int*', '') If @error Or ($aResult[0] = 0) Then ConsoleWrite('Error: ' & @error & @TAB & 'Extended: ' & @extended & @CRLF) ConsoleWrite(_WinAPI_GetLastError() & @CRLF) Return SetError(1) EndIf ConsoleWrite($aResult[0] & @TAB & $aResult[3] & @TAB & $aResult[4] & @CRLF) If $aResult[3] > 0 Then _ DllCall('advapi32.dll', 'none', 'CredFree', 'ptr', $aResult[4]) EndFunc It should be something like this, I can't test it because cred enumeration flag is not supported in Windows XP. If you can enumerate successfully, the return pointer should point to an array of CREDENTIAL (still, not sure I wrote it correctly: Global Const $tagCREDENTIAL_ATTRIBUTE = _ 'ptr Keyword;' & _ 'dword Flags;' & _ 'dword ValueSize;' & _ 'ptr Value;' Global Const $tagCREDENTIAL = _ 'dword Flags;' & _ 'dword Type;' & _ 'ptr TargetName;' & _ 'ptr Comment;' & _ $tagFILETIME & ';' & _ 'dword CredentialBlobSize;' & _ 'ptr CredentialBlob;' & _ 'dword Persist;' & _ 'dword AttributeCount;' & _ 'ptr Attributes;' & _ 'ptr TargetAlias;' & _ 'ptr UserName;' Use can build a string concatenation of $tagCREDENTIAL $aResult[3] times (if greater than zero) and call DllStructCreate(), specifying this string as the first parameter, and $aResult[4], the pointer as the second parameter. Not tested.
slax Posted August 8, 2009 Author Posted August 8, 2009 Thank you Authenticity. You were really helpful. I will try to use your ideas and definetely post the results.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now