السلام عليكم ,,
اكيد حضراتكو تسمعو عن التطبيق الشهير FaceApp ,,
اريد ان اعرف ما اللغات والتقنيات المستخدمه في صنع هذا التطبيق ؟
قصدك التطبيق اللي يحول الصور او يضيف لها فلترات
لا يهم باي لغة مكتوب فالتطبيق لا يقوم بالعمل على الهاتف بل يرسل الاشياء لسيرفرات الشركة وهناك يتم العمل الشاق
او حسبما فهمت
According to Russian developer Wireless Lab, the app uses neural networks — a machine-learning method — to modify faces you upload. The remote backend servers do all the heavy crunching, and the app tries to keep modified photos looking realistic.
التقنيات المستخدمة هي الneural networks وال machine learning
اللغات المبرمج بها التطبيق وبعد تنزيل نسخة الاندرويد وتحليلها وجدتهم مستخدمين kotlin
اما نسخة IOS فريما مستخدمين Swift (لم احلل نسخة IOS بل مجرد حدس)
وبما ان التطبيق مجرد برنامج يرسل لصور للسيرفرات ولا يقوم بالامر على الهاتف فلا يهم باي لغة مكتوب المهم الخوازميات المستخدمة في سيرفرات الشركة
بعد تنزيل نسخة الاندرويد وتحليلها وجدتهم مستخدمين kotlin
لم احلل نسخة IOS
كيف يمكنك تحليل البرنامج هكذا ؟
تقدر تحمل البرنامج وتعمل reverse engineering له بالنسبة لبرامج الاندرويد فعمل reverse engineering لها سهل وممكن ترجع السورس كود (تقريبا) الخاص بالبرنامج اذا كان مبرمج بجافا او اللغات المبنية عليها، اما برامج IOS فعمل reverse engineering لها شوي صعب.
اذا ما السبيل لحماية هذه التطبيقات ؟؟
الا يمكن هكذا الاطلاع على الكثير من التقنيات الحصرية لشركات معينه ؟
الا يمكن هكذا الاطلاع على الكثير من التقنيات الحصرية لشركات معينه ؟
نعم يمكن من خلال هذه الطريقة معرفة اسرار الشركات والخوارزميات التي تستخدمها فهذا هو عمل الreverse engineering
اذا ما السبيل لحماية هذه التطبيقات ؟؟
الشركات تلجا الى برامج مخصصة للحماية تنتجها شركات اخرى او تقوم الشركة نفسها بصنع حماية لبرامجها في حال كانت الشركة كبيرة، ولكن من خلال اطلاعي على ابحاث الاجانب في المجال وجدت انهم حقا عباقرة وقاموا بتخطي اصعب الحمايات ولكن بعد فترة من الزمن وابزر مثال هي حماية Denuvo للالعاب التي تعتبر اصعب حماية ولا يمكن كسرها ولكن بعد فترة قامت مجموعة بكسرها والان يتم نشر الالعاب على التورنت بعد كسر الحماية، المهم اذا لديك تطبيق فلا تخاف برامج الحماية يمكنها ان تحمي برنامج فلكي تكسر تحتاج اشخاص خبراء في المجال واكيد هؤلاء الخبراء لن يكسروا برنامجك بل عينهم على الالعاب المشهورة جدا وحماياتها.
نصيحة ابحث عن "الهندسة العكسية" ما هي وكيف الحماية من الهندسة العكسية لكي تزيد معلوماتك.
سؤال اخر من فضلك :
ما شأن لغات البرمجة هنا : لاى دور تستطيع القيام به ؟
بمعنى ان كسر التطبيقات يكون فى لغة من اللغات اسهل من لغة اخرى ؟
ما هى افضل اللغات او الطرق لحماية هذا الشأن بدون برامج حماية ؟ , كأن مثلا يكون عمليه ال compiling بطريقة معينه او يكون فيه تشفير مثلا ؟
ما شأن لغات البرمجة هنا : لاى دور تستطيع القيام به ؟
اللغات مثل الجافا والدوت نت عندما يتم عمل كومبايل لها تتحول لJVM bytecode او .net bytecode للدوت نت، اي ليس اسمبلي بل شكل اقرب منه للكود المصدري منه للاسمبلي عكس اللغات المبنية على لغة السي (مثل سي++ و Objective-C اللي تخص تطبيقات ايفون)، لغات الدوت نت والجافا دائما تبقى محتفظة بما يسمى metadata بحيث يمكن دائما ارجاع الكود المصدري لانها تبقى محتفظة بال classnames و method names و field & parameter types وغيرها ، اي ان الbytecode يحوي كمية كبيرة من المعلومات تصف الكود الاصلي للبرنامج ويمكن اعادة بناء هذا الكود من جديد بسهولة، عكس السي وسي++ اللتان يتم عمل كومبايل لهما فيتم تحويل الكود المصدري لكود اسمبلي مباشرة وليس bytecode وكذلك يتم حذف جميع ال metadata لذلك من الصعب جدا جدا ارجاع الكود المصدري الذي يخص لغات السي.
بمعنى ان كسر التطبيقات يكون فى لغة من اللغات اسهل من لغة اخرى ؟
نعم اللغات التي تستعمل الة افتراضية مثل الجافا والدوت نت وما بني عليهما يستخدمون bytecode ولا يتم تحويل الكود الى اسمبلي مباشرة فهي سهلة جدا ارجاع الكود اللي يخص البرنامج عكس اللغات المبنية على السي التي يتم تحويلها لاسمبلي مباشرة مما يعني استحالة ارجاع الكود.
ما هى افضل اللغات او الطرق لحماية هذا الشأن بدون برامج حماية ؟ , كأن مثلا يكون عمليه ال compiling بطريقة معينه او يكون فيه تشفير مثلا ؟
لا يوجد طرق او عمل compiling بطريقة معينة للغات الجافا والدوت نت لان يمكن عمل الـ compiling لها بطريقة واحدة فقط، لذلك اما تستخدم لغات تحول الكود مباشرة الى اسمبلي مثل سي او سي++ او Objective-C او تستخدم برامج للحماية وابرز هذه البرامج هي برامج الobfuscation الي تعمل تشفير للكود ويصعب عمل هندسة عكسية له.
التعليقات