[تمرين] حماية ذاتية : البرنامج معطوب، مصاب بفيروس او تم العبث به
#19
السلام عليكم

فقط كإضافة جعل كود الحماية في برنامج خارجي متعب كل مرة تقوم بكومبايل للكود تقوم بتكرار نفس الامر اضافة الـ CRC32 الى البرنامج
او تقوم بالعملية مرة واحدة عند الإنتهاء من البرنامج...
قمت بتغيير بسيط لكود إظافة CRC بحيث يأخذ مسار البرنامج المراد إضافة الـ CRC له كبرامتر و إستدعائه بإستخدام Build Events

PHP كود :
procedure AddCrc;
const 
Rec_SIZE  = SizeOf(UInt32);
var
  FS:TStream;
  idCrc:TIdHashCRC32;
  C:UInt32;
  ExeFile:string;
begin
  ExeFile 
:= ParamStr(1);// تغيير بسيط

  FS := TFileStream.Create(ExeFile, fmOpenReadWrite);
  try
      FS.Position := FS.Size - Rec_SIZE * 2;
      if (FS.Read(C,Rec_SIZE) = Rec_SIZE) and (C = FS.Size) then // previously done
         FS.Size :=  FS.Size - Rec_SIZE * 2; // trunc crc slot
     FS.Position := FS.Size;
     C := FS.Size + Rec_SIZE * 2;
     FS.Writebuffer(C, Rec_SIZE);
     FS.Position := 0;
     idCrc:=TIdHashCRC32.Create;
     C := StrToInt('$'+ idCrc.HashStreamAsHex(FS));
     idCrc.Free;
     C := C xor $FFFFFFFF;
     FS.Writebuffer(C,Rec_SIZE);// add crc
     Showmessage('Done');
  finally
    FS.Free;
  end;
end; 

يتم وضع البرنامج المسئول عن اضافة crc الى جانب البرنامج المراد حمايته ثم يتم استدعائه باستخدام Build Events مع تمرير مسار البرنامج 

[صورة: attachment.php?aid=4714]

بهذه الطريقة الحماية تكون اوتوماتيكية ..


الملفات المرفقة
.png   Build Events.png (الحجم : 22.81 ك ب / التحميلات : 29)
.zip   Protect.zip (الحجم : 660 بايت / التحميلات : 7)
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 1 user says قال شكرا ل S.FATEH على المشاركة المفيدة
  • Ndagor
الرد


الردود في هذا الموضوع
RE: [تمرين] حماية ذاتية : البرنامج معطوب، مصاب بفيروس او تم العبث به - بواسطة S.FATEH - 09-12-2022, 09:03 PM
بخصوص [تمرين] حماية ذاتية - بواسطة I3CT - 28-06-2022, 12:47 PM
RE: بخصوص [تمرين] حماية ذاتية - بواسطة Delphi4Us - 28-06-2022, 01:10 PM

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


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