Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Code bảo vệ Prosses | error C2664: 'CreateProcessA' : cannot convert parameter

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    328

    Mặc định Code bảo vệ Prosses | error C2664: 'CreateProcessA' : cannot convert parameter

    Visual C++ Code:
    1. #include "stdafx.h"
    2.  
    3.  #include <windows.h>
    4.  #include <stdio.h>
    5.  #include <aclapi.h>
    6.  
    7.  BOOL CreateProtectedProcess(
    8.  LPCTSTR lpApplicationName,                 // name of executable module
    9.  LPTSTR lpCommandLine,                      // command line string  
    10.  DWORD dwCreationFlags                      // creation flags
    11.  );
    12.  
    13.  int APIENTRY WinMain(HINSTANCE hInstance,
    14.                      HINSTANCE hPrevInstance,
    15.                      LPSTR     lpCmdLine,
    16.                      int       nCmdShow)
    17.  {
    18.  CreateProtectedProcess("c:\winnt\system32\calc.exe",           NULL, 0 );
    19.  return 0;
    20.  }
    21.  
    22.  BOOL CreateProtectedProcess(
    23.  LPCTSTR lpApplicationName,                 // name of executable module
    24.  LPTSTR lpCommandLine,                      // command line string  
    25.  DWORD dwCreationFlags                      // creation flags
    26.  )
    27.  {
    28.  DWORD dwRes;
    29.  PSID pEveryoneSID = NULL, pAdminSID = NULL;
    30.  PACL pACL = NULL;
    31.  PSECURITY_DESCRIPTOR pSD = NULL;
    32.  EXPLICIT_ACCESS ea[2];
    33.  SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
    34.  SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY;
    35.  SECURITY_ATTRIBUTES sa;
    36.  
    37.  // Create a well-known SID for the Everyone group.
    38.  
    39.  if(! AllocateAndInitializeSid( &SIDAuthWorld, 1,
    40.                  SECURITY_WORLD_RID,
    41.                  0, 0, 0, 0, 0, 0, 0,
    42.                  &pEveryoneSID) )
    43.  {    
    44.   return FALSE;
    45.  }
    46.  
    47.  // Initialize an EXPLICIT_ACCESS structure for an ACE.
    48.  // The ACE will allow Everyone read access to the object.
    49.  
    50.  ZeroMemory(&ea, 2 * sizeof(EXPLICIT_ACCESS));
    51.  ea[0].grfAccessPermissions = GENERIC_READ;
    52.  ea[0].grfAccessMode = DENY_ACCESS;
    53.  ea[0].grfInheritance= NO_INHERITANCE;
    54.  ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID;
    55.  ea[0].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
    56.  ea[0].Trustee.ptstrName  = (LPTSTR) pEveryoneSID;
    57.  
    58.  // Create a SID for the BUILTIN\Administrators group.
    59.  
    60.  if(! AllocateAndInitializeSid( &SIDAuthNT, 2,
    61.                  SECURITY_BUILTIN_DOMAIN_RID,
    62.                  DOMAIN_ALIAS_RID_ADMINS,
    63.                  0, 0, 0, 0, 0, 0,
    64.                  &pAdminSID) )
    65.  {    
    66.   goto Cleanup;
    67.  }
    68.  
    69.  // Initialize an EXPLICIT_ACCESS structure for an ACE.
    70.  // The ACE will allow the Administrators group full access to the key.
    71.  
    72.  ea[1].grfAccessPermissions = GENERIC_READ;
    73.  ea[1].grfAccessMode = DENY_ACCESS;
    74.  ea[1].grfInheritance= NO_INHERITANCE;
    75.  ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID;
    76.  ea[1].Trustee.TrusteeType = TRUSTEE_IS_GROUP;
    77.  ea[1].Trustee.ptstrName  = (LPTSTR) pAdminSID;
    78.  
    79.  // Create a new ACL that contains the new ACEs.
    80.  
    81.  dwRes = SetEntriesInAcl(2, ea, NULL, &pACL);
    82.  if (ERROR_SUCCESS != dwRes)
    83.  {    
    84.   goto Cleanup;
    85.  }
    86.  
    87.  // Initialize a security descriptor.  
    88.  
    89.  pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
    90.                          SECURITY_DESCRIPTOR_MIN_LENGTH);
    91.  if (pSD == NULL)
    92.  {    
    93.   goto Cleanup;
    94.  }
    95.  
    96.  if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION))
    97.  {      
    98.   goto Cleanup;
    99.  }
    100.  
    101.  // Add the ACL to the security descriptor.
    102.  
    103.  if (!SetSecurityDescriptorDacl(pSD, TRUE,     // fDaclPresent flag  
    104.    pACL, FALSE))   // not a default DACL
    105.  {      
    106.   goto Cleanup;
    107.  }
    108.  
    109.  // Initialize a security attributes structure.
    110.  
    111.  sa.nLength = sizeof (SECURITY_ATTRIBUTES);
    112.  sa.lpSecurityDescriptor = pSD;
    113.  sa.bInheritHandle = FALSE;
    114.  
    115.  // Use the security attributes to set the security descriptor
    116.  // when you create a key.
    117.  
    118.  PROCESS_INFORMATION pi;
    119.  STARTUPINFO si;
    120.  memset(π,0,sizeof(pi));
    121.  memset(&si,0,sizeof(si));
    122.  si.cb = sizeof(si);
    123.  si.wShowWindow = SW_SHOW;
    124.  
    125.  CreateProcess(lpApplicationName,lpCommandLine, &sa,  &sa,dwCreationFlags,0,0,0,&si,π);
    126.  
    127.  // clean up data
    128.  Cleanup:
    129.  
    130.     if (pEveryoneSID)     FreeSid(pEveryoneSID);
    131.     if (pAdminSID)         FreeSid(pAdminSID);
    132.     if (pACL)         LocalFree(pACL);
    133.     if (pSD)         LocalFree(pSD);
    134.    
    135.  return TRUE;
    136.  
    137.  }
    mình có lên mạng và kiếm được mã con này nhưng không hiểu sao khi dịch thì phát sinh ra 1 lỗi,anh em xem hộ mình với


    Output Code:
    1. --------------------Configuration: ma bao ve - Win32 Debug--------------------
    2. Compiling...
    3. sdg.cpp
    4. C:\VC\ma bao ve\sdg.cpp(126) : error C2664: 'CreateProcessA' : cannot convert parameter 10 from 'struct _iobuf *' to 'struct _PROCESS_INFORMATION *'
    5.         Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    6. Error executing cl.exe.
    7.  
    8. ma bao ve.exe - 1 error(s), 0 warning(s)
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Bảo vệ process - code hoàn chỉnh

    Mình đã sửa lại chạy được rồi :

    C++ Code:
    1. #include "stdafx.h"
    2. #include <windows.h>
    3. #include <stdio.h>
    4. #include <aclapi.h>
    5.  
    6. BOOL CreateProtectedProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,DWORD dwCreationFlags);
    7.  
    8. int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    9. {
    10.     CreateProtectedProcess("c:\\windows\\system32\\calc.exe",NULL,0);
    11.     return 0;
    12. }
    13.  
    14. BOOL CreateProtectedProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,DWORD dwCreationFlags)
    15. {
    16.     DWORD dwRes;
    17.     PSID pEveryoneSID = NULL, pAdminSID = NULL;
    18.     PACL pACL = NULL;
    19.     PSECURITY_DESCRIPTOR pSD = NULL;
    20.     EXPLICIT_ACCESS ea[2];
    21.     SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
    22.     SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY;
    23.     SECURITY_ATTRIBUTES sa;
    24.  
    25.     // Create a well-known SID for the Everyone group.
    26.  
    27.     if(! AllocateAndInitializeSid( &SIDAuthWorld, 1,SECURITY_WORLD_RID,0, 0, 0, 0, 0, 0, 0,&pEveryoneSID))
    28.     {    
    29.         return FALSE;
    30.     }
    31.  
    32.     // Initialize an EXPLICIT_ACCESS structure for an ACE.
    33.     // The ACE will allow Everyone read access to the object.
    34.  
    35.     ZeroMemory(&ea, 2 * sizeof(EXPLICIT_ACCESS));
    36.     ea[0].grfAccessPermissions = GENERIC_READ;
    37.     ea[0].grfAccessMode = DENY_ACCESS;
    38.     ea[0].grfInheritance= NO_INHERITANCE;
    39.     ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID;
    40.     ea[0].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
    41.     ea[0].Trustee.ptstrName  = (LPTSTR) pEveryoneSID;
    42.  
    43.     // Create a SID for the BUILTIN\Administrators group.
    44.  
    45.     if(! AllocateAndInitializeSid( &SIDAuthNT, 2,SECURITY_BUILTIN_DOMAIN_RID,DOMAIN_ALIAS_RID_ADMINS,0, 0, 0, 0, 0, 0&pAdminSID) )
    46.     {    
    47.         goto Cleanup;
    48.     }
    49.  
    50.     // Initialize an EXPLICIT_ACCESS structure for an ACE.
    51.     // The ACE will allow the Administrators group full access to the key.
    52.  
    53.     ea[1].grfAccessPermissions = GENERIC_READ;
    54.     ea[1].grfAccessMode = DENY_ACCESS;
    55.     ea[1].grfInheritance= NO_INHERITANCE;
    56.     ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID;
    57.     ea[1].Trustee.TrusteeType = TRUSTEE_IS_GROUP;
    58.     ea[1].Trustee.ptstrName  = (LPTSTR) pAdminSID;
    59.  
    60.     // Create a new ACL that contains the new ACEs.
    61.  
    62.     dwRes = SetEntriesInAcl(2, ea, NULL, &pACL);
    63.     if (ERROR_SUCCESS != dwRes)
    64.     {    
    65.         goto Cleanup;
    66.     }
    67.  
    68.     // Initialize a security descriptor.  
    69.  
    70.     pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
    71.     SECURITY_DESCRIPTOR_MIN_LENGTH);
    72.     if (pSD == NULL)
    73.     {    
    74.         goto Cleanup;
    75.     }
    76.  
    77.     if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION))
    78.     {      
    79.         goto Cleanup;
    80.     }
    81.  
    82.     // Add the ACL to the security descriptor.
    83.  
    84.     if (!SetSecurityDescriptorDacl(pSD, TRUE,   pACL, FALSE))   // not a default DACL
    85.     {      
    86.         goto Cleanup;
    87.     }
    88.  
    89.     // Initialize a security attributes structure.
    90.  
    91.     sa.nLength = sizeof (SECURITY_ATTRIBUTES);
    92.     sa.lpSecurityDescriptor = pSD;
    93.     sa.bInheritHandle = FALSE;
    94.  
    95.     // Use the security attributes to set the security descriptor
    96.     // when you create a key.
    97.  
    98.     PROCESS_INFORMATION pi;
    99.     STARTUPINFO si;
    100.     memset((void*)&pi,0,sizeof(pi));
    101.     memset((void*)&si,0,sizeof(si));
    102.     si.cb = sizeof(si);
    103.     si.wShowWindow = SW_SHOW;
    104.  
    105.     CreateProcess(lpApplicationName,lpCommandLine, &sa,  &sa,dwCreationFlags,0,0,0,&si,&pi);
    106.  
    107.     // clean up data
    108.     Cleanup:
    109.  
    110.     if (pEveryoneSID) FreeSid(pEveryoneSID);
    111.     if (pAdminSID)FreeSid(pAdminSID);
    112.     if (pACL) LocalFree(pACL);
    113.     if (pSD) LocalFree(pSD);
    114.  
    115.     return TRUE;
    116.  
    117. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Lỗi Failed to convert parameter value from a String to a Int32.
    Gửi bởi chungnam098 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 19-10-2012, 10:36 AM
  2. Giải quyết lỗi C2664: 'cannot convert parameter 1 from 'char' to 'time_t *' như thế nào ?
    Gửi bởi phuongvan trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 27-09-2012, 11:44 AM
  3. Cách khác phục lỗi 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'?
    Gửi bởi nasural trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 03-03-2012, 09:11 AM
  4. Cho hỏi lỗi cannot convert parameter 3 from 'WORD *' to 'LPCWSTR'
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 6
    Bài viết cuối: 27-08-2010, 04:05 AM
  5. C2664: 'Diem::khoangCach' : cannot convert parameter 1 from 'Diem' to 'Diem'
    Gửi bởi kqphu trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 14-07-2010, 07:48 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn