delphi4arab منتديات دلفي للعرب

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

تفضل آخي 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:
اتمنى اني افدتك وافدت غيرك

والسلام عليكم ورحمة الله وبركاتة
هناك العديد من الحيل لاكتشاف المنقح
هذه احدى الطرق :
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
لكن من سيحاول كسر برنامجك سيكسره وهو مغلوق يعني كل هذه التحققات (checks) من وجود المنقح لن تفيد .
ثم خذها مني . الهاكرز يهتمو فقط بالبرامج ذات الشهرة الكبيرة و التي تقدم خدمات مميزة .
برنامج مثل photoshop هم يعلمون في Adobe ان 60% من المستخدمين لديهم نسخ مقرصنة . ولم يفعلو شىء سوى اتباع الطريقة التقليدية serial N . يعني شركة بحجم Adobe تعجز عن ابتكار طريقة جديدة للحماية .

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

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

كود :
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 2