الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف تجعل برنامجك يعمل عند بدء تشغيل الوضع الآمن ؟

بدأه المبرمج أحمد في 29 مارس 2005 · 24 رد · 15,755 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

هذا الموضوع يتضح من عنوانه وهو عبارة عن كيفية جعل برامجك تعمل عند بدء تشغيل نظام التشغيل Windows حتى ولو كان على الوضع الآمن ! ستستغربون كيف يمكن لبرنامج أن يعمل في بدء تشغيل الوضع الآمن، فلا تستعجلوا .

طريقتي في تشغيل برنامج في بدء التشغيل وإن كان يعمل في الوضع الآمن Safe Mode تعتمد على محرر تسجيل النظام Registry وتحديدًا في المسار التالي :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\

عندما تتوجه إلى المسار السابق سوف تجد قيمًا عديدة ابحث عن المفتاح Shell ستجد أن قيمتها الافتراضية ستكون Explorer.exe وبالطبع إذن فهو من أهم ملفات نظام التشغيل .

وفي الحقيقة هناك ملفان يمكنك الإقلاع منهما: أحدهما هو الملف Explorer.exe السابق الذكر ، والآخر هو الملف cmd.exe وهو سطر الأوامر أو موجه الأوامر كما يسميه البعض إذا أردت الإقلاع من سطر الأوامر فما عليك سوى استبدال القيمة Explorer.exe بالقيمة cmd.exe فقط . وعندما تقوم بتشغيل الجهاز في المرات المقبلة لن يمكنك التعامل سوى مع سطر الأوامر ( وهذه ليست مشكلة بل إن هناك أشخاص يفضلون واجهة سطر الأوامر ) .

خلاصة حديثنا : أنه يجب علينا إضافة مسار البرنامج الذي نريد تشغيله إلى المفتاح Shell بعد القيمة Explorer.exe أي يجب أن تكون القيمة كالتالي :

Explorer.exe C:\Program.exe

أو أي مسار آخر تريد تشغيله .

والكود المستخدم لهذه العملية كالتالي :

        Dim R As Object
    Set R = CreateObject("WScript.Shell")

    Const Key = "HKLM\Software\Microsoft" _
            + "\Windows NT\CurrentVersion\Winlogon"

    R.RegWrite Key, 1, "REG_SZ"
    R.RegWrite Key + "\Shell", "Explorer.exe " & App.Path & "\" & App.EXEName & ".exe"

    Set R = Nothing

قد تقولون من أتيت بهذه الفكرة فسأجيب عليكم بأني كنت في الماضي أراقب الفيروسات وأحصنة طروادة التي أحملها بإرادتي من الإنترنت وأرى ما هي التعديلات التي يجريها البرنامج على الـ Registry وفي يوم من الأيام لاحظت أن أحدها يقوم بتشغيل نفسه عند بدء تشغيل الجهاز وعندما حاولت الإقلاع من الوضع الآمن وجدته أيضًا فاستنتجت هذه الطريقة من هذا الفيروس ( وهذه أحد محاسن وفوائد الفيروسات وأحصنة طروادة ) .

وآسف على الاختصار وذلك لضيق الوقت بسبب الامتحانات ( لا تنسوني من صالح دعائكم ) .

وإذا كان لأي منكم سؤال فلا يتردد في طرحه لعلي أحاول الإجابة عليه .

وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين

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

سبحان الله وبحمده ... سبحان الله العظيم

#2

اخي المبرمج احمد

نجح كلامك تماما مع win XP و لكن هل يمكنك مساعدتي مع win98 أو win me ارى انه سوف يتغير مكان ملف الريجسترى و لكن اين المكان الصحيح لا اعرف هل يمكنك مساعدتي

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#3

بسم الله الرحمن الرحيم

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

اود اولاً ان اشكر الغالي احمد على درسه الجميل بالفعل ... و المفتاح المذكور في شرح الاخ العزيز أحمد يعتبر مطابقاً للمفتاح Shell الموجود في الملف System.ini الذي كان مستخدماً في الإنظمة القديمة 9x مثل الـ Win98 .. و في عائلة الـ NT مثل الـ WinXP يتم كتابة المفاتيح الى الريجستري عوضاً عنه.

لذلك فيمكنك اخي العزيز شمس ان تقوم بكتابة التالي في الملف System.ini في مجلد الـ Windows :

[Boot]
Shell=Explorer.exe xxxxx

استبدل الحروف xxxxx بمسار ملف برنامجك.

بشكل عام و لكي اريح بالي من عناء التفكير في في الموضعين اقوم بكتباة شفرتي ( الريجستري في الاكس بي ) و ( الملف system.ini في الانظمة القديمة ) كنت قد استخدمت دالة الـ API المسماه WritePrivateProfileString كي تقوم بالعمل بالنيابة عني فهي تقوم بتحديد نوع النظام و تقوم بالمطلوب عوضاً عنك .. و هذه دالة قديمة كنت استخدمها :

Private Declare Function WritePrivateProfileString _
        Lib "kernel32.dll" Alias "WritePrivateProfileStringA" ( _
        ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
        ByVal lpString As Any, ByVal lpFileName As String) As Long

Function StartMe(YourProgram As String)
    WritePrivateProfileString "Boot", _
        "Shell", _
        "Explorer.exe " + YourProgram, _
        "System.ini"
End Function

لتشغيل اي برنامج تريده استخدم الدالة StartMe فمثلا اذا اردنا ان نقوم بتشغيل الحاسبة بمجرد تشغيل الوينذوز اكتب السطر التالي :

StartMe "Calc"

و الان لمعرفة لماذا تعمل هذه الطريقة حتى في الوضع الآمن الذي من المفترض ان تتوقف فيه جميع البرامج العاملة في بدء التشغيل .. فالسبب يعود الى كون الملف Explorer.exe هو الوينذوز بشكل مجازي فهو المسؤول عن قشرة النظام ( Shell ) المظهر الذي تراه امامك من سطح مكتب و شريط مهام و معظم البرامج الاخرى تعمل بداخله و من الطبيعي ان يكون هو الملف الذي لابد و ان يعمل حتى ولو كان ذلك في الوضع الآمن ... و ما قمنا به نحن هنا هو تمرير اسم برنامجنا اليه كي يقوم هو بتشغيله و بما انه لا محالة سوف يتم تنفيذه فربنامجنا ايضاً سيعمل معه نظراً للسطر :

Shell=Explorer.exe myfile.exe

فالمسافة الفاصلة بين الـ Explorer.exe و اسم برنامجنا myfile.exe تعني ان برنامجنا سوف يمرر الى الـ explorer.exe كي يقوم بتشغيله ... فمثلاً اذا كتبت في القائمة تشغيل (Run) من قائمة ابدء السطر التالي :

Notepad.exe c:\autoexec.bat

سوف تلاحظ ان برنامج المفكرة Notepad.exe قد قام بفتح ملف الـ c:\autoexec.bat ... وهو بالضبط ما قمنا به فبرنامج الـ exeplorer.exe قام بفتح برنامجنا myfile.exe .... وهذا هو اصل المسئلة بالضبط,

و اخيراً اكرر شكري الجزيل للاخ العزيز احمد.

هذا وربي سبحانه اعلى و اعلم

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

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#4

السلام عليكم .. .

اود أن اشكر في البداية المتميزين المبرمج أحمد والمبرمج رغيد الطيب على هكذا مواضيع تعم بالفائدة :rolleyes:

وبصراحه .. هذا الموضوع بالفعل يبين مدى انتجيت مبرمجين العرب وقدرتهم على ابتكار المواضيع

الجديده التي تنشط الفكر وتساعد على التطور المستمر

وأنا مع المبرمج احمد في كلامه عن الفيروسات فهيا دائما تنتج بشكل غريب وجديد تجعل الواحد يفكر دائم في الثغرة الاتي .. جاء منها الفيروس وما هو وكيف يعمل

.. فالله يوفقكم جميعا

وننتظر أبداعتكم اكثر فأكثر

تقبلو اطرائي اخوكم الصغير هاني

B)

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#5

السلام عليكم

بما إن الموضوع اتنقل هنا فلنجعل الموضوع مناقشة حتي نصل إلي جميع الطرق الممكنة.

فعلا خلال متابعتي لفيروس قريبا, تقريبا من 3 شهور وجدت أنه رامي نفسه في هذا المفتاح,وقلت لما أحفظ المفتاح عندي في Text File يمكن ينفعني في يوم,بس ما تصورتش انه ممكن يشتغل في ال Safe Mode.

فيه طريقة جديدة برده تستخدمها الفيروسات بس ماجربتهاش علي ال Safe Mode فقط أذكرها للعلم.

وهي مفتاح

HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logon

ويمكن الحصول علي القيمة التي سيتم وضعها بتشغيل برنامج gpedit.msc من Run واختيار User Configuration

ثم Windows Settings ثم Scripts وعمل اضافة ADD لاي برنامج ليشتغل عندالدخول للويندوز,والآن فقط أجزم بأنها لن تنفع علي ال Safe Mode.

لكن ما زلت أجزم بأن أفضل طريقة لتشغيل برنامج هي استخدام ال Services لأنها الطريقة الوحيدة لأنها تعطي المزايا التالية:

- لن يستطيع المستخدم معرفة أن هناك برنامج يشتغل حتي في ال Safe Mode.

-لا يمكن ايقاف الخدمة ابدا باستخدام Net Stop أو Sc Stop .

-حتي إذا عرف المستخدم أن هناك برنامج فلن يجد حل سوي Format بعكس الريجستري لأنها يستطيع أن يقوم بعمل بحث عن مثلا الامتدادExe في الريجستري ويعرف أين يرمي الفيروس نفسه في الريجستري مثلما نفعل عندما نريد مراقبة Trojan مثلا.

-الوحيد الذي سيستطيع أن يغلق البرنامج هو المبرمج.

بالنسبة لموضوع مفتاح exefile فتلك الطريقة كنت أستخدمها لعمل حماية بباسورد علي ملفات ال EXE,لكن لم أختبر أي تأثيرعكسي علي تلك الحركة.

بالنسبة لموضوع حقن البرنامج في برنامج أخر فهيطريقةرائعة لكن فعلا تواجهه مشكلة المساحة الكبيرة,لكن ممكن نتفاداه بالبحث برامج المساحات الصغيرة مثل Notepad حجمه تقريبا 52kb أو PBRUSH.EXE حجمة 20 كيلوأو CALC.exe أو كفاية قوي برنامج Regedit حجمه 133kb علشان كل ما يحاول المستخدم يدخل في ال Safe Mode علشان يحذف البرنامج يقوم يشتغله هناك كمان.

بالنسبة لمفتاح Installed Component فليس عندي أي تعليق عليه.. لأنه حقيقة يعتبر كنز.......... فقط يعيبه أن يدخل ضمن الريجستريات.

أخيرا أحب أن أشكرك علي المشاركة الطيبة,وأشكر أستاذي رغيد الطيب علي الكودات الجميلة.

وأتمني أن يشارك كل عضو بما يعرفه عن هذا الموضوع حتي نستفيد كلنا.

1
#6

شكرا لك اخي المبرمج احمد ، وبالفعل أثبت انه لا مستحيل ، ولكن هذا الامر خطير ، فأخشى ان يتم استعمالها بشكل خاطئ ...

#7

الف الف شكر لأخي رغيد الطيب و هذا ما تعودناه منه منذ موقع فيجوال بيسك العرب و شكر اخر للمبرمج احمد على ما قدمة

و الشكر للجميع

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#8

الأخ Pharaonic_Guy ، كلامك صحيح جدا بالنسبه لأفضلية عمل الخدمات Services ، ولكن أى خدمه يمكن أن يتم إلغائها أو إلغاء تشغيلها فى بداية عمل النظام من msconfig/Services

كنت قد بحثت طويلا عن كيفية عمل Services بإستخدام فجوال بيسيك ، ولكنى توقفت عن البحث ، هل تعرف طريقه مضمونه لذلك ؟؟

الأخ النبهاني ،

هذه معلومات سلاح ذا حدين ، يمكن إستخدامها إستخدام جيد فى البرامج المضاده أمثال نورتن أو البرامج الخدميه أو تضطر فى أن تقوم بعمل خدمه Service ليخدم على البرنامجك الذى يعمل عليه المستخدم ، مثلا و يمكن إستخدامها كفيروسات ... الأهم هو المعرفه .

شكرا خاصأ للمبرمج أحمد و الأستاذ رغيد الطيب ،،

#9

هل يمكن تشغيل برنامج مع شاشة دخول الويندوز

===

مثل الصورة

12_3420051159480.6584284.JPG

post-43099-1112554510_thumb.jpg

#10

ماشاء الله عليكم فعلا درس مفيد

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#11

سلام

أخواني عندي سؤال أبغى اعرف لو كان عندي برنامج أبغاه يبدأ مع تشغيل الجهاز و يعمل في خلفية النظام مثلا لو عندي برنامج تسجيل الأصوات من ملفات فيديو و أبغى البرنامج يعمل عند الإقلاع على تسجيل الصوت من دون أن يشعر المستخدم و لا يلاحظ هل ذلك ممكن

أرجوكم :)

و السلام

#12

اخي اعتقد و الله اعلم انه اذا قمت بعمل خاصية visible للفورمة الخاصة ببرنامجك تساوي false فلن يلاحظ المستخدم

هذا هو الامر بكل بساطة و العلم عند الله

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#13

جهد جبار اخي المبرمج احمد اتمنى لك التوفيق

وبالفعل موضوع يستحق التثبيت

من دروسي :

درس مبسط لفهم ال VB6.... Resource File

تعلم تصميم اداة ال Active X خطوة بخطوة (الجزء الأول)

الطريقة المثلى للتعامل مع مسجل النظام( VB6..... (Registry

من برامجي :

Abo Sabreen Messenger v2.1 العملاق

--------------------------------------------------

مفكرة الإسلام؛ طالع أخبار العالم وأخبار المجاهدين بعيدا عن التعتيم الاعلامي.

#14

بالفعل أفكار رائعه و بالنسبه لحقن برنامج فى آخر

يجب هنا أختيار برنامج لا يشك به المستخدم

أى برنامج يعمل أساسا مع بدء التشغيل

بس هناك حل و هو برمجة برنامج يفحص مساحات هذه البرامج و عند أى تغير فى مساحتها ينبه المستخدم

ودى فكرة برنامجى أرجو المناقشه

لا تراجع و لا إستسلام

#15

صراحة موضوع جيدجيداً و خبرا ماشأللهْ ممتازين جيداً حل ممكن واحد اساعدني في اجاد كود اتحكم علي USB Potrs لاعملة ُEnable/Diesble

و شكراً........................

#16

مشكووووووووووووور

#17

والله يا جماعة أنتو فعلاً مبدعيـــــن

جزاكم الله خيراً

#18
21to0.gif
#19

والله إبــــــداع × إبـــــــداع

ما قصرتوا والله يعطيكم ألف عافية

#20

شكرااااااااااااااااااااااااااااااااااااااا

#22

ممتاز, ولكن هل يمكن أن نقوم بإقلاع للبرنامج بدون log on للويندوز أن أن نحول البرنامج إلى خدمة ويندوز؟

#23

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

شكرااا لك اخي المبرمج احمد على الجهد المبذول

لقد نجحت عملية تشغيل البرنامج مع الحاسوب ،لكن ما أريده هو هل توجد طريقة أخرى لتشغيل برنامج ما مع اشتغال الحاسوب وجعله في المربع السفلي على الأيمن (tray system)

#24

a;شكرا اخي على الدرس المفيد

#25

مشكور جدا

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

مواضيع مشابهة