تقييم الموضوع :
  • 9 أصوات - بمعدل 4.11
  • 1
  • 2
  • 3
  • 4
  • 5
مجلة المهندس العكسي العدد 01
#2
افتباس من 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 و تصفير المتغيرات المحجوزة التابعة للمؤشرات اولا... (في تغليفات دلفي يتم عملها بدون تدخل المبرمج) و بطريقة المقالة فالتفكير يجب ان يكون بعقلية التعامل مع المتغيرات على طريقة السي بلص بلص.
implicit conversion (think forward)

أعضاء أعجبوا بهذه المشاركة : dj-siba , M!X0R , Polia , adhem , mribraqdbra , azarol


الردود في هذا الموضوع
مجلة المهندس العكسي العدد 01 - بواسطة dj-siba - 19-10-2018, 02:25 PM
RE: مجلة المهندس العكسي العدد 01 - بواسطة REinvestigator - 25-10-2018, 06:50 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم