الفريق العربي للهندسة العكسية
مجلة المهندس العكسي العدد 01 - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html)
+--- قسم : كتب الهندسة العكسية والبرمجة - Ebooks (https://www.at4re.net/f/forum-34.html)
+---- قسم : إصدارات مجلة المهندس العكسي (https://www.at4re.net/f/forum-37.html)
+---- الموضوع : مجلة المهندس العكسي العدد 01 (/thread-28.html)



مجلة المهندس العكسي العدد 01 - dj-siba - 19-10-2018

السلام عليكم و رحمة الله
 
[صورة مرفقة: at4re_rei_01.jpg]


الفريق العربي للهندسة العكسية و بكل فخر يقدم لكم هذا المولود الجديد و هو عبارة عن مجلة تقنية تنشر شهريا (منتصف كل شهر) يتم فيها التطرق إلى مواضيع متنوعة تلمس عالم الهندسة العكسية.

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

يكتبها طاقم أعضاء الفريق العربي للهندسة العكسية مع إمكانية نشر مقالات لأعضاء آخرين لا ينتمون للفريق.

الفريق العربي للهندسة العكسية منكم و إليكم.

رابط تحميل العدد 01:
https://www.at4re.net/files/at4re_rei/at4re_rei_01.rar



RE: مجلة المهندس العكسي العدد 01 - REinvestigator - 25-10-2018

افتباس من Coldzer0
 
إقتباس :
عندى سؤال بخصوص الجزئيه المتعلقه بال Delphi unit

لما يتم مسح ال program واضافه unit و {$E exe} تحدث مشكله وهى عدم تمكن البرنامج من التعرف على المتغيرات النصيه
مثلا
command := 'Helo '; فى هذه الحاله لا يعمل بسبب عدم معرفه المتغيرات واماكنها ف الذاكره على حسب تحليلى من داخل olly
لان الكومبيلر لا يعمل اضافه لل _InitExe الى فى ملف الجديد الناتج من ال unit

حاولت باكثر من طريقه لكن للاسف لم ينجح الامر Big Grin

 اقتباس من STRELiZIA
إقتباس :
نعم عند دفع الكومبايلر اهمال دوال الــ Initialization فانه يجب استبدالها بتغيير طريقة التفكير برمجيا...
مثلا، عند الاعتماد على الــ Affectation كما هو في العادة في البرمجة بدلفي الرمز ( :=: )

command := 'hello';
فإن نجاح عملية البناء تحتاج الى دوال اضافية يدمجها الكومبايلر مثل:

UStrClr@4
HandleFinally@0
UStrAsg@8

عند اهمالها قد تسبب اخطاء خلال التنفيذ او فشل عملية البناء...
//{$DEFINE StandardBuild}
{$E exe}

{$IFDEF StandardBuild}
program TabulaRasa32;
{$ENDIF}

{$IFNDEF StandardBuild}
unit TabulaRasa32;
interface

implementation
{$ENDIF}

uses
  Windows;
 var str: string;
begin
  str := 'AT4RE';
  MessageBoxA(0,
    'Try to build sample like me!',
    PAnsiChar(str),
    MB_ICONINFORMATION);
end.

هذه الأوامر مع اضافة متغير نصي يتم استدعائه يعمل عندي بدون مشاكل، لكن الملف الناتج كبير الحجم اكثر من 10 كب... بعد دمج الكومبايلر لكل ما يحتاجه لمعالجة النصوص...

//{$DEFINE StandardBuild}
{$E exe}

{$IFDEF StandardBuild}
program TabulaRasa32;
{$ENDIF}

{$IFNDEF StandardBuild}
unit TabulaRasa32;
interface

implementation
{$ENDIF}

uses
  Windows, SysUtils;
 var str: PAnsiChar;
begin
  SysUtils.StrCopy(str, 'AT4RE');
  MessageBoxA(0,
    'Try to build sample like me!',
     PAnsiChar(str),
    MB_ICONINFORMATION);
end.

لذا يجب تغيير طريقة التفكير و عدم الاعتماد على تغليفات دلفي و الاعتماد الكلي على البرمجة بــ Pure API و العمل بالــ Pointers على طريقة السي بلص بلص... يصبح الناتج صغير الحجم... 3.5 كب
مع عدم نسيان Initialization و تصفير المتغيرات المحجوزة التابعة للمؤشرات اولا... (في تغليفات دلفي يتم عملها بدون تدخل المبرمج) و بطريقة المقالة فالتفكير يجب ان يكون بعقلية التعامل مع المتغيرات على طريقة السي بلص بلص.