الفرق بين Disassembler, Decompiler, Debugger
1-الDisassembler عبارة عن برنامج بياخد الMachine Code الموجود في سكشن .text اللي جوا الملف ويحوله لـ Assembly Code الDisassembler يختلف عن الDecompiler في انه بيطلع الكود في شكل Assembly code ولكن الDecompiler بيطلع الكود في شكل High-Level Programming Language زي C++ مثلا فيه disassemblers كتير تقدر تستخدمهم زي: IDA Ghidra Binary Ninja Cutter gdb 2-الDecompiler عكس الCompiler، بيقوم بنفس اللي بيعمله الDisassembler ولكن بإختلاف ان الDecompiler بيطلع High-Level Code،، يعني الDecompiler بياخد الexecutable file يحوله ل source file فيه high-level progamming language code زي كود C مثلا او غيره أمثلة لtools تقدر تستخدمها كdecompilers: dnSpy IDA JD Project Cavaj Java Decompiler Ghidra
ILSpy 3-الDebugger برنامج بيستخدم لاختبار وتصحيح البرامج، بيتم تشغيله تحت شروط معينة بتسمح للشخص انه يراقب ويحدد العمليات والتغييرات اللي بتحصل في ال memory والcpu registers والdisk وبيسمح كمان بتعديل محتوياتهم .... كل دا والبرنامج شغال أمثلة على الdebuggers اللي تقدر تستخدمها: ollydbg x64dbg gdb IDA pro debugger WinDbg =ممكن نستخدم الDisassembler والDecompiler في مرحلة Advanced Static Analysis عشان نراجع الassembly instructions والcode =ممكن نستخدم الDebugger في مرحلة Advanced Dynamic Analysis عشان نفحص ونحلل الMalware وهو شغال