delphi4arab منتديات دلفي للعرب
حماية البرنامج - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : حماية البرنامج (/showthread.php?tid=10578)



حماية البرنامج - احمد العراقي - 11-12-2019

السلام عليكم
لقد اكملت برنامجي بعد تعب استمر لعدة شهور والان عندي مشكلة وهي حماية البرنامج ,كيف استطيع ان اجعل البرنامج يعمل على حاسوب واحد فقط اي اذا تم نسخه الى حاسوب اخر فلن يعمل البرنامج ,طبعا انا اعلم ان حماية البرنامج بشكل 100% غير ممكن فكما يقال (كل برنامج قابل للتنفيذ قابل للكسر)كل ما اريده هو ان يكون اصعب للكسر


RE: حماية البرنامج - bouh25 - 11-12-2019

يمكمك استعمال رقم السيريال للهارد ديسك وهذا الاجراء مع الخبراء يمكن كسره فلا برنامج يمكن حمايته


RE: حماية البرنامج - محمد عبد العزيز - 11-12-2019


وعليكم السلام ورحمة الله

يمكن التحقق من رقم الMAC address لكرت الشبكة
يمكن استخدام حمايات تجارية...
تصفح مواضيع قسم الامن و تحليل التطبيقات البرمجية
http://delphi4arab.net/forum/forumdisplay.php?fid=31



RE: حماية البرنامج - احمد العراقي - 12-12-2019

(11-12-2019, 12:08 PM)bouh25 كتب : يمكمك استعمال رقم السيريال للهارد ديسك وهذا الاجراء مع الخبراء يمكن كسره فلا برنامج يمكن حمايته
لا مانع اذا كان الخبراء يستطيعون كسره المهم صغار الكراكرز لا يستطيعون كسره 
طيب ممكن ايضاح كيف يمكن ذلك ؟؟؟


RE: حماية البرنامج - bouh25 - 12-12-2019

اليك هذه المكتبة لمعرفة السيريال للرقم التسلسلي للديسك hdd

[size=small][size=small]اليك هذه المكتبة لمعرفة السيريال للرقم التسلسلي للديسك hdd[/size]
[/size]



RE: حماية البرنامج - qathi - 12-12-2019

عن خبرة في حماية مشاريع VBA اكسس .. طبعا لا أنصحك بأستخدام سريال بارتيشن الهارد لانه يتغير بعد فرمات 
بعد بحث استغرق أكثر من نصف سنه أنصحك بأستخدام UUID أبحث عن طريقة أستخراجة من الجهاز 

فهو أفضل من الهارد والمعالج والماذربورد .. 
وأفضل من رقم الماك ادرس الذي يسبب مشاكل أذا كان العميل مثبت لدية النظام الوهمي وكذلك يتطلب اتصال مع الشبكة


RE: حماية البرنامج - احمد العراقي - 12-12-2019

(12-12-2019, 10:10 AM)qathi كتب : عن خبرة في حماية مشاريع VBA اكسس .. طبعا لا أنصحك بأستخدام سريال بارتيشن الهارد لانه يتغير بعد فرمات 
بعد بحث استغرق أكثر من نصف سنه أنصحك بأستخدام UUID أبحث عن طريقة أستخراجة من الجهاز 

فهو أفضل من الهارد والمعالج والماذربورد .. 
وأفضل من رقم الماك ادرس الذي يسبب مشاكل أذا كان العميل مثبت لدية النظام الوهمي وكذلك يتطلب اتصال مع الشبكة
شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه


RE: حماية البرنامج - qathi - 12-12-2019

شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه
[/quote]

(12-12-2019, 02:25 PM)qathi كتب : شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه
[/quote]

أخي هذا رقم طويل مكون من ارقام وأحرف 

يمكنك البحث في جوجل عن هذا كود من مصادر دلفي

حاليا لدي كود VBA لاستخراج الرقم وهو:

كود :
'--------------- Universally Unique Identification Number (UUID) --------------------- Public Function GetUUID() On Error Resume Next Dim strComputer As String Dim objWMIService, colItems, objItem     strComputer = "."     Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")     Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48)         For Each objItem In colItems                 GetUUID = objItem.UUID     Next End Function


أما أستخراجة عبر دلفي فلا اعرف حاليا


RE: حماية البرنامج - h-farid - 12-12-2019

<p><a href="https://github.com/graemeg/onguard">TurboPower OnGuard</a><br></p>


RE: حماية البرنامج - onexite - 13-12-2019

(12-12-2019, 02:25 PM)qathi كتب : شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه

(12-12-2019, 02:25 PM)qathi كتب : شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه
[/quote]



أخي هذا رقم طويل مكون من ارقام وأحرف 



يمكنك البحث في جوجل عن هذا كود من مصادر دلفي



حاليا لدي كود VBA لاستخراج الرقم وهو:



كود :
'--------------- Universally Unique Identification Number (UUID) --------------------- Public Function GetUUID() On Error Resume Next Dim strComputer As String Dim objWMIService, colItems, objItem     strComputer = "."     Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")     Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48)         For Each objItem In colItems                 GetUUID = objItem.UUID     Next End Function




أما أستخراجة عبر دلفي فلا اعرف حاليا

[/quote]
PHP كود :
program GetWMI_Info;

{
$APPTYPE CONSOLE}

uses
  SysUtils
,
  ActiveX,
  ComObj,
  Variants;


procedure  GetCIM_ConfigurationInfo;
const
  WbemUser            ='';
  WbemPassword        ='';
  WbemComputer        ='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService  : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject  : OLEVariant;
  oEnum        : IEnumvariant;
  iValue        : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService  := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('Select * from Win32_ComputerSystemProduct','WQL',wbemFlagForwardOnly);
  oEnum        := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    Writeln
(Format('UUID        %s',[String(FWbemObject.UUID)]));// String
  // Writeln(Format('Description    %s',[String(FWbemObject.Description)]));// String

    Writeln('');
    FWbemObject:=Unassigned;
  end;
end;


begin
 
try
    CoInitialize(nil);
    try
      GetCIM_ConfigurationInfo;
    finally
      CoUninitialize;
    end;
 
except
    on E
:EOleException do
        Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        Writeln(E.Classname, ':', E.Message);
 
end;
 
Writeln('Press Enter to exit');
 
Readln;
end.