بالنسبة للتوضيح, فسأحاول. أما المثال فأرجو أن تلتمس لي 70 عذرا.
تعلم أن المعلومات الرقمية أيا كان نوعها (نص, صورة, ملف...) يمكن اختزالها إلى جملة بسيطة مكونة من 32 حرفا/رقما, بحيث تكون هته الجملة (أو ما يسمى في العلم التشفير
بالهاش) ثابثة في الطول مهما كان طول النص أو الملف الأصلي و بالمقابل فهي تختلف جذريا باختلاف مهما كان طفيفا في النص أو الملف الأصلي. مع العلم أن الرجوع من الهاش إلى النص/الملف الأصلي مستحيل (لنقل مبدئا "مستحيل" فبحسب المقال على ويكيبيديا فإنه تم التوصل إلى اختراق بعض أول كل دوال الهاش).
حسنا, لنعد إلى حديثنا : إذا أنت قمت بحفظ الهاش الخاص بالسرال الذي تولده لبرنامجك و الخاص بجهاز معين, تحفظه ضمن قاعدة بيانات العميل صاحب الجهاز, فسأدعك تخمن الباقي.
هذا و لنقل أنك لم تشفر قاعدة البيانات أو حتى لم تحمها بكلمة المرور.
طبعا فيجب أن تقوم بحساب الهاش عند كل تشغيل للبرنامج و تقارنه بالمحفوظ في قاعدة البيانات.
هذا ما خطر ببالي في هذه العجالة و الله هو الموفق للبِر و الخير.
و لإثراء الموضوع أضيف أني أذكر -إذا لم تخني ذاكرتي الضعيفة- أن فريق عمل محرك قواعد البيانات MySQL يقومون بحفظ هاش كلمات المرور في ملف نص واضح للعلن و مخزن ضمن مجلد البرنامج.
هذه نقطة.
النقطة الأخرى, أن دوال التشفير منتشرة بالمنتدى. فبحث بسيط يدلك عليها.
النقطة الأخيرة, أن تشفير قاعدة البيانات بإحدى دوال التشفير أو أكثر يزيد من سرية و أمان السريال. و لكن تبقى نقطة الإرتكاز أضعف بكثير (أقصد بنقطة الإرتكاز : استعمال أداة الشرط if عند المقارنة).
وفقنا الله و إياكم لما فيه سداد الرأي و تمام العقل.
إقتباس :في بعض الأحيان نفس الزبون يطلب منك أن تثبي له البرنامج في جهازين مختلفين (من غير شبكة) ،
حيث يستطيع أن يقوم بنقل البيانات من جهازه الأول إلى جهازه الثاني بغرض مراقبة البيانات و الاطلاع عليها في حاية سفره.
اعمل قاعدتين الاولى خاصة بتفعيل البرنامح وحفظ اعداداته ..
والثانية للاحدات التي تطرأ على البرنامج ... events
وفي حالتك يمكن نقل قاعدة الثانية فقط او مشاركتها الخ ...
يبفى كل شيئ وارد ..
احيانا طلبات الزبون تكون محرجة وتتنافي مع الاسسس والقواعد المعمول بها
الا ان هذه الطلبات تستهويني كي اجد لها حلول ...
(04-11-2016, 12:13 AM)Mr.DOS كتب : [ -> ]اعمل قاعدتين الاولى خاصة بتفعيل البرنامح وحفظ اعداداته ..
والثانية للاحدات التي تطرأ على البرنامج ... events
وفي حالتك يمكن نقل قاعدة الثانية فقط او مشاركتها الخ ...
يبفى كل شيئ وارد ..
احيانا طلبات الزبون تكون محرجة وتتنافي مع الاسسس والقواعد المعمول بها
الا ان هذه الطلبات تستهويني كي اجد لها حلول ...
فعلا هذا ما كنت أفكر فيه (أي قاعدتين للبرنامجي).
بالمناسبة ، ما العيب في حفظ المعلومات (أقصد معلومات الحماية) في ملف ثنائي Binary File أقوم بحفظه في مجلد System32 ؟
سلام عليكم
إقتباس :بالمناسبة ، ما العيب في حفظ المعلومات (أقصد معلومات الحماية) في ملف ثنائي Binary File أقوم بحفظه في مجلد System32 ؟
عن نفسي لم اجرب binary file
لكن يبدو من السهل التعرف عليه وقراءته بعد مشاهدة بعض الامثلة التي تتكلم عن binary file to string
بعض الامثلة تستطيع من خلاله القراءة ... الخ يكفي معرفة اسم الملف ومكان تواجده على القرص
كود :
procedure TForm1.Button1Click(Sender
: TObject);
var
StStream: TStringStream;
FStream: TFileStream;
s: string;
begin
FStream := TFileStream.Create('d:\test.exe', fmOpenRead);
StStream := TStringStream.Create('');
try
StStream.CopyFrom(FStream, FStream.Size);
s := StStream.DataString;
if Pos('this', s) > 0 then
ShowMessage('Found');
finally
StStream.Free;
FStream.Free;
end;
end;
مثال 2
كود :
function File2String(FileName: string): string;
var
MyStream: TFileStream;
MyString: string;
begin
MyStream := TFileStream.Create(FileName, fmOpenRead
or fmShareDenyNone);
try
MyStream.Position := 0;
SetLength(MyString, MyStream.Size);
MyStream.ReadBuffer(Pointer(MyString)^, MyStream.Size);
finally
MyStream.Free;
end;
Result := MyString;
end;
مثال 3
كود :
var
f : file;
s : string;
begin
AssignFile(f, 'D:\cpuspeed.txt');
FileMode := fmOpenRead;
reset(f, 1);
SetLength(s, FileSize(f));
BlockRead(f, s[1], length(s));
CloseFile(f);
ShowMessage(s);
end;
السلام عليكم ورحمة الله
مادام الزبون يريد ان يتنقل بالبرنامج من جهاز لاخر لما لا يكون بسريال الرام ديسك اي فلاش ديسك ؟ هل يصلح ؟
غير ان احسن فكرة للتنقل هي الدونقل لانه واحد يستطيع ان يصله باي جهاز
لست ادري كيف كيف تكون الحماية بالدونقل رغم ان لدي اكثر من 10 برامج للهواتف تعمل بالدونقل
شركة GPG هي من يقوم عموما بصناعة هته الدونقلات وهي قوية في هذا المجال
السلام عليكم ورحمة الله وبركاته ،
سؤالين فقط :
1- هل الدونقل يباع عندنا في الجزائر ؟ و إذا كان من الممكن إعطاء ثمنه؟
2- إذن الحماية لا تخرج عن الشرط If ... Then ...Else ؟
نعم يباع ولا ادري ما ثمنه الان، منذ حوالي 8 سنوات كان ثمنه ما يزيد قليلا عن ثلاث الاف دينار لكن الان المنتجات الصينة متوفرة باثمان اقل بكثير
ان كنت تتحقق من وجود الDongle فقط فهنا نعم هي مجرد if then
الDongle يسمح للك بكتابة قيم به، ولتكن شيئ حساس لبرنامجك
وهناك لن يعمل جزء من برنامجك بالشكل الصحيح دون تلك القيمة
من الجهة الاخرى هناك برامج packet sniffer لتحليل ما يتم من محادثة بين البرنامج والDongle
وهناك ايضا برامج dongle emulator تحاكي وجود الDongle...
يعني باختصار ركز أكثر على تطوير برنامجك واضافة خصائص جديدة...
وعليكم السلام ورحمة الله وبركاته
التي تباع هنا تباع مع برامجها ، اي ان اصحابها برمجوا برامج وسوقتها شركة GPG بدنقلات من صنعها ، الدنقل قوي في الحماية لكن للاسف لم تسلم برامجه من القرصة فيصبح البرنامج يعمل من دون دنقل
![[صورة: sad.png]](http://delphi4arab.net/forum/images/icons/sad.png)
يمكنك الاتصال بهم ان كان لك كمية معتبرة او توصية من يتسوقون للصين لياتيك بكمية قليلة تجرب عليها ، لدي اخ يتسوق احيانا للصين وبعض الاصدقاء يتسوقون وهذا عملهم مع شركة GPG يمكنني تزويدك بارقاهم او ان اتصل لك بهم فيزودوك بالتفاصيل
كود :
http://www.gpgindustries.com/
هم يبعدون عنك 20 كلم فقط
نسيت ان اقول لك ان اصحاب هته البرامج اكبر حماية لهم هي التحديثات الكثيرة ولا يعطوها مرة واحدة
اي اذا وجد حلا ل 20 هاتفا جديد فيحدثو برنامجهم 5 هواتف عل شهرين مثلا اي حاول ان تضيف في كل مرة ميزة هامة جدا وليس في مرة واحدة
وما زلت انتظر منك موضوع الحماية في ملف ثنائي
