اذهب الي المحتوي
أوفيسنا

ما هو مفتاح الـ SHIFT وكيف يمكن استخدامة


الردود الموصى بها

مفتاح الـ SHIFT هو مفتاح يتم الضغط عليه فور تشغيل قاعدة البيانات فيعمل على الغاء اعدادات بدء التشغيل والغاء اعدادات ماكرو Autoexec

اي بمعنى اصح يقوم بالغاء فعاليتهم

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

للمزيد من المعلومات عن ماكرو Autuexec اذهب الى هذا الرابط

http://www.officena.net/ib/index.php?act=ST&f=6&t=100

تم تعديل بواسطه امير عاطف
  • Thanks 1
رابط هذا التعليق
شارك

طبعاً في هذه الحاله لن يكون هناك امان لأن اي قاعدة بيانات حيث يمكن اختراقها بهذا الشكل :wub:

ولكن اتت ميكروسوفت بجملة في التعليمات هذا هو نصها :

You can use the AllowBypassKey property to specify whether or not the SHIFT key is enabled for bypassing the startup properties and the AutoExec macro. For example, you can set the AllowBypassKey property to False to prevent a user from bypassing the startup properties and the AutoExec macro.

ومعنى ذلك انه يمكن عدم تفعيل الشيفت وتفعيله كما نريد عن طريق جعل قيمة الخاصية AllowBypassKey تساوي False أو True

اذن بهذه الفكره التي طرحتها مايكرو سوفت اذن لا يمكن اختراق اي قاعدة عن طريق مفتاح الشيفت اذا تم وضع قيمة الخاصية AllowBypassKey تساوي False

ها هو الكود الخاص بعدم تفعيل مفتاح الشيفت :

Private Const ErrPropNotFound As Long = 3270


Public Function SetAllowByPassKey()

 Dim db As DAO.Database


    Dim prp As DAO.Property


    

    On Error Resume Next


    Set db = CurrentDb


   db.Properties("AllowBypassKey").Value = False


    If Err.Number = ErrPropNotFound Then


      Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, False)


     db.Properties.Append prp


     End If


   Err.Clear

End Function
وها هو الكود الخاص بتفعيل مفتاح الشيفت :
Private Const ErrPropNotFound As Long = 3270


Public Function SetnotAllowByPassKey()

 Dim db As DAO.Database


    Dim prp As DAO.Property

                 

    On Error Resume Next


    Set db = CurrentDb


   db.Properties("AllowBypassKey").Value = True


    If Err.Number = ErrPropNotFound Then


      Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, True)


     db.Properties.Append prp


     End If


   Err.Clear

End Function

ولا ننسى اذا قمنا بوضح احد هذه الاكواد السابق ان نقوم بتنشيط المرجع المسمى:

Microsoft DAO 3.6 Object Library

ويمكن الوصول الى هذا المرجع من خلال نافذة الكود عن طريق الذهاب الى

Tools ----- References ثم بعد ذلك يظهر لنا نموذج نختار منه المرجع السابق

تم تعديل بواسطه امير عاطف
رابط هذا التعليق
شارك

ولكن بعد ذلك تم صنع برامج تقوم بتدمير عدم تفعيل مفتاح الشيفت وفكرة مثل هذه البرامج تقوم على الغاء الخاصية الذي تحدثنا عنها سابقاً وهي الخاصية AllowBypassKey ....

ومن هذه البرامج مثل البريمج الذي قام بنشره الأخ الكريم يجزاه الله عنا كل خير فيصل الحربي في هذا الرابط

http://www.officena.net/ib/index.php?act=ST&f=21&t=111

رابط هذا التعليق
شارك

  • 2 months later...

و لتعطيل عمل الشيفت بالكود

انشء وحدة نمطية جديدة وضع فيها هذا الكود كما هو :

Option Compare Database

Option Explicit

Private Const ErrPropNotFound As Long = 3270


Public Function SetAllowByPassKey()

 Dim db As DAO.Database


    Dim prp As DAO.Property

    On Error Resume Next

    Set db = CurrentDb

   db.Properties("AllowBypassKey").Value = False

    If Err.Number = ErrPropNotFound Then

      Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, False)

     db.Properties.Append prp

     End If

   Err.Clear

End Function
أنشيئ ماكرو باسم autoexec و الماكرو بهذا الاسم يتم تنفيذه تلقائيا عند الفتح و فيه استدع الدالة المسماة =SetAllowByPassKey(). و السطر الثاني فيه لفتح الفورم و بذلك تكون عطلت عمل الشيفت و لكن كما ذكرنا يمكن التغلب علي هذه الحماية باستخدام أحد التطبيقات التي وضعها الأخوة و التي تعتمد فى الاغلب علي الكود التالي لابطال عمل الشيفت ، و يمكن تشغيله من قاعدة خارجية و توجيهه علي قاعدة ملغي فيها الشيفت لتفعله
Public Function del_shift_prop(mdb As String)


Dim db As DAO.Database

Dim prp As DAO.Property

Dim wrkJet As Workspace

  

On Error Resume Next


      Set wrkJet = DBEngine.Workspaces(0)

      Set db = wrkJet.OpenDatabase(mdb)

      db.Properties("AllowBypassKey").Value = True

      If Err.Number = ErrPropNotFound Then

      Set prp = db.CreateProperty("AllowBypassKey", dbBoolean, True)

      db.Properties.Append prp

      End If


      Err.Clear


End Function

تم تعديل بواسطه امير عاطف
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information