كيف إكتشاف وجود منقح ؟
#11
إقتباس :العفو اخي
واتمنى من كل قلبي ان أتعلم الهندسة العكسية واتعلم كيف طرق الحماية منها وادرسها بحذافيرها
هل احداً يعرف كتاب ما يشرح اساسيات الهندسة العكسية وامثلة واختبارات ؟
جزاكم الله كل خير

تفضل آخي M_Mori2010 ... لديك 4 مراحل تنهيها وستكون إن شاء الله ... قد تعلمت الكثير من امور الهندسية العكسية
كود :
[الطبعة الأولى من كتاب الفريق] مدخل إلى الهندسة العكسية : http://www.at4re.com/f/showthread.php?2229 [الطبعة الثانية من كتاب الفريق] الهندسة العكسية : خطوة إلى الأمام : http://www.at4re.com/f/showthread.php?6557 مشوار الألف ميل يبدأ بخطوة .. : ( موضوع مهم جداً جداً جداً ) http://www.at4re.com/f/showthread.php?4731

بعد ان تنهي المصادر السابقة ... ستكون لديك مبادئ الـ هندسة العكسية ... وبعد ذلك تتوجه للممارسة من خلال الدروس ... والتجارب ..اتيت لك ببعض الدروس الشيقة :
سلسله دروس تساعدك على الممارسة والتائقلم مع بئية الهندسية العكسية Smile
كود :
سلسلة دروس الهندسة العكسية للمبتدئين - المجلد الاول : http://aoreteam.com/vb/showthread.php?tid=6247

سلسلة دروس الفك اليدوي ...
كود :
سلسلة دروس الفك اليدوي - المجلد الاول : http://aoreteam.com/vb/showthread.php?tid=2748

مكتبة دروس دسمة Smile
كود :
فهرس دروس الهندسة العكسية : http://aoreteam.com/vb/showthread.php?tid=3177

قم بتحميل جميع الروابط السابقة ... كي لا تضيع من يدك او تحذف لا قدر الله... فهي كنز لا يفوت ... ولن تجد مثل إلا القليل Wink

اضن اني قد لخصت لك الكثير ... لذلك لا تضيع جهدي هباً وانطلق في بحر الهندسية العكسية P:
اتمنى اني افدتك وافدت غيرك

والسلام عليكم ورحمة الله وبركاتة
الرد
#12
هناك العديد من الحيل لاكتشاف المنقح
هذه احدى الطرق :
PHP كود :
function IsDebugger () :BOOL ;assembler;
asm
MOV EAX
,DWORD PTR FS:[18h]
MOV EAX,DWORD PTR DS:[EAX+30h]
MOVZX EAX,BYTE PTR DS:[EAX+2h]
mov Result,EAX
end
; 

موقع يحتوي على عدة أفكار يمكن تطبيقها في anti_reversing Smile
كود :
http://www.openrce.org/reference_library/anti_reversing
الرد
#13
لكن من سيحاول كسر برنامجك سيكسره وهو مغلوق يعني كل هذه التحققات (checks) من وجود المنقح لن تفيد .
ثم خذها مني . الهاكرز يهتمو فقط بالبرامج ذات الشهرة الكبيرة و التي تقدم خدمات مميزة .
برنامج مثل photoshop هم يعلمون في Adobe ان 60% من المستخدمين لديهم نسخ مقرصنة . ولم يفعلو شىء سوى اتباع الطريقة التقليدية serial N . يعني شركة بحجم Adobe تعجز عن ابتكار طريقة جديدة للحماية .

go open source and ask for donation Wink
الرد
#14
الحمد لله استطعت عمل Dll تعمل Hook لبعض الدوال التي تكتشف المنقح :
Hook Anti Debuggers - Source Code
http://www.delphi4arab.net/forum/showthr...#post40010
جزاكم الله خير جميعاً
الرد
#15
شكراً لك اخي ALmuhhnad

وكتبها الله في ميزان حسناتك

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#16
إقتباس :ثم خذها مني . الهاكرز يهتمو فقط بالبرامج ذات الشهرة الكبيرة و التي تقدم خدمات مميزة .
أخي الكريم هل برنامجي شهير لدرجة ان بعض الهكرات العراقيين تخطو الحماية وكسرو البرنامج وعبثو وبه ؟
ومع ذلك انا ضد ان اقوم بتشفير برنامجي وذلك خوفاً من مضادات الفايروس :> حيث ان التشفير = خلل في بعض المضادات وحتى الان برنامجي بدون تشفير وقمت بحمايته بالأكواد :d
بطرق عديدة واولها بمقارنة الرتبة ..

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#17
طريه اخرى

كود :
TUnicode_String = packed record Length, MaximumLength:Word; Buffer:PWideChar; end; Tobject_Type_Tnformation = packed record TypeName:TUnicode_String; TotalNumberOfHandles, TotalNumberOfObjects:LongWord; end; PObject_All_Information = ^TObject_All_Information; TObject_All_Information = packed record NumberOfObjects:LongWord; ObjectTypeInformation:array[0..0] of Tobject_Type_Tnformation; end; function ZwQueryObject(Handle:LongWord; ObjectInformationClass:LongWord; ObjectInformation:Pointer; ObjectInformationLength:LongWord; var ReturnLength:LongInt):LongWord stdcall; function GetDebugger:LongBool; var size:LongWord; pMem:PObject_All_Information; ReturnLength,length:LongInt; TypeName:PWideChar; tmpMem:Pointer; begin // size:=0; Result := False; ReturnLength:=0; repeat Inc(size,ReturnLength); pMem:=VirtualAlloc(nil,size,MEM_COMMIT,PAGE_READWRITE); tmpMem := pMem; if(ZwQueryObject(0,3,pMem,size,ReturnLength) < 0)then begin VirtualFree(pMem,0,MEM_RELEASE); pMem := nil; end else Break; until False; if pMem <> nil then begin TypeName:=''; while TypeName <> nil do begin length := pMem.ObjectTypeInformation[0].TypeName.Length; TypeName := pmem.ObjectTypeInformation[0].TypeName.Buffer; if length = 22 then begin if TypeName = 'DebugObject' then begin if pmem.ObjectTypeInformation[0].TotalNumberOfObjects > 0 then begin Result := True; Break; end else Break; end; end; pMem:= Pointer(LongInt(TypeName)+length and -4); end; VirtualFree(tmpMem,0,MEM_RELEASE); end; end; function ZwQueryObject;external 'ntdll.dll';
الرد


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


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