حماية البرنامج
#1
السلام عليكم
لقد اكملت برنامجي بعد تعب استمر لعدة شهور والان عندي مشكلة وهي حماية البرنامج ,كيف استطيع ان اجعل البرنامج يعمل على حاسوب واحد فقط اي اذا تم نسخه الى حاسوب اخر فلن يعمل البرنامج ,طبعا انا اعلم ان حماية البرنامج بشكل 100% غير ممكن فكما يقال (كل برنامج قابل للتنفيذ قابل للكسر)كل ما اريده هو ان يكون اصعب للكسر
الرد
#2
يمكمك استعمال رقم السيريال للهارد ديسك وهذا الاجراء مع الخبراء يمكن كسره فلا برنامج يمكن حمايته
[-] كل من 1 user says قال شكرا ل bouh25 على المشاركة المفيدة
  • احمد العراقي
الرد
#3

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

يمكن التحقق من رقم الMAC address لكرت الشبكة
يمكن استخدام حمايات تجارية...
تصفح مواضيع قسم الامن و تحليل التطبيقات البرمجية
http://delphi4arab.net/forum/forumdisplay.php?fid=31
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل B.M.AbdelAziZ على المشاركة المفيدة
  • احمد العراقي
الرد
#4
(11-12-2019, 12:08 PM)bouh25 كتب : يمكمك استعمال رقم السيريال للهارد ديسك وهذا الاجراء مع الخبراء يمكن كسره فلا برنامج يمكن حمايته
لا مانع اذا كان الخبراء يستطيعون كسره المهم صغار الكراكرز لا يستطيعون كسره 
طيب ممكن ايضاح كيف يمكن ذلك ؟؟؟
الرد
#5
اليك هذه المكتبة لمعرفة السيريال للرقم التسلسلي للديسك hdd

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


الملفات المرفقة
.rar   hddinfo.rar (الحجم : 255.15 KB / التحميلات : 24)
الرد
#6
عن خبرة في حماية مشاريع VBA اكسس .. طبعا لا أنصحك بأستخدام سريال بارتيشن الهارد لانه يتغير بعد فرمات 
بعد بحث استغرق أكثر من نصف سنه أنصحك بأستخدام UUID أبحث عن طريقة أستخراجة من الجهاز 

فهو أفضل من الهارد والمعالج والماذربورد .. 
وأفضل من رقم الماك ادرس الذي يسبب مشاكل أذا كان العميل مثبت لدية النظام الوهمي وكذلك يتطلب اتصال مع الشبكة
[-] كل من 1 user says قال شكرا ل qathi على المشاركة المفيدة
  • احمد العراقي
الرد
#7
(12-12-2019, 10:10 AM)qathi كتب : عن خبرة في حماية مشاريع VBA اكسس .. طبعا لا أنصحك بأستخدام سريال بارتيشن الهارد لانه يتغير بعد فرمات 
بعد بحث استغرق أكثر من نصف سنه أنصحك بأستخدام UUID أبحث عن طريقة أستخراجة من الجهاز 

فهو أفضل من الهارد والمعالج والماذربورد .. 
وأفضل من رقم الماك ادرس الذي يسبب مشاكل أذا كان العميل مثبت لدية النظام الوهمي وكذلك يتطلب اتصال مع الشبكة
شكرا على المساعدة ولكن ماهو UUID فانا لم اسمع به من قبل ياليت لو يكون هناك شرح او كود او ماشابه
الرد
#8
شكرا على المساعدة ولكن ماهو 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


أما أستخراجة عبر دلفي فلا اعرف حاليا
الرد
#9
<p><a href="https://github.com/graemeg/onguard">TurboPower OnGuard</a><br></p>
من قال حاد عن أصله أو قال مات فقد كذب
[-] كل من 1 user says قال شكرا ل h-farid على المشاركة المفيدة
  • أبو معاذ
الرد
#10
(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;
  FWbemObjectSetOLEVariant;
  FWbemObject  OLEVariant;
  oEnum        IEnumvariant;
  iValue        LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService  := FSWbemLocator.ConnectServer(WbemComputer'root\CIMV2'WbemUserWbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('Select * from Win32_ComputerSystemProduct','WQL',wbemFlagForwardOnly);
  oEnum        := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1FWbemObjectiValue) = 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
[-] كل من 2 users say قال شكرا ل onexite على المشاركة المفيدة
  • bassem_43, أبو معاذ
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف