04-05-2020, 11:14 AM
هادا موضوع للإجابة على احد اعضاء الدين تسألوا كيف يشتغل dongle
ما هوا ال دونغل ؟
جهاز
ما نوع هادا الجهاز ؟
في معضم احيان يكون على شكل usb لاكن يقدر يجي على شكل PCI device او ب serail port او ...
ما الدي يستخدم فيه ؟
حماية البرامج
انماط عمل هادا الجهاز؟
custom for a software
hard coded in EPROM
هادا يكون مصمم خصيصا ل احد برامج حيت تجد انه هادا اخير (dongle ) يتضمن شفرات برمجية مكملة لل software
و معضم custom تكون الحماية على شكل تالي لا تستطيع تشغيل البرنامج بدون dongle هادا نمط تلاقيه في ال software غالية التمن ويكون من صعب كسر هادا نوع
نمط تاني وهوا شائع
نمط programmable
حيت يتم استخدام sdk خاصة ب الدنغل للحماية البرامج
هناك نوعن من حماية
البرانامج لا يشتغل الا عند وجود dongle
او
اجزاء من البرنامج لا تشتغل (functionality ) بحيت هاده اخيرة تكون موجودة في البرنامج لاكن مشفرة حيت ل تشغيلها
لابد من وجود dongle لأن هادا اخير هوا الدي يحتوي على key خاصة ب فك تشفير
لهادا تجد ان كسر البرنامج المحمي ب الدونغل يكون ممكنا في اغلب الحالات في حالة توفر dongle نفسه
معضم البرامج التي تستخدم الدونغل يكون لديها driver ل عمل communication مع dongle
كيف يشتغل ؟
قصة بسيطة عبارة عن تشفير و لبعض وضائف او برنامج ككل و مفاتيح فك تشفير تكون في dongle و روتين فك تشفير
يقدر يكون في البرنامج او في dongle نفسه هادا اخير هوا صعب كسره
طرق الكسر و تخطي؟
معضم الناس تعتمل على emulators جاهزة و تقوم ب تعديل عليها لكي تعمل bypass ل checks لي يعمله driver
لاكن في حالة عدم توفر emulators تقدر ت patch اجزاء مسأولة عن check او تعمل code injection لي يقوم بإجابة بشكل صحيح في كل مرة يتم عمل check
لهادا احسن شي عمل crc check عشان ما يقدر يعمل modification في البرنامج لاكن هادا اخير هوا نفسه تقدر تعمل patch له
كيف تقوم بعمل هندسة عكسية له؟
طريقة صحيحة هي عمل Monitoring لل communication ما بين البرنامج و ال dongle
لكي تستطيع فعل دالك هناك
في حالة نمط ال programmable توجد داول حاول تجدها و تراقبها
في نسخ جديدة تجد هادا
هاده دوال تختص في معرفة ادا كان جهاز ال dongle متصل ب الحاسوب
فرق بين word و block هوا انه هادا اخير تستطيع ان تعطيه buffer و len تبعوا ورح يكتبوا او يقراءه
هاكادا يتم معرفة من هو من
كل exe محمي ب dongle يكون يحتوي على wrapper في بعض أحيان wrapper يكون لا يحتاج dongle بتاتا مما يسهل على cracker العملية. هاده الحالة تحصل عنداما يكون المبرمج غبي ويقوم ب عمل check على return value لي تجي من دوال لي فوق
في من معضم احيان يكون من مطلوب توفر dongle ل تخطي wrapper في هاده الحالة يكون من شبه المستحيل تخطي بدون وجود dongle . هاده الحالة يكون عملية فك تشفير تحصل ف dongle نفسه
فكر في wrapper على انه packer حيت يعمل شوية check و بعدين يعمل decode لل exe وتشغيله.
بعض dongle تعمل check قبل كل call لأي دالة لي من دوال لي فوق لمعرفة ما ادا كان في tampering
يكون متل العلامة تحقق على انه كلشي بخير
حين كيفية تعامل مع custom dongle
هنا امور صعبة بسبب انه دونغل ده مش شائع
تحليل driver سوف يكون خطوة اولا
في بعض حالات هاد شي لا ينفع سوف يكون عليك عمل تحليل ل dongle نفسه وهوا شي خاص ب الهاردوير
وفي اخير لا تقلق لن توجهك هاده الحالة
بنسبة لكافة الدوال الموجودة في dongle هادا رابط لل documentation
dongle sdk
هناك بعض check خاصة ب timing ف لابد من قرائة كاملة ل sdk خاصة بهم لمعرفة كيفية تعامل مع كل واحد من حالات التي تواجهك
على كل هناك شركات اخرى غير sentinel التي تتوفر على دوال ب أسماء من نوع اخر لاكن نفس concept
ما هوا ال دونغل ؟
جهاز
ما نوع هادا الجهاز ؟
في معضم احيان يكون على شكل usb لاكن يقدر يجي على شكل PCI device او ب serail port او ...
ما الدي يستخدم فيه ؟
حماية البرامج
انماط عمل هادا الجهاز؟
custom for a software
hard coded in EPROM
هادا يكون مصمم خصيصا ل احد برامج حيت تجد انه هادا اخير (dongle ) يتضمن شفرات برمجية مكملة لل software
و معضم custom تكون الحماية على شكل تالي لا تستطيع تشغيل البرنامج بدون dongle هادا نمط تلاقيه في ال software غالية التمن ويكون من صعب كسر هادا نوع
نمط تاني وهوا شائع
نمط programmable
حيت يتم استخدام sdk خاصة ب الدنغل للحماية البرامج
هناك نوعن من حماية
البرانامج لا يشتغل الا عند وجود dongle
او
اجزاء من البرنامج لا تشتغل (functionality ) بحيت هاده اخيرة تكون موجودة في البرنامج لاكن مشفرة حيت ل تشغيلها
لابد من وجود dongle لأن هادا اخير هوا الدي يحتوي على key خاصة ب فك تشفير
لهادا تجد ان كسر البرنامج المحمي ب الدونغل يكون ممكنا في اغلب الحالات في حالة توفر dongle نفسه
معضم البرامج التي تستخدم الدونغل يكون لديها driver ل عمل communication مع dongle
كيف يشتغل ؟
قصة بسيطة عبارة عن تشفير و لبعض وضائف او برنامج ككل و مفاتيح فك تشفير تكون في dongle و روتين فك تشفير
يقدر يكون في البرنامج او في dongle نفسه هادا اخير هوا صعب كسره
طرق الكسر و تخطي؟
معضم الناس تعتمل على emulators جاهزة و تقوم ب تعديل عليها لكي تعمل bypass ل checks لي يعمله driver
لاكن في حالة عدم توفر emulators تقدر ت patch اجزاء مسأولة عن check او تعمل code injection لي يقوم بإجابة بشكل صحيح في كل مرة يتم عمل check
لهادا احسن شي عمل crc check عشان ما يقدر يعمل modification في البرنامج لاكن هادا اخير هوا نفسه تقدر تعمل patch له
كيف تقوم بعمل هندسة عكسية له؟
طريقة صحيحة هي عمل Monitoring لل communication ما بين البرنامج و ال dongle
لكي تستطيع فعل دالك هناك
في حالة نمط ال programmable توجد داول حاول تجدها و تراقبها
IsHasp()
في نسخ جديدة تجد هادا
[font][size=small]Hasp.Login() or HASP.GetInfo()[/size][/font]
هاده دوال تختص في معرفة ادا كان جهاز ال dongle متصل ب الحاسوب
HaspCode ()
تستخدم لتبادل passowrd خاصة بdongle لكي تقدر تعمل communication مع dongle لازم ترسل passwords مع function callwriteword() writebyte(), and readbyte() readword()
تستخدم لكتابة word او byte ل memory خاصة ب dongle readBlock() writeblock()
للقرائة وكتابة من memory خاصة ب ال dongle فرق بين word و block هوا انه هادا اخير تستطيع ان تعطيه buffer و len تبعوا ورح يكتبوا او يقراءه
haspID()
تستخدم لمعرفة dongle id ادا كنت ممن يبيعون ال crack لأحد software حاول ان تخفي هادا اخير لكي لا تدخل سجن هاكادا يتم معرفة من هو من
كل exe محمي ب dongle يكون يحتوي على wrapper في بعض أحيان wrapper يكون لا يحتاج dongle بتاتا مما يسهل على cracker العملية. هاده الحالة تحصل عنداما يكون المبرمج غبي ويقوم ب عمل check على return value لي تجي من دوال لي فوق
في من معضم احيان يكون من مطلوب توفر dongle ل تخطي wrapper في هاده الحالة يكون من شبه المستحيل تخطي بدون وجود dongle . هاده الحالة يكون عملية فك تشفير تحصل ف dongle نفسه
فكر في wrapper على انه packer حيت يعمل شوية check و بعدين يعمل decode لل exe وتشغيله.
بعض dongle تعمل check قبل كل call لأي دالة لي من دوال لي فوق لمعرفة ما ادا كان في tampering
يكون متل العلامة تحقق على انه كلشي بخير
حين كيفية تعامل مع custom dongle
هنا امور صعبة بسبب انه دونغل ده مش شائع
تحليل driver سوف يكون خطوة اولا
في بعض حالات هاد شي لا ينفع سوف يكون عليك عمل تحليل ل dongle نفسه وهوا شي خاص ب الهاردوير
وفي اخير لا تقلق لن توجهك هاده الحالة
بنسبة لكافة الدوال الموجودة في dongle هادا رابط لل documentation
dongle sdk
هناك بعض check خاصة ب timing ف لابد من قرائة كاملة ل sdk خاصة بهم لمعرفة كيفية تعامل مع كل واحد من حالات التي تواجهك
على كل هناك شركات اخرى غير sentinel التي تتوفر على دوال ب أسماء من نوع اخر لاكن نفس concept