• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

soufianosse

اعضاء
  • عدد المشاركات

    99
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

6 عادي

عن soufianosse

  • الرتبة
    عضو
  • تاريخ الميلاد 01/27/1987

معلومات الملف الشخصي

  • الجنس ذكر
  1. كيف ينفد هدا الكود ؟

    شكرا لكما فهمت الامر الان :happy:
  2. كيف ينفد هدا الكود ؟

    الكود وجدته في احد الكتب التي تتكلم عن الـRootkit وهو عبارة عن كود للوصول الى الـInterrupt Descriptor Table واستعراضه وكما قلت MAKELONG عبارة عن ماكرو يستقبل متغيرين معرف كالاتي #define MAKELONG(a, b) ((unsigned long) (((unsigned short) (a)) | ((unsigned long) ((unsigned short) (b))) << 16)) لم افهم كيف يعمل هدا الماكرو هدا مقطع الكود الموجود في الشرح NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDriverObject, IN PUNICODE_STRING theRegistryPath ) { IDTINFO idt_info; // this structure is obtained by // calling STORE IDT (sidt) IDTENTRY* idt_entries; // and then this pointer is // obtained from idt_info unsigned long count; // load idt_info __asm sidt, idt_info idt_entries = (IDTENTRY*) MAKELONG(idt_info.LowIDTbase,idt_info.HiIDTbase); for(count = 0;count <= MAX_IDT_ENTRIES;count++) { char _t[255]; IDTENTRY *i = &idt_entries[count]; unsigned long addr = 0; addr = MAKELONG(i->LowOffset, i->HiOffset); _snprintf(_t, 253, "Interrupt %d: ISR 0x%08X", count, addr); DbgPrint(_t); } return STATUS_SUCCESS; الكود مفهوم فقط دالك السطر الدي وضعت فوق وكيف يتعامل معه الماكرو MAKELONG
  3. السلام عليكم كتيرا ما اجد هده الصيغة في بعض الاكواد ولا افهمها متال : unsigned long addr = 0; addr = MAKELONG(i->LowOffset, i->HiOffset); كيف ان متغير واحد من نوع Long نضع فيه قيمة عنصرين من Structure :mellow: هو متغير عادي وليس مؤشر على Structure يعني يمكن ان يحمل قيمة واحدة هدا حسب معرفتي وارجو تفسير هده الصيغة :huh:
  4. التعليمة(pragma pack(1

    شكرا لك اخي لكن للاسف لا اجيد الانجليزية لو امكن فرنسي او مقدمة بسيطة بالعربي ممن يفهم معنا الامر
  5. السلام عليكم وجدت هده التعليمة في احد البرامج الفتوحة المصدر ولم افهم معناها #pragma pack(1) مع اني لاحضت ان كود البرنامج يحتوي على العديد من الـStructure لو امكن من فضكلم شرح دور هده التعليمة
  6. ما هو دور هده التعليمة ؟

    شكرا لك اخي GM حملت كتابين Basic Architecture System Programming Guide
  7. ما هو دور هده التعليمة ؟

    اه الامر هكدا ادن بحت عن مراجع انتل سابقا ولم اجد هل هي مراجع مدفوعة ام مجانية ؟
  8. ما هو دور هده التعليمة ؟

    هل cr4 هو متغير ؟
  9. ما هو دور هده التعليمة ؟

    لم افهمك اخي GM OpCode يكون بالبيناري على صح تعبيري الفجوال ستوديو يتعرف على الامر Mov جربتها العديد من المرات لكني اعتقد انك تقصد امرا اخر بـcr4
  10. السلام عليكم وجدت كود اسمبلي الاتي في احد المواضيع ( وسط كود سي ) : push ebp; mov ebp,esp cmp dword ptr ds:[0x77DA041C],0 /////now setup the jump _emit 0xEA _emit 0xAA _emit 0xAA _emit 0xAA _emit 0xAA _emit 0x08 _emit 0x00 مادا تعني _emit ؟ :unsure: وجدت هدا الشرح في MSDN http://msdn.microsoft.com/en-us/library/1b80826t(VS.80).aspx ححسب ما فهمت انه يصلح لتعريف متغير بحجم 1 بايت :blush: لكن كيف ؟ ومادا تعني 0xEA ..xAA .......؟ :huh:
  11. وجدت الخطأ واصلحته لكني لم افهم السبب الخطأ هو تحريك مؤشر الماوس فلو لاحضنا مؤشر الماوس امام Nom سنجد زائد بمقدار خانتين لهدا فانه يعيد كتابة اخر خخانتين اما Class فهو زائد بمقدار خانة واحدة لهدا فانه يكتب حرف واحد. لو قمنا بزيادته بمقدار 4 خانات امام Nom سيكتب 4 بايت الاخيرة لكن لمادا وكيف ؟ جربته على الفجوال سي ++ ونفس الامر
  12. لا لم اعدل في الكود جربت الكود ( نسخ لسق ) فاعطاني هدا الخطأ كيف يحدت هدا ؟ يقوم بنسخ 2 بايت الاخيرة ويطبعها عند الضغط على entré استعمل مترجم dev ++c
  13. شكرا لك لم اكن اعلم انه بالامكان الوصول الى متغيرات معرفة Private داخل Class مباشرة من داخل Fonction ما اعلم انه ضروري المرور عبر الـConstructor البرنامج به مشكل بسيط لا اعرف السبب في الاسم وفي القسم متلا في الاسم كتبت amine عندما اضغط entré تصبح aminene تم اضافة الحرفين الاخيرين في القسم متلا كتبت 2bac تصبح 2bacc ، يعيد الحرف الاخير هده صورة توضيحية للمشكل http://img191.imageshack.us/img191/7118/sanstitre1slp.jpg + طريقتك باستعمال for switch رائعة ستساعدني كتيرا في ادخال معلومات الجدول ^^
  14. هدا هو البرنامج حتى الان نفد البرنامج ستلاحض انه هو من يطلب منك ادخال بياناتك #include <cstdlib> #include <iostream> #include<windows.h> #include<conio.h> using namespace std; class Etudiant { private: char Nom[30]; char Prenom[30]; char Lycee[30]; char Class[30]; public: Etudiant(){}; Etudiant(char Nom[]) { } void print(); void GetInfo(); void Dessin(); void gotoxy ( int x, int y ); ~Etudiant(){}; }; void Etudiant::gotoxy ( int x, int y ) { COORD coord = {x, y}; SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord ); } void Etudiant::print() { gotoxy(32,1); cout <<"Bulletin"<<endl; gotoxy(32,2); cout <<"--------"<<endl; gotoxy(10,3); cout <<"Nom :"; gotoxy(10,5); cout <<"Prenom :"; gotoxy(53,3); cout <<"Lycee :"; gotoxy(53,5); cout <<"Class :"; gotoxy(18,10); cout <<"Matiere"; gotoxy(31,10); cout <<"Coff"; gotoxy(40,10); cout <<"Note"; gotoxy(48,10); cout <<"Totale";; } void Etudiant::Dessin() { int i=0; int k=0; for(i=9;i<=19;i++) { gotoxy(17,i); cout <<"---------------------------------------"; i++; } for (i=9;i<=19;i++) { gotoxy(16,i); cout<<"|"; for (k=28;k<=60; k+=9) { gotoxy(k,i); cout<<"|"; } } for (i=19;i<=24;i+=2) { gotoxy(46,i); cout<<"----------"; for (k=46;k<=60;k+=9) { gotoxy(k,i-1); cout<<"|"; } } } void Etudiant::GetInfo() { gotoxy(17,3); //هنا كود جلب الاسم الدي ادخله المستخدم وارسال هدا الاسم الى // Constructor // ليتم وضعه في المصفوفة المناسبة // او جلب الاربع بيانات ( الاسم النسب القسم المدرسة ) وارسالها مرة واحدة الى الـConstructor } int main(int argc, char *argv[]) { Etudiant *OB=new Etudiant; OB->print(); OB->Dessin(); OB->GetInfo(); getch(); return EXIT_SUCCESS; }
  15. نعم اخي الكريم اعرف هده الطريقة لكن ربما مازالت لم تفهم قصدي انا لا اريد ارسال معلومات مباشرة المستخدم هو من سيدخلها ادن هده الطريقة لن تنجح هدا الكود خاطأ لكن فقط لتفهم مادا اقصد Etudiant *OB=new Etudiant("cin>> Nom","cin>> Prenom","cin>> class","cin>> lycee") ; المستخدم هو من سيدخل المعلومات والدالة GetInfo هي المسؤولة عن الادخال لوو اردنا استعمال هده الطريقة التي وضعتها فيجب تعريف 4 مصفوفات داخل الدالة main وبعد دالك مطالبة المستخدم بادخال البيانات وبعدها نسجلها في المصفوفات تم نشتق كائن للكلاس ونرسل عبره هده المصفوفات الى Constructor كما في طريقتك لكن هده الطريقة غير جيدة رغم انها شغالة الا توجد طريقة لارسال البيانات التي ادخلها المستعمل مباشرة الى المصوفات التي عرفناها داخل الكلاس ومن داخل الـ GetInfo يعني اوامر cin ستكون داخل getinfo وليس main ومن تم تسجل في المصفوفات التي على الكلاس