السلام عليكم ورحمة الله
نعلم جيدا أن الكثير من البرامج تعمل وفق مدة تجريبية ، تعتمد هذه البرامج على تاريخ النظام.
* ماذا لو ثبتنا تاريخ هذا البرنامج ؟ ، مثال برنامج به باقي 30 يوم من المدة التجريبية ، حتى مع تغيير التاريخ يبقى التاريخ ثابت لا تنقص الأيام.
- يوجد برنامج يقوم بهذه المهمة
RunAsDate
رابط البرنامج
كود :
http://www.nirsoft.net/utils/run_as_date.html
+ على ما أعتقد يوجد مصدر للبرنامج بلغة #C
كود :
https://github.com/badforlabor/runasdate/blob/master/Program.cs
* الأن إلى صلب الموضوع ماذا لو برمجنا هذا البرنامج بلغة الدلفي ؟ .
+ المشاركة متاحة للجميع ، من لديه خبرة في التعامل مع الملفات التنفيذية فل يشاركنا بخبرته ، المبدأ نفس عمل برنامج [b]Loader[/b]
السلام عليكم
ترجمة بسيطة لذلك الكود المكتوب ب #C ربما تفيد
[
attachment=4566]
(28-11-2021, 10:47 PM)AX302 كتب : [ -> ]السلام عليكم
ترجمة بسيطة لذلك الكود المكتوب ب #C ربما تفيد
وعليك السلام
شكرا على تحويل الكود الى الدلفي ، لكن لا يقوم بالمهمة المطلوبة
بعد تتبع برنامج
RunAsDate يعتمد على دوال Winapi الخاصة بـ Windows ، الممثلة في ملف Kernel32.dll
برنامج في حالة اخذ المعلومات من النظام بواسطة دالة ما، يتم إعادة توجيهه بشئ أخر
* وطرف الخيط في هذا المصدر ، حيث تتم عملية الحقن
كود :
https://github.com/MahdiSafsafi/DDetours
يمكننا اعادة توجيه دالة افتراضية للتاريخ و الوقت
و عليكم السلام و رحمة الله
موضوع جميل و مفيد جدا...
اظن ان قسمه المناسب هو قسم
التمارين...
القيت نظرة على سورس "
السي شارب" و عملت له بناء مع حذف و اضافة اشياء (مثل اضافة التحقق من ان التطبيق
تم تشغيله بصلاحيات الأدمن)
ما يقوم به السورس
الأصلي و "
المعدل" بسيط جددا:
1- يحفظ التاريخ الحقيقي.
2- يغير تاريخ النظام بما يحتويه ملف "
runasdate.
ini"
3- يشغل البرنامج المستهدف بما يحتويه ملف "
runasdate.
ini"
4- ينتظر مدة معينة بما يحتويه ملف "
runasdate.
ini"
5- يعيد التاريخ الحقيقي.
6- ينهي تنفيذ نفسه.
كملخص، يقوم التطبيق برمجيا ما يستطيع عمله صاحب الجهاز يدويا.
[
attachment=4567]
بخصوص الترجمة الى دلفي، المثال فوق ينقصه:
1- اضافة معلومات لــ
STRUCTURE
PHP كود :
NewSystemTime.wSecond := 0;
NewSystemTime.wHour := 0;
NewSystemTime.wMinute := 0;
2- اضافة "
الانتظار" بين مرحلة تشغيل البرنامج المستهدف و امر ارجاع التاريخ الحقيقي.
PHP كود :
ShellExecute(0, 'open', PWideChar(FileName), '', '', SW_SHOWNORMAL);
sleep(5000);
SetLocalTime(OldSystemTime);
و اخيرا، دالة النظام المسؤولة عن تغيير التاريخ تحتاج صلاحيات "
المدير" لكي تعمل...
بخصوص طريقة عمل التطبيق
csharp يمكن تجاوزها ! كيف ؟
بخصوص اداة
nirsoft لم القي نظرة على عملها بعد...
(29-11-2021, 07:03 PM)larbiparadox كتب : [ -> ] (28-11-2021, 10:47 PM)AX302 كتب : [ -> ]السلام عليكم
ترجمة بسيطة لذلك الكود المكتوب ب #C ربما تفيد
وعليك السلام
شكرا على تحويل الكود الى الدلفي ، لكن لا يقوم بالمهمة المطلوبة
السلام عليكم
تم عمل تعديل بسيط مثل ما قال الاخ I3CT (اضافة Structure + UAC)
بخصوص عمل برنامج NirSoft , من الموقع الرسمي يمكن ملاحظة التالي :
PHP كود :
How does it work ?
RunAsDate intercepts the kernel API calls that returns the current date and time (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime, NtQuerySystemTime, GetSystemTimePreciseAsFileTime), and replaces the current date/time with the date/time that you specify.
Intercepts بمعنى القيام باعتراض (Hook) تلك الدوال و تغير قيم فيها
يمكن تفقد هذا المثال لدالة GetlocalTime ربما يفيد
PHP كود :
https://www.52pojie.cn/thread-988900-1-1.html
[
attachment=4568]
(30-11-2021, 05:05 PM)AX302 كتب : [ -> ] (29-11-2021, 07:03 PM)larbiparadox كتب : [ -> ] (28-11-2021, 10:47 PM)AX302 كتب : [ -> ]السلام عليكم
ترجمة بسيطة لذلك الكود المكتوب ب #C ربما تفيد
وعليك السلام
شكرا على تحويل الكود الى الدلفي ، لكن لا يقوم بالمهمة المطلوبة
السلام عليكم
تم عمل تعديل بسيط مثل ما قال الاخ I3CT (اضافة Structure + UAC)
بخصوص عمل برنامج NirSoft , من الموقع الرسمي يمكن ملاحظة التالي :
PHP كود :
How does it work ?
RunAsDate intercepts the kernel API calls that returns the current date and time (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime, NtQuerySystemTime, GetSystemTimePreciseAsFileTime), and replaces the current date/time with the date/time that you specify.
Intercepts بمعنى القيام باعتراض (Hook) تلك الدوال و تغير قيم فيها
يمكن تفقد هذا المثال لدالة GetlocalTime ربما يفيد
PHP كود :
https://www.52pojie.cn/thread-988900-1-1.html
شكرا لـ I3CT و AX302 ، طريقة تغيير وقت نظام مؤقتا ، ليس بحل جيد لأنه في كل مرة تشغل البرنامج يؤخر وقت نظام
أفضل حل و هو اعتراض (Hook) تلك الدوال و تغير قيم فيها ، ولكن اعتراض الدوال الخاصة بالملف المستهدف
السلام عليكم.
هناك وحدة اسمها EXMODE ،
هذه الوحدة تتيح الفرصة للكتابة في الملف التنفيذي.
ربما تكون مفيدة.
يمكن تخزين تاريخ الابتداء و تاريخ النظام و المقارنة بينهما.[
attachment=4569]
برمجت على السريع تطبيق صغير الحجم (
32/
64) بت بهدف تجربة الحقن عليه و جعله يرجع ما نريد...
[
attachment=4570]
![[صورة: 5dmT3Y6.gif]](https://i.imgur.com/5dmT3Y6.gif)