31-12-2011, 09:15 PM
01-01-2012, 07:44 PM
السلام عليكم
لم افهم اخي ماتعنيه بالضبط لكن :
لاستعمال الأسمبلي ستستعمل البلوك
asm
//assembly code
end;
للحماية يمكنك قراءة احد الكتب في قسم كتب دلفي بعنوان كيف تجعل برنامجك أصعب في الكسر
....وهناك عدة طرق اخرى
لم افهم اخي ماتعنيه بالضبط لكن :
لاستعمال الأسمبلي ستستعمل البلوك
asm
//assembly code
end;
للحماية يمكنك قراءة احد الكتب في قسم كتب دلفي بعنوان كيف تجعل برنامجك أصعب في الكسر
....وهناك عدة طرق اخرى
02-01-2012, 07:27 AM
أشكرك وجارى الاطلاع
-
أعلم التصريح بإستخدام الاسيمبلى داخل بيئة دلفى ولكن ما قصدته للتعليمتان SETE and STENE
اراهم داخل برنامج Ollydbg أثناء التنقيح فهم يختبران ما إذا كانت قيم احد المسجلات 1 أو 0
فقط ما هى طريقة محاكة لهاتان التعليمتان اثناء البرمجة
دمت بود
-
أعلم التصريح بإستخدام الاسيمبلى داخل بيئة دلفى ولكن ما قصدته للتعليمتان SETE and STENE
اراهم داخل برنامج Ollydbg أثناء التنقيح فهم يختبران ما إذا كانت قيم احد المسجلات 1 أو 0
فقط ما هى طريقة محاكة لهاتان التعليمتان اثناء البرمجة
دمت بود
03-01-2012, 08:05 PM
إقتباس :ما قصدته للتعليمتان
SETE and STENE
اراهم داخل برنامج Ollydbg أثناء التنقيح فهم يختبران ما إذا كانت قيم احد المسجلات 1 أو 0
نعم اخي الكريم فهاتان التعليمتان تأتران على المسجلات او المتغيرات حسب القيمة الوجودة في مسجل الرايات Flags Register
STENE = Set if not equal
SETE = Set if equal
وهناك غيرها ك SETNA و SETA و...
ويمكنك استعمالها في دلفي على المتغيرات لحفظ قيمة فيها (0 أو 1) بعد عملية المقارنة ..أو حسب الرغبة
وهدا مثال
PHP كود :
procedure TForm1.FormCreate(Sender: TObject);
var Bool: Boolean;
begin
asm
MOV EAX, 1
CMP EAX, 26
SETE Bool
end;
ShowMessage(FloatToStr(Abs(StrtoFloat(BoolToStr(Bool)))));
end;