• بواسطة x32x01 ||
يعني ايه Reverse Engineering و ايه الاستفادة منها و من شغلها و ايه اهميتها و هل هي من المجالات المهمة ولا الي نص نص ...
سؤال رقم #1 : يعني ايه Reverse Engineering ?!
ال Reverse Engineering او احنا هنقول عليها RE عشان الكلمة طويلة و هنكررها كتير في ال Post دة....ال RE هي عملية عكسية بتكون عكس ال Software Engineering بالظبط هدفها اني اوصل لل Binary Code و ال Core بتاع اي Software عشان اطبق عليه واحد من الـ 3 مبادئ بتوع ال RE الي هما :
ال Comprehension و ال Decomposition و ال Reconstruction
ال Comprehension : معناها اني اقدر اجمع كل المعلومات اللازمة عن ال Basics بتاعت ال Software دة و اني اقدر اوصل لل Mechanisms الي ال Code بتاعه ماشي بيها..
ال Decomposition : معناها اني اقدر ادخل جوة ال Deep code بتاع ال Software و اقدر اشوف ال Structure بتاعتها و ال Systems و ال Sub-Systems الي معمولها Inherit جوة و اقدر اشوف ال Root و ال Trees بتاعته..
ال Reconstruction : معناها اني بعد ما اعمل اول مرحلتين اقدر اعدل في ال Software و اعمله Build من اول و جديد علي مزاجي يعني اقدر اجيب اي Software حد عامله و اعمله RE و اعمل منه Software خاص بيا و فيه كل التعديلات الي انا عايزها من غير ما اضطر اني اعمل Build لل Software كله من الصفر من اول و جديد..

سؤال رقم #2 : ليه انا بستخدم ال Reverse Engineering ?!
ال RE ليها 3 استخدامات اساسية الي هما : ال Modding و ال CFB و ال CC
اول حاجة الي هي ال Modding او زي ما بيقولوا عليها ال Resource Modification : الي هي اني اقدر اعدل ف اي Resource من ال Resources بتاعت ال Software زي ال Icons , Menus , Layout و غيرهم ...
يعني ممكن اخد Software اعمله RE عشان اغير ال Icons بتاعته او اغير شكل ال UI بتاعه او اغير شكل ال Menu و اطلع نسخة من ال Software دة خاصة بيا انا...
تاني حاجة الي هي ال CFB الي هي اسمها Control Flow Bypass : و دي من اشهر و اهم استخدامات ال Reverse Engineering و بيستخدمها ال Reverse Engineers عشان يعملوا ال Cracks لأي حاجة سواء لأي لعبة او برنامج...لأن ال CFB قايمة علي 3 عواميد اساسية الي هما : Alter Program Flow يعني اني اقدر اغير في المسار الي بيمشيه ال Code عشان ينفذ ال Functions بتاعته
تاني حاجة Force Program to take intended Actions اني بعمل injection لـ Functions مكانتش موجودة في ال Core code قبل كدة و بجبر البرنامج انه ينفذ ال Functions الي انا حاططها جديد دي
تالت حاجة الي هي Jump Over Protection Mechanism و دي اساس ال Cracking كلها ان اي Software مش Open Source بيكون فيه حاجة اسمها Protection Mechanism و دي الي بتكون مسؤولة عن ان ال Software يشتغل معاك فترة محددة بس الي هي فترة ال Trial و يشتغل ب Functions محددة بس برضو و بعد فترة ال Trial هيقوم ال Software عامل Activate لحاجة اسمها Protection Shield او Protection Mechanism الي هي خلاص مش هتقدر تستخدم ال Software دة تاني و لو عايز تستخدمه روح اشتريه...ال Reverse Engineering بقي بتقدر تحل حاجة زي دي عن طريق انها بتعمل زي كوبري كدة بيخلي ال Code يعدي من ال Protection Mechanism و يكمل شغل عادي و ال Protection Mechanisms ليها انواع كتيرة يا اما dll Files بتكون مسؤول عن ال Protection ف انت بتعمل ال Crack بتاعك انه يكون Dll File زيها بالظبط بس من غير protection و بتعمله Replace في ال Root او مثلاً تكون ال Protection Mechanism عبارة عن Activation Server ف انت ال Crack بتاعك بيكون Shield بيمنع ال Software من انه يكلم ال Server و بالتالي ميقدرش ياخد منه فترة ال Trial و بالتالي تقدر تشغل ال Software الفترة الي انت عايزها و هكذا...
تالت و اخر استخدام لل Reverse Engineering الي هو ال CC او ال Code Caving الي هو انك بتقدر تكتب Code يكون خاص ب Process او Thread معين لل Software ب استخدام Software تاني و دة بيستخدم في ال Memory Hacking و دة بيقدر يخليك تعمل Injection جوة اي Software و تخليه ينفذ Processes هي مش تبعه اساساً...

سؤال رقم #3 : ايه هي ال Technical Components او ال Techniques الي بستخدمها عشان اقدر اشتغل في ال Reverse Engineering ?!
عندك 4 حاجات اساسية بالنسبة لل RE الي هما :
- Hex Editor
- Disassembler
- Debugger
- Resource Editor
ال Hex Editor وظيفته انه بيطلع كل ال Content بتاعت ال Software ف صورة Hexadecimal Formatted Data تقدر تقرأها و تعدل فيها زي ما انت عايز..
ال Disassembler وظيفته انه بيحول ال Hex Bytes لصيغة ال Assembly بتاعتها عشان اقدر اشتغل عليها..
ال Debugger بيعمل Test لل Software في ال Runtime و يشوف كل ال Flow بتاع ال Code و ال Functions بتمشي ازاي من اول ما ال Program بيحصله Execution في الMemory و بيقدر يعدل في ال Data و ال Functions بتاعت ال Work-Flow الخاص بال Code
ال Resource Editor دة الي بيقدر يغير في ال UI بتاع ال Software و يتحكم في شكل ال Menus و ال Icons و غيرها...

سؤال رقم #4 ايه هي خطوات ال Reverse Engineering ?!
اول حاجة هي ال Background Checking و دي بيبقي فيه كذا Check :
- اول حاجة بعمل Check و بشوف ايه هي ال Programming Language الي مكتوب بيها ال Software دة
- تاني حاجة بعمل Check و اشوف ايه هو نوع ال Packer الي عامل Packing لل Software...ال Packer دة دة بيقلل ال Physical Size بتاع ال Executable File عن طريق انه بيعمله Compression و ال Packers ليهم نوعين :
- اول نوع هو In-Place Packer
- تاني نوع هو wTd Packer او اسمه Write to Disk Packer
- تالت حاجة بعملها هي اني بعمل Check علي ال Libraries بتاعت ال Code و اشوف ايه هي انواع ال Libraries المستخدمة في ال Software دة..
بعد ما بخلص كل ال Checks بيبقي عندي 2 Options :
- يا اما اشتغل Static Analysis
- او اشتغل Dynamic Analysis

سؤال رقم #5 : معني كدة ان مفيش اي Security علي ال Software و ان اي Software ممكن يتعلمه Reverse engineering و بتعمله Hack ؟!
لا اكيد فيه Security Mechanisms للحماية من الموضوع دة الي هما :
- ال Obfuscation دي عبارة عن Programming Technique و دي بتخلي ال Code يحمي نفسه من ال Reverse Engineering عن طريق انه بيطلع Code صيغته مش مفهومة لما ييجي اي حد يعمل عليه RE ف بالتالي محدش يقدر يحدد ال Language الي مكتوب بيها و لا ال Packer المستخدم ولا حتي ال Libraries و بالتالي محدش يقدر يعمل Reverse Engineering عليه...
- ال Self-Debug دي عبارة عن Root Process بتعمل Child Processes بيعملوا Debug لل Root Process بمعني ان كل Process كبيرة في ال Code بتعمل ليها Child Processes بيقوموا بدور ال Debugger و بكدة مفيش اي Debugger خارجي يقدر يعمل Debug علي ال Code لأن ال Code بيبقي Self Debugging مفيش اي Debugger من برة يقدر يقرأ ال Processes بتاعته..
 

المشاركات المتشابهة

الردود
0
المشاهدات
8
الردود
0
المشاهدات
8
الردود
0
المشاهدات
18
الردود
0
المشاهدات
30
الردود
0
المشاهدات
27
الوسوم : الوسوم
reverse engineering الهندسة العكسية
عودة
أعلى