منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : شرط البحث عن برنامج فى الجهاز قبل تشغيل المشروع
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاتة
كما فى العنوان
عندي مشروع واريد حماية البرنامج من اظهار السورس كود
وقلت ممكن انى امنع فتح البرنامج عند الناس الى بتستخدم برامج الكراك مثلا زي dnSpy او اى برنامج تانى
بس انا لسه مبتدئ وكنت عاوز حد يساعدني فى الموضوع
اعتقد الفكرة
ان البرنامج يعمل بحث فى جهاز المستخدم عن مثلا برنامج dnSpy و .Net Unpacker Tools و MegaDumper

لو واحد من البرامج دي موجود على جهاز المستخدم البرنامج يظهر رساله مثلا يمنع تكريك البرنامج ..
ويغلق البرنامج
ويعمل حظر للهارد عشان ميشتغلش تانى


كنت محتاج بقي كود تنفيذ الامر



انا مبدائياَ عملت الكود التالي 

كود :
void Protect()
       {
           Process[] TargetProcess1 = Process.GetProcessesByName("Fiddler");
           Process[] TargetProcess2 = Process.GetProcessesByName("SimpleAssemblyExplorer ");
           Process[] TargetProcess3 = Process.GetProcessesByName("Reflector");
           Process[] TargetProcess4 = Process.GetProcessesByName("HxD");
           Process[] TargetProcess5 = Process.GetProcessesByName("Ollydb");
           Process[] TargetProcess6 = Process.GetProcessesByName("dnSpy");
           if (!(TargetProcess1.Length == 0))
           {
               TargetProcess1[0].Kill();
               Interaction.MsgBox("Fiddler Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

           if (!(TargetProcess2.Length == 0))
           {
               TargetProcess2[0].Kill();
               Interaction.MsgBox("SimpleAssemblyExplorer Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

           if (!(TargetProcess3.Length == 0))
           {
               TargetProcess3[0].Kill();
               Interaction.MsgBox("Reflector Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

           if (!(TargetProcess4.Length == 0))
           {
               TargetProcess4[0].Kill();
               Interaction.MsgBox("HxD Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

           if (!(TargetProcess5.Length == 0))
           {
               TargetProcess5[0].Kill();
               Interaction.MsgBox("Ollydb Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

           if (!(TargetProcess6.Length == 0))
           {
               TargetProcess6[0].Kill();
               Interaction.MsgBox("dnSpy Detected!", MsgBoxStyle.Critical, "WTF?!");
               this.Close();
           }

       }


بس طبعا الكود ده لازم يكون واحد من البرامج الموجوده مثل dnSpy   تبقي شغاله ولو شغاله بيغلق المشروع ويغلق dnSpy
انا بقي عاوز البرنامج يعمل بحث فى الجهاز على اسامي البرامج دي لو موجوده البرنامج ميتفتحش
عليكم السلام
للاسف الموضوع مستحيل لان البرامج دي مش بتتثبت ومش بتتحط في فولدر بمسار معين فالبتالي الموضوع هياخد وقت كبير جدا في البحث عن اسماء الملفات دي ولكن اذا كنت مصر فتابع هذا الموضوع
http://vb4arb.com/vb/showthread.php?tid=3904
والافضل كما استعملها انا هو وضع الكود بتاعك ده في تايمر وتشغيل التايمر وبالتالي كل ما حد يحاول يفتح البرامج دي هتتقفل
بالتوفيق
(17-01-21, 01:00 AM)ميدو الفنان كتب : [ -> ]والافضل كما استعملها انا هو وضع الكود بتاعك ده في تايمر وتشغيل التايمر وبالتالي كل ما حد يحاول يفتح البرامج دي هتتقفل
بالتوفيق

اولا اشكرك على ردك
وهتابع الموضوع 
بخصوص التايمر
انا فعلا عامل كدة بس المشكلة ان فى برامج مش بتحتاج انك تفتح المشروع يعني مثلا برنامج de4dot كل الى بتعمله انك بتمرر المشروع على البرنامج 
انا بقي عاوز وجود البرنامج على الجهاز المشروع ميتفتحش
(17-01-21, 01:05 AM)faresvip كتب : [ -> ]
(17-01-21, 01:00 AM)ميدو الفنان كتب : [ -> ]والافضل كما استعملها انا هو وضع الكود بتاعك ده في تايمر وتشغيل التايمر وبالتالي كل ما حد يحاول يفتح البرامج دي هتتقفل
بالتوفيق

اولا اشكرك على ردك
وهتابع الموضوع 
بخصوص التايمر
انا فعلا عامل كدة بس المشكلة ان فى برامج مش بتحتاج انك تفتح المشروع يعني مثلا برنامج de4dot كل الى بتعمله انك بتمرر المشروع على البرنامج 
انا بقي عاوز وجود البرنامج على الجهاز المشروع ميتفتحش

للاسف مستحيل اللى انت بتقوله ده لان بمجرد غلق البرنامج للاسف كل ده هيتقفل والافضل انك تشفر برنامجك بتشفير معقد وصعب بحيث انه ميتفكش بسهولة ولكن لا يوجد حماية كاملة كل الحماية مهما كانت هتتفك بردو فمتتعبش نفسك لانك مش هتلاقي حماية كاملة للاسف يجب ان تبتكر حماية لك من صنعك انت
(17-01-21, 01:08 AM)ميدو الفنان كتب : [ -> ]للاسف مستحيل اللى انت بتقوله ده لان بمجرد غلق البرنامج للاسف كل ده هيتقفل والافضل انك تشفر برنامجك بتشفير معقد وصعب بحيث انه ميتفكش بسهولة ولكن لا يوجد حماية كاملة كل الحماية مهما كانت هتتفك بردو فمتتعبش نفسك لانك مش هتلاقي حماية كاملة للاسف يجب ان تبتكر حماية لك من صنعك انت
طيب ممكن نعمل حاجه ان لو برنامج من البرامج الى انا عملها فى التايمر مفتوحه 
يتعمل حظر للهارد يعني البرنامج ميتفتحش

توضيح دلوقتي انا مثلا عامل التالي
 لو البرنامج ده dnSpy مفتوح المشروع يقفل البرنامج و ويقفل المشروع 
كود :
 void Protect()
   Process[] TargetProcess6 = Process.GetProcessesByName("dnSpy");

  if (!(TargetProcess6.Length == 0))
            {
                TargetProcess6[0].Kill();
                Interaction.MsgBox("dnSpy Detected!", MsgBoxStyle.Critical, "WTF?!");
                this.Close();
            }
 }


عاوز كود كمان قبل ما يقفل البرنامج 

   if (!(TargetProcess6.Length == 0))
            {
                TargetProcess6[0].Kill();
                Interaction.MsgBox("dnSpy Detected!", MsgBoxStyle.Critical, "WTF?!");
                this.Close();
            }


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