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

طلب مساعدة في فهم خطوات كود

مغلق
بدأه ha98 في 14 سبتمبر 2004 · 26 رد · 2,873 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخواني الأعزاء

ممكن أحد منكم ياخبراء يتفضل ويساعدنا في الاستفادة من الكود في الرابط التالي

لعمل حماية للتطبيق بكلمة مرور

حاولت أكثر من مرة قراءة التعليمات الموجودة مع الكود إلا أني لم أفلح في عمل المطلوب

يمكن لضعف خبرتي في الأشياء المتقدمة

على العموم الكود والشرح على الرابط التالي

http://java.sun.com/developer/J2METechTips/2001/tt1015.html

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

تحياتي

#2

أتمنى من الخبراء الإفادة في هذا الموضوع لأنه هذا بصراحة ضروري

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

تحياتي

#3
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

/**
 * This login MIDlet prompts the user for a username and a password. If the
 * user enters the correct account information, a list of options is 
 * displayed, otherwise an error message is displayed.
 * 
 * @author: Qusay H. Mahmoud
 */
public class LoginMIDlet extends MIDlet implements CommandListener {
   private Display display;
   private TextField userName;
   private TextField password;
   private Form form;
   private Command cancel;
   private Command login;


   // Constructor
   public LoginMIDlet() {
      userName = new TextField("LoginID:", "", 10, TextField.ANY);



      password = new TextField("Password:", "", 10, TextField.PASSWORD);
      form = new Form("Sign in");
      cancel = new Command("Cancel", Command.CANCEL, 2);
      login = new Command("Login", Command.OK, 2);
   }

   // MIDlet lifecycle method: called when the MIDlet is started
   public void startApp() {
      display = Display.getDisplay(this);
      form.append(userName);
      form.append(password);
      form.addCommand(cancel);
      form.addCommand(login);
      form.setCommandListener(this);
      display.setCurrent(form);
   }

   // MIDlet lifecycle method: called when MIDlet is paused

   public void pauseApp() {
   }

   // MIDlet lifecycle method: called when the MIDlet is destroyed
   public void destroyApp(boolean unconditional) {
      notifyDestroyed();
   }

   // Checks if the user enters the correct account information
   public void validateUser(String name, String password) {
//******

     if (name.equals("ha98") && password.equals("yourpassword")) {
       menu();
     } else {
       tryAgain();
     }
   }     

   // Display a list of services
   public void menu() {
     List services = new List("Select One", Choice.EXCLUSIVE);
     services.append("Read Email", null);
     services.append("New Message", null);
     services.append("Address Book", null);
     services.append("Customize", null);

     services.append("Sign Out", null);
     services.addCommand(new Command("Back", Command.CANCEL, 2));
     services.addCommand(new Command("Select", Command.OK, 2));

     display.setCurrent(services);
   }

   // Display an error message if the user enters the incorrect account info
   public void tryAgain() {
     Alert error = new Alert("Login Incorrect", "Please try again", null, AlertType.ERROR);
     error.setTimeout(Alert.FOREVER);
     userName.setString("");
     password.setString("");
     display.setCurrent(error, form);
   }


   // Handle events
   public void commandAction(Command c, Displayable d) {
      String label = c.getLabel();
      if(label.equals("Cancel")) {
        destroyApp(true);
      } else if(label.equals("Login")) {
         validateUser(userName.getString(), password.getString());
      }
      // add code to handle user's selection from list of services
   }
}

The Source

هنا تستطيع كتابة ال Username وال Password التي تحتاجها ولا يتم الدخول الا اذا كان Username=ha98 و Password =yourpassword

لست متواجد بشكل يومي

#4

السلام عليكم

أخي العزيز مجدي أولا كيف حالك ومن زمان مطول الغيبة علينا عسى خير

انساء الله

ثانيا : ياصاحب الجمايل علينا وسع صدرك وطول بالك معانا شوي لأنه عندي استفسارات ولن يشفي غليلي إلا أجوبتكم التي انتظرها وأنا على أحر من الجمر

بالنسبة للأستفسار الأول ياعزيزي

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

في هذه الحالة لو وزعته على واحد مع اليوزر والباس وورد يقدر يعطيه غيره بكل سهولة وبالتالي تصبح الحماية هنا ليس لها معني

سؤالي هل هناك طريقة بحيث تكون الحماية مثل هنا عبارة عن رقمين

الرقم الأول ينتج بشكل عشوائي بمجرد تركيب التطبيق في الجوال

الرقم الثاني هو رقم ناتج من معادلة محددة تطبق على الرقم الأول

بحيث نضمن أنه في كل مرة يتم تركيب التطبيق إلى جوال آخر يتغير الرقم الأول وبناء عليه سيتغير الرقم الثاني

طبعا هذه فكرة يمكن انت عندك فكرة أفضل من هذه

ولكن إذا تمكنا من عمل هذا فهذا عمل ممتاز جدا يحافظ على الحقوق

الاستفسار الثاني

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

وأجمع الكلاسين داخل تطبيق واحد ( لو تتكرم الإفادة عن هذا )

#5

تسلم يا اخي انا بخير وان شاء الله كل المسلمين يكونو بخير

بالنسبة للأستفسار الأول ياعزيزي

اقتباس
سؤالي هل هناك طريقة بحيث تكون الحماية مثل هنا عبارة عن رقمين

الرقم الأول ينتج بشكل عشوائي بمجرد تركيب التطبيق في الجوال

الرقم الثاني هو رقم ناتج من معادلة محددة تطبق على الرقم الأول

ما عندي فكرة واول مرة ارى فكرة مثل هيك ولكن لا اعتقد انها تفيد اعتقد افضل طريقة هي username and password

الاستفسار الثاني

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

وأجمع الكلاسين داخل تطبيق واحد ( لو تتكرم الإفادة عن هذا )

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

لست متواجد بشكل يومي

#6

السلام عليكم

عزيزي وأخي مجدي

انت قلت

ما عندي فكرة واول مرة ارى فكرة مثل هيك ولكن لا اعتقد انها تفيد اعتقد افضل طريقة هي username and password

طيب ممكن تقول ايش يفيد ال username and password

إذا مثلا انت وزعت التطبيق والناس عرفت ال username and password

فلن تكون هناك حماية للتطبيق أرجو ان تشرح العبارة التي كتبتها

افضل طريقة هي username and password

أما بالنسبة للرسالة الخاصة لاأعرف كيف يتم إرفاق ملف بواسطة الرسالة الخاصة

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

في الأخير لايسعني إلا شكرك

#7

السلام عليكم

عزيزي وأخي مجدي

انت قلت

ما عندي فكرة واول مرة ارى فكرة مثل هيك ولكن لا اعتقد انها تفيد اعتقد افضل طريقة هي username and password

طيب ممكن تقول ايش يفيد ال username and password

إذا مثلا انت وزعت التطبيق والناس عرفت ال username and password

فلن تكون هناك حماية للتطبيق أرجو ان تشرح العبارة التي كتبتها

افضل طريقة هي username and password

أما بالنسبة للرسالة الخاصة لاأعرف كيف يتم إرفاق ملف بواسطة الرسالة الخاصة

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

في الأخير لايسعني إلا شكرك

sora.rar

#8
اقتباس
طيب ممكن تقول ايش يفيد ال username and password

إذا مثلا انت وزعت التطبيق والناس عرفت ال username and password

يا اخي لو يوجد طريقة ثانية كان استخدموها لحماية البرامج مثل JBuilder او غيرها اليك الملف

Sura.java

لست متواجد بشكل يومي

#9

السلام عليكم

عزيزي مجدي الله يعطيك العافية وشاكرين لك للمرة الألف لتعبك معانا

بس انت بالخليجي راعيها

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

بعد ما يسجل المستخدم اليوزر والباس وورد يفتح له النموذج الذي كان به

التوحيد

الكوثر

ومن بعد يختار السورة ويظهر له نموذج السورة

أنا كنت عامل التطبيق المرفق على شكل كلاسات كل سورة في كلاس وواضع الكلاسات

في مجلد اسمه my

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

أن أجمع الكود كله في كلاس واحد

لاحظ مثالي هنا صغير يحتوي على كلاسين فقط لكن هناك تطبيقات تحتوي على كلاسات

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

للمرة الألف شكرا وانتظر منك الرد

تحياتي

تم تعديل هذه المشاركة بواسطة ha98 في 17 سبتمبر 2004 في 09:22

#10
اقتباس
لاحظ مثالي هنا صغير يحتوي على كلاسين فقط لكن هناك تطبيقات تحتوي على كلاسات

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

للمرة الألف شكرا وانتظر منك الرد

يا اخ ha98 تستطيع عمل كلاس تضم الكلاسات الثلاثة ولكن يجب ان تكون على معرفة جيدة بال OOP برمجة الكائنات بالجافا?

لست متواجد بشكل يومي

#11

السلام عليكم

العزيز مجدي أنا عندي خلفية لا بأس بها عن ال oop

لكن مايهمني الآن هو كيف أطبق كود الحماية على مثالي دون أن أغير في

شكله العام

يعني بعد تسجيل اليوزر والباس وورد يظهر لي النموذج الذي يحتوي على

الشكل التالي

التوحيد

الكوثر

ومن هذا النموذج يتم الاختيار

إن شاء الله يكون طلبي سهل ولا يكلفك

تحياتي لك

#12

السلام عليكم

أخي العزيز مجدي

طيب ممكن تقول لي لو تكرمت طلبي الأخير ممكن عمله في هذه الحالة أم لا

تحياتي لك

#13

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

Class1 cl= new Class1();
cl.Method1();

مع عمل تعديلات ساريك اياها لاحقا باذن الله مشغول الان اعذرني

لست متواجد بشكل يومي

#14

على العموم أنا انتظر ردك بفارغ الصبر

تحياتي لك ياكبير

#15

لا اعرف كيف فاتني هذا النقاش الرائع...

سوف اعود في المساء و احاول المساعدة فعندي بعض الحلول ان شاء الله

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#16

أهلا وسهلا بالمشرف العزيز الأخ رامي

والله وجودك مكسب وأفكارك أكيد راح تثري من الموضوع

ياليت والله نشوف معانا الأخ مصعب والأخ shi والاخ student

على اساس يكتمل العقد

#17

مشكور جداً يا أخ ha98 على وصفك الشريف

أنا متابع لمواضيعك وأستفيد من مناقشاتك أتمنى لك التوفيق

#18

اخي العزيز shi انت تستاهل واكثر

ياشباب ياجماعة آن الأوان لنهتم بهذا الموضوع ونعطيه من الاهتمام مايتناسب

معه

تحياتي

#19

يا اخي اليك الحل التالي تعمل مثلا

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Kawthar extends MIDlet
{
.
public void method()
{

Form f= new Form("Form Title");
f.append(".........");
f.append(".........")
.
}
}

وكذلك مع

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Tawheed  extends MIDlet
{
.
.
.
}

بدون ازرار وتقوم بعمل Class ثالث مثل Main

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Main extends MIDlet  implements CommandListener
{
.
.
.
}

وتستطيع كما قلت void method في Kawthar و Tawheed وتستطيع استخدامه في Main وهكذا تستطيع الربط

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Main extends MIDlet  implements CommandListener
{
.
.
kawthar k = new kawthar();
k.method();
.
.
}

ان شاء الله افدتك

تم تعديل هذه المشاركة بواسطة مجدي محمود في 21 سبتمبر 2004 في 17:44

لست متواجد بشكل يومي

#20

السلام عليكم

أخي العزيز مجدي شكرا على إفاداتك الخيرة

سأقرأ التعليمات التي كتبتها وأحاول مرار ا وتكرارا وسأخبرك بالتفاصيل

تحياتي

#21

السلام عليكم

أخي العزيز مجدي حاولت تطبيق تعليماتك ونجحت بعض الشيء إلا أنه هناك بعض المشاكل التي واجهتني وهي عدم فتح الفورم الخاص ب التوحيد والكوثر

ماعملته تجده في الملف المرفق هذا من جهة ومن جهة أخرى راودتني فكرة

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

هل بالامكان عمل مثل هذا

tagrbah.rar

#22

أخي مجدي هل قرأت الرد الأخير

#23

نعم اخي وبحاول اجد الحل

لست متواجد بشكل يومي

#24

اخي حاول اعمل الطريقة الاتية لاني مشغول شوي

نفس الملف

بس لازم يكون ملف الكوثر والتوحيد هكذا

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Kawthar 
{
.
public void method()
{

Form f= new Form("Form Title");
f.append(".........");
f.append(".........")
.
}
}

mport javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Tawheed 
{
.
.
.
}

واخبرني اخي اعذرني انا داخل بعضي البعض هل اليومين

لست متواجد بشكل يومي

#25

السلام

اخي العزيز مجدي الله يساعدك لأنك مشغول

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

تحياتي

هذا الموضوع مغلق.

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