Foksh قام بنشر منذ 17 ساعات قام بنشر منذ 17 ساعات أخواني وأساتذتي ومعلمينا ( دون استثناء ) أدعوكم لتجربة قيد الإختبار ، بحيث يوجد في قاعدة البيانات الحالية المرفقة جدول باسم Table1 . يحتوي سجلات محمية . وأريد تجربة إن كان بالإمكان استيراد هذه السجلات أو معرفة القيم التي فيها ، و بأي وسيلة أو طريقة تخطر على بال من يحاول التجربة بالتعرف على السجلات . الهدف حماية السجلات من العبث ومنع استيرادها بتاتاً . 1. القاعدة غير محمية بكلمة مرور أو حتى أنها غير محفوظة بصيغة Accde ... 2. ما يهمني هو الطريقة التي تم بها الكشف عن الجدول . وليس النتيجة ذاتها Hide TBL.accdb 1
عمر ضاحى قام بنشر منذ 14 ساعات قام بنشر منذ 14 ساعات 3 ساعات مضت, Foksh said: أخواني وأساتذتي ومعلمينا ( دون استثناء ) أدعوكم لتجربة قيد الإختبار ، بحيث يوجد في قاعدة البيانات الحالية المرفقة جدول باسم Table1 . يحتوي سجلات محمية . وأريد تجربة إن كان بالإمكان استيراد هذه السجلات أو معرفة القيم التي فيها ، و بأي وسيلة أو طريقة تخطر على بال من يحاول التجربة بالتعرف على السجلات . الهدف حماية السجلات من العبث ومنع استيرادها بتاتاً . القاعدة غير محمية بكلمة مرور أو حتى أنها غير محفوظة بصيغة Accde ... Hide TBL.accdb 416 kB · 2 downloads تقصد ان كنت اقدر اعرف البيانات ال فى الجدول المخفي زذ كده ؟ 1
Barna قام بنشر منذ 13 ساعات قام بنشر منذ 13 ساعات 3 ساعات مضت, Foksh said: أدعوكم لتجربة قيد الإختبار 1
Foksh قام بنشر منذ 4 ساعات الكاتب قام بنشر منذ 4 ساعات السادة الأفاضل الكرام ، الأساتذة ( @kanory ، @عمر ضاحى ، @Barna ) الذين ساهموا بمشاركتهم بالتجربة والإفادة بالنتيجة .. بدايةً شكراً لكم لمشاركتكم ، وأعلم أنكم بخبرتكم قادرون على تحقيق المطلوب بشتى السُبل والطـُرق . كانت البداية بأن الملف بصيغة ACCDB ؛ أي أنني تركت لمن يرغب بالمشاركة - باب التجربة مفتوحاً - بأكواد أو استعلامات أو أي طريقة يراها مناسبة لتحقيق المطلوب . 💥 ولكن كمطور فطبعاً لن يتم تسليم أي مشروع لأي عميل بهذا الشكل - الغير محمي - وبالتالي لا بد من حماية وتشفير الملف وتقفيله بعد إتمام المشروع بصيغة ACCDE مع باقي الإحتياط التي يتخذها المصمم والمطور والمبرمج ، صحيح ؟ ☢ وهنا جاءت الفكرة التي رغبت بتجربتها وتنفيذها ، بحيث سيكون التنفيذ والإختبار على ملف مقفل فقط بحفظه بصيغة ACCDE لم أضع كلمة مرور - له - على محرر الأكواد . لذا أرجو منكم الإفادة بالتجربة على نفس الملف ولكن بصيغة ACCDE . مع العلم أن المكون هو جدول واحد و سجل واحد فقط . ولن يهمني كثيراً اسم الجدول بقدر ما يهمني السجل الذي يحتويه الجدول كبيانات كما أرجو أن يتم ذكر الطريقة التي تم بها التعرف على هذا السجل والجدول . ولن أطلب أي أكواد بقدر ما يهمني الطريقة ذاتها . HideTBL V1-32.zip HideTBL V1-64.zip
ابوخليل قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات هل هذا هو المطلوب ؟ اذا نعم .. لا تسألني كيف ظهر .. لا ادري كيف ظهر معي 1
Foksh قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات 5 دقائق مضت, ابوخليل said: لا ادري كيف ظهر معي هو المطلوب بعينه ، ولكن إن لم يكن معلمي لا يدري ، فمن يدري !!! 1
jjafferr قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات السلام عليكم 🙂 ولو اني مشغول لقمة رأسي ومسافر غدا ان شاء الله ، ولكني اردت المشاركة تفاعلا مع اخي ابوخليل 🙂 . وطريقتي: بالاشارة الى موضوعي ، الجزء الاول: واليك الجزء الثاني من الموضوع: 1. عملت ملف اكسس فارغ، وعملت فيه الاستعلام التالي لقراءة جدول MSysObjects برنامجك ، والذي يحتوي على جميع جداول البرنامج : SELECT MSysObjects.* FROM [D:\temp\1642.HideTBL V1-32.accde].MSysObjects ORDER BY MSysObjects.DateUpdate DESC; . والسبب في الفرز التنازلي ، هو لحقل تاريخ تحديث الجداول ، يعني اخر جداول عملت عليها التحديث (فقط علشان سهولة الوصول للجدول المطلوب). وحتى لو ما عملت الفرز ، فكان بإمكاني عمل كود لفحص الجداول فردا فردا 🙂 وحصلت على الجداول التالية: . ومنها جربت الجدول AccessTbl : SELECT AccessTbl.* FROM [D:\temp\1642.HideTBL V1-32.accde].AccessTbl . وحصلت على النتيجة 🙂 جعفر 2
Foksh قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات 15 دقائق مضت, jjafferr said: وحصلت على النتيجة 🙂 ما شاء الله عليك .. أولاً نشكر معلمنا أبو خليل لمشاركته وجعله الحافز الذي أنرت به موضعي المتواضع .. شرح جميل جداً وطريقة مبتكرة أيضاً وجميلة .. سلمت تلك الأنامل والأفكار النيراتِ 1
ابوخليل قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه كلنا نعلم ان ليس هناك حماية مطلقة اقتنعت بهذه المقولة متأخرا كنت الجأ سابقا في حماية برامجي الى طرق قراقوشية لا تخطر على البال .. غرس ملفات في النظام وبيانات خاصة في الريجستري .. وكأني احمي سر القنبلة الكونبة لكني الآن تركت كل ذلك وجعلت مفتاح البرنامج متاحا في ملف تكست ظاهر بجانب قاعدة البيانات .. ملكا لصاحبه .. اما قاعدة الجداول فلم اجد افضل لها من كلمة المرور لحماية البيانات من النسخ ,, وان كانت بعض البيانات شديدة الاهمية لجأت لتشفيرها لحجب قرائتها فيما لو تمكن احد من فك كلمة المرور وتمكن من الدخول الى الجدول . 1 1
Foksh قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه 9 دقائق مضت, ابوخليل said: كلنا نعلم ان ليس هناك حماية مطلقة اقتنعت بهذه المقولة متأخرا كنت الجأ سابقا في حماية برامجي الى طرق قراقوشية لا تخطر على البال .. غرس ملفات في النظام وبيانات خاصة في الريجستري .. وكأني احمي سر القنبلة الكونبة لكني الآن تركت كل ذلك وجعلت مفتاح البرنامج متاحا في ملف تكست ظاهر بجانب قاعدة البيانات .. ملكا لصاحبه .. اما قاعدة الجداول فلم اجد افضل لها من كلمة المرور لحماية البيانات من النسخ ,, وان كانت بعض البيانات شديدة الاهمية لجأت لتشفيرها لحجب قرائتها فيما لو تمكن احد من فك كلمة المرور وتمكن من الدخول الى الجدول . أعلم يقيناً ذلك وبقناعة مطلقة ، إلا أنني .. في أحد المشاريع لبرنامج خاص بمكتب تسهيلات الفيزا لأحد الأصدقاء . كان لي توجه بحيث !!!!! 1. عند تشغيل قاعدة البيانات يتم الإتصال بقاعدة البيانات الخلفية الأساسية . واستخراج قاعدة بيانات خلفية أخرى بنفس الجداول مخفية في مسار داخل الويندوز ( لعدم أهميته لأنه خالي من البيانات ) 2. عند الإغلاق يتم إعادة ربط قاعدة البيانات قبل اغلاقها بقاعدة الجداول الخلفية الوهمية ( التي لا تحتوي على بيانات ) . طبعاً الثغرة واضحة جداً لمن يتمعن إلا أنها كانت متينة عند عدم عمل قاعدة البيانات بأنه لن يجد أي شخص بيانات داخل قاعدة البيانات الخلفية .
منتصر الانسي قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه (معدل) انا طريقتي تختلف عن الاخوان حيث قمت بإظهار الجدول نفسه كما بالصورة وللقيام بذلك قم بتنفيذ الخطوات كالتالي 1- إنسخ الملف تحت القرص D مباشرة (يمكن نسخه إلى أي مكان ولكن هكذا سيكون المسار قصير) 2- إفتح الملف وقم بإنشاء الاستعلام التالي (هذه الخطوة غير مهمة لكم لإني سبق واستخرجت قيمة العمود المطلوب ووضعتها في الكود ولكني ذكرتها للتعرف على الخطوات) SELECT MSysObjects.Flags, MSysObjects.Name, MSysObjects.Type FROM MSysObjects WHERE ( ((MSysObjects.Name) NOT LIKE "MSys*") AND ((MSysObjects.Type) = 1) ); من خلال هذا الاستعلام سنتعرف على أي جدول Type=1 ولايبدأ بالأحرف MSys لتظهر لنا النتيجة كما بالصورة مايهمنا هنا هي قيمة العمود الأول Flags بعد ذلك قم بإغلاق التطبيق بدون حفظ اي شيء 3- إفتح أي قاعدة بيانات أخرى (سواء قاعدة بيانات فارغة أو مستخدمة لايهم) وفي أي وحدة نمطية (جديدة أو فيها اكواد لايهم) والصق فيها الإجراء التالي Sub sbUnHideTables() Dim app As Access.Application Dim wks As Workspace Dim db As dao.Database Dim rst As dao.Recordset Dim tdf As TableDef Set app = New Access.Application Set wks = app.DBEngine(0) 'الإصدار 64 Set db = wks.OpenDatabase("D:\HideTBL V1-64.accde") 'مسار الملف 'الإصدار 32 'Set db = wks.OpenDatabase("D:\HideTBL V1-32.accde") 'مسار الملف For Each tdf In db.TableDefs If tdf.Attributes = -2147483645 Then tdf.Attributes = 0 'تغيير قيمة العمود Flags Next tdf Set db = Nothing End Sub 4- انقر الزر F5 لتشغيل الإجراء حيث سيقوم بتغيير قيمة العمود Flags إلى القيمة صفر 5- اغلق قاعدة البيانات التي قمنا بتنفيذ الكود فيها (حفظ الكود من عدمه راجع لك) 6- الان إذهب إلى القرص D وقم بفتح الملف (HideTBL V1-64.accde او HideTBL V1-32.accde وفقاً لإصدار أوفيس لديك) لتجد أن الجدول قد ظهر في جزء التنقل تحياتي تم تعديل منذ 58 دقائق بواسطه منتصر الانسي 1
Foksh قام بنشر منذ 26 دقائق الكاتب قام بنشر منذ 26 دقائق جميل جداً هذا التوضيح والطريقة الجميلة أيضاً .. 16 دقائق مضت, منتصر الانسي said: من خلال هذا الاستعلام سنتعرف على أي جدول Type=1 ولايبدأ بالأحرف MSys لتظهر لنا النتيجة كما بالصورة التعرف على أنه إذا كانت Type = 1 وبالتالي النوع 1 = جدول هي بحد ذاتها أيضاً فكرة جميلة . اقتباس مايهمنا هنا هي قيمة العمود الأول Flags بعد ذلك قم بإغلاق التطبيق بدون حفظ اي شيء وبما أن قيمة الـتعليمة Flags = -2147483645 وهي قيمة ثابتة في اكسيس لجميع إصدارات أوفيس ، وهي للتوضيح الواجب أنه ليس لأوفيس علاقة بفرضها بهذه القيمة . بل يفرضها نظام التشغيل نفسه ( Windows ) على حد علمي . أما بخصوص السطر والفكرة التالية :- 33 دقائق مضت, منتصر الانسي said: If tdf.Attributes = -2147483645 Then tdf.Attributes = 0 فهي بحد ذاتها جريئة وإلتفاته فتحت لي أفكاراً جديدة في هذا الخصوص . فشكراً لك ولكل من ساهم بإثراء الموضوع بمشاركته الجميلة والقيمة كجوهره 1
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان