http://www.pscode.com/vb/scripts/ShowCode....=59815&lngWId=1
أرجوا أن تستمعوا بهذا الكود و الذي يوجد به أكثر من 25000 سطر كود
و أحب أشكر أخي أحمد عز على هذا
http://www.pscode.com/vb/scripts/ShowCode....=59815&lngWId=1
أرجوا أن تستمعوا بهذا الكود و الذي يوجد به أكثر من 25000 سطر كود
و أحب أشكر أخي أحمد عز على هذا
تم تعديل هذه المشاركة بواسطة أحمد عز في 3 أبريل 2005 في 14:26
السلام عليكم..
أعتقد أنه سيكون هناك شوية أخطاء في الأكواد..يجب تصحيحها حتي يكتمل البرنامج ويكون جاهز علي الشغل علي طول.. مهما كان نظام التشغيل..
فمش عارف هل من الممكن فتح الموضوع للمناقشة في هذا البرنامج,وهل سنجد حماس من الأعضاء لذلك,لإن البرنامج في مجمله رائع وبجد متعوب فيه..ويستاهل النقاش.
فمثلا الإجراء الفرعي التالي هو أول إجراء وقع تحت عيني عندما فتحت المشروع,ستجده في مشروع العميل Client في موديول ServerEditor.bas
الإجراءهو AddNulls ..شفرته هي:
Private Function AddNulls(Str As String) As String 'This Function Add Spaces InBetwwen All Char's In The String To Match String Values Inside Exe files On Error Resume Next Dim StrLen As Integer, RetStr As String StrLen = Len(Str) For i = 1 To StrLen - 1 RetStr = RetStr & Mid$(Str, i, 1) & Chr$(0) Next RetStr = RetStr & Right$(Str, 1) AddNulls = RetStr End Function
وظيفته -كما هو موضح- هو ترك مسافات بين البيانات التي ستوضع في السيرفر,
لا أعلم إذا كان ذلك الإجراء سيعمل عند الجميع أم لا,فالمفروض إن كلمة Str مجحوزة ولا ينبغي المخاطرة باستخدامها,حيث في بعض الأحيان يعطي خطأ عليها... -حدث معي من قبل-
لكن الطريف في الأمر هو هذا السطر :
RetStr = RetStr & Mid$(Str, i, 1) & Chr$(0)
علي حسب معلوماتي لا يمكن إضافة مسافات فارغة بين كلمة ما ابدا بهذا الشكل بوضع Chr(0). بل بوضع chr(32) لأن استخدام chr(0) لن يضع مسافة ولن يسمح لأي حرف أخر أن يوضع بعد أول حرف تم وضعه بالفعل في المتغير RetStr
أصلا ذلك الإجراء لا أعرف لماذا تم وضعه ؟ فلا أجد أي تمويه به علي أسلوب البيانات المدخله, وأعتقد أن تشفير وفك تشفير البيانات كان سيكون أفضل.
مش عارف ليه يذكرني هذا الإجراء بالمثل "ودنك منين يا جحا..قام لف ايده من وراء ظهره ..ومسك الودن العكسية وقال اهيه"
لأني أعتقد إن الكود بهذه الطريقة سيكون أنظم..
Private Function AddNulls(Str1 As String) As String For i = 1 To Len(Str1) RetStr = RetStr & Mid(Str1, i, 1) & Chr$(32) Next RetStr = Left(RetStr, Len(RetStr) - 1) 'Remove last Space AddNulls = RetStr End Function
وللإستخدام:
Private Sub Command1_Click()
MsgBox AddNulls("Separated")
End Subمن المحتمل جدا أن يكون كلامي السابق ذاك تخاريف ويكون الإجراء السابق له استخدام أخر في منطقة أخري لم أخذ بالي منها..فعلشان كده في انتظار مشاركة الأخوان..
تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 31 مارس 2005 في 04:27
الأخ Pharaonic_Guy
أولا المديول مخصص لتعديل الـserver و بما أن السيرفر EXE فأن الـtext الموجودة داخل هذا الملف تحول الى unicode و بما أن التعديل سيكون بحروف أنجليزية ASCII فأنه لا يحتاج فقط الا القسم الأول من حرف الunicode ( 8 بت من 16 بت ) فأن القسم الأخر من الحرف يكون 0 أو بمعنى أصح null
ليس الغرض منها أضافة مسافات و أنما أضافة Nulls و ها واضح من أسم الدالة AddNulls و ليس AddSpace
أعتقد أن أسلوبي صعب فى الشرح و لكن أتمنى أن تكون وصلت الى ما أقصدة
شكرا لأخى أحمد عصام على هذا الموضوع ،
أخى Pharaonic_Guy أعتقد أن رد أخى neo قد أجاء عن سؤالك .
قمت بوضع الكود للمره الثانيه على الموقع على الرابط الأتى :-
http://www.pscode.com/vb/scripts/ShowCode....=59815&lngWId=1
إذا حدث ما حدث ، سأقوم برفعه على سيرفرنا وسأكتفى بوضع رابط هناك ،، وقد قمت بمراسلة مؤسس الموقع حول ذلك .
تم تعديل هذه المشاركة بواسطة أحمد عز في 3 أبريل 2005 في 10:13
فريق إيجيت بروجيكتس لتطوير و تصميم مشاريع التخرج لطلبة نظم الحاسبات و الإتصالات و حلول الشركات
http://www.egit-projects.comمن موضوعــاتــى
برنامج البحث المتقدم In-File Spider V1.5
أداه مصريه شبيهه بميكروسوفت XML 3.0 + إضافات جديده و أسرع فى الأداء
ما تحتاجة لتصميم البرامج من ادوات و موارد
Handle-X Trial V1.0 ...... برنامج الشبكات و الإختراق العربى 100% بدون أدوات OCX خارجيه
السلام عليكم
شكرا على وضع الكود للاستفادة
لكن قد تم حذفه مرة اخرى...
عندما تولد يا ابن آدم يؤذن في اذنك من غير صلاة...
وعندما تموت.... يصلى عليك من غير آذان....
فكأن حياتك في الدنيا ليست سوى... الوقت الذي تمضيه بين الأذان والصلاة...
فلا تقضيه بما لاينفع
Mohammad Lahlouh
نرجو وضع الوصله السريعه للبرنامج لأنه أتسمح مره أخرى من على موقع planet نرجو وضع وصله مباشره للتحميل وشكراً
تم حذف البرنامج من الموقع
ياريت الاخ احمد لو يضع لنا الكود هنا بالمنتدى
:)
وَقُل رَّبِّ زِدْنِي عِلْماً
الأخوه m_lahlouh ، ringojet ، arafa
أرفقت الكود للإستفاده ، ومن يريد إضافة أى تعليق أتمنى أن يكتب رده أو رأيه فى صفحة البرنامج فى Pscode على البرابط الأتى :-
http://www.pscode.com/vb/scripts/ShowCode....=59815&lngWId=1
وشكرا على ملاحظتك أخى إبراهيم :rolleyes:
فريق إيجيت بروجيكتس لتطوير و تصميم مشاريع التخرج لطلبة نظم الحاسبات و الإتصالات و حلول الشركات
http://www.egit-projects.comمن موضوعــاتــى
برنامج البحث المتقدم In-File Spider V1.5
أداه مصريه شبيهه بميكروسوفت XML 3.0 + إضافات جديده و أسرع فى الأداء
ما تحتاجة لتصميم البرامج من ادوات و موارد
Handle-X Trial V1.0 ...... برنامج الشبكات و الإختراق العربى 100% بدون أدوات OCX خارجيه
حاجه رائعة و انا فخور بيكم بس عن نفسى انا لسه جديد فى vb انا اصلا oracle , asp و عموما هحاول اتجاوب
و شكرا على الروح الحلوه اوى دى
السلام عليكم..
أعذروني يا أخواني علي تلك التخاريف السابقة .. حيث لم تتح لي فرصة تجريب البرنامج نتيجة لخطأ ليس منك أخي أحمد عز ... والخطأ يوجد في برنامج العميل وهو خطأ سخيف جدا ولا أعرف لماذا يحدث عندي أصلا..حيث يشير إلي أنه يريد مرجع لمكتبة علي متغير عادي جدا تم تعريفه .. حاولت حذف السطر .. فيشير لنفس الخطأ في موضع أخر وهكذا...
حاولت تشغيل برنامج العميل علي 6 أجهزة .. وليس هناك فائدة حتى الآن...
المهم من ذلك هو أخي NEO قد ذكر شاكرا السبب من دالة AddNulls .. وهي إضافة Nulls بين حروف النص لمقارنتها بما يوجد داخل ال EXE ..حيث أنه أي String يخزن داخل ال EXE علي هيئة يونيكود..وبالتالي يلزم تحويل النص عندنا.. حتي تتم مقارنة صحيحة vbBinaryCompare
والله .. أعلم كل هذا وكان من الممكن نسخ النص إلي Byte Array .. ولأن كل حرف من حروف النص حجمه 2 بايت فالبايت الأول سيكون لرقم كود Ascii لأي حرف والبايت الثاني سيكون لإضافة القيمة Null .. أي بعد كل حد سيضيف حد به قيمة Null ..
Private Sub Command1_Click() Dim MyArray() As Byte Dim strName As String Dim strRetName As String strName = "Mohamed" MyArray = strName For i = LBound(MyArray) To UBound(MyArray) Debug.Print MyArray(i); strRetName = strRetName & MyArray(i) Next Debug.Print Debug.Print strRetName End Sub
أو يمكننا أيضا باستخدام دالة CopyMemory نسخ النص من الذاكرة وسيكون أيضا بعد كل حرف يوجد Null..وهذا لنفس السبب أن الحرف يحجز مساحة 2 بايت ويمكننا معرفة حجم النص في الذاكرة باستخدام LenB.
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, ByVal Source As Any, ByVal Length As Long) Private Sub Command1_Click() Dim strName As String Dim lLen As Long Dim MyArray() As Byte Dim strRetName As String strName = "Mohamed" lLen = LenB(strName) ReDim MyArray(lLen - 1) CopyMemory MyArray(0), ByVal StrPtr(strName), lLen For I = LBound(MyArray) To UBound(MyArray) Debug.Print MyArray(I); strRetName = strRetName & MyArray(I) Next I Debug.Print Debug.Print strRetName End Sub
تلك التخاريف في المشاركة الثانية قمت بها حيث أنني استعجلت واعتمدت في تفسير الإجراء AddNulls علي شرحه وكان التعليق داخله:
'This Function Add Spaces InBetwwen All Char's
المهم كما وعدتكم هذه بعض التخاريف الجديدة وأرجو أن تتحملوها بصدر رحب ...
بحثت داخل كود الخادم Server ولم أجد كود استرجاع أي بيانات جديدة تم تخزينها بواسطة Edit Server مثل( رقم المنفذPort وكلمة المرور Pass ) والتي ستكون مخزنة داخل الخادم نفسه أثناء التشغيل RunTime ..
فهل تلك العملية موجودة أم سيتم إرفاقها في نسخ قادمة من البرنامج..
إذا كانت موجودة فسبق أن طلبت منكم أن تتحملوها بصدر رحب :wacko: ..
أما إذا لم تكن موجودة وكنتم مستمرين في تخزين البيانات داخل ال EXE بهذا الشكل..
فكيف ستستعيدوا تلك البيانات مرة أخري بعدما سيتم ضغط ال EXE ببرنامج UPXأو أي برنامج أخر..
وإذا لم يتم ضغطه باستخدام أي برنامج ضغط فأعتقد أنه لابد من إعادة النظر في الطريقة التي تخزن بها البيانات
وبالذات كلمة المرور..
حيث يتم تخزينه بتلك الصورة (|Pass|) ,وبالتالي يمكن معرفتها بسهوله بالبحث داخل ملف ال EXE عن القيمة 7C ..
أنظر الصورة التالية حيث قمت بوضع كلمة مرور ولتكن (0123456789)

كما لاحظت من الصورة .... كل شيء انكشف وبان.. حتى البيانات الأخري ومنها أسماء البرامج المراد القضاء عليها..
فأعتقد أن أفضل وسيلة لتخزين بيانات السيرفر ومنها رقم البورت والباسورد والبيانات الأخري بحيث لا يتأثر معها الضغط بأي برنامج .. هي أن يتم تخزينها بإضافتها بواسطة برنامج Edit Server في ذيل ال EXE .. وبحيث تكون مشفرة .. بأي نوع من التشفير.. حتي لو كان تشفير Ascii تعبان... والله بينفع وبيعدي...
لكني أتكلم هنا عن تشفير MD5 مثلا...
وبالتالي سيكون عندنا ال EXE تم تشفيره بأي برنامج... والبيانات سيتم إضافتها مشفرة في ذيل البرنامج وبالتالي نستطيع الوصول إليها وفك تشفيرها ومعرفة البيانات المراد استخدامها مثل رقم المنفذ والباسورد..
أما بالنسبة لموديولي Matrix و Hardware فهما رائعان جدا , وأشكركم عليهما كثيرا ..
:)
البيانات صريحه جدا فى هذه النسخه و من السهل جدا الحصول عليها ... أنا أعلم هذا بس لم يسعفنى الوقت لتشفيرها أو البحث عن طريقه للتشفير و الإخفاء
لهذا أتحت الكود لإمكانية التعديل فيه
طريقة الedit server و توصيفات السيرفر هذه بدائيه جدا بس لم يكن لدى وقت لها فقمت بإستخدام هذه الطريقه البدائيه و قمت ببرمجتها فى يوم واحد و كان قبل التسليم بيومين فقط ، الوقت برضه كان مشكله وأنا إتصرفت فى حدود الوقت المسموح به
شكرا لك أخى Pharaonic_Guy على دراسة الكود ، نفعنا الله بعلمك :)
فريق إيجيت بروجيكتس لتطوير و تصميم مشاريع التخرج لطلبة نظم الحاسبات و الإتصالات و حلول الشركات
http://www.egit-projects.comمن موضوعــاتــى
برنامج البحث المتقدم In-File Spider V1.5
أداه مصريه شبيهه بميكروسوفت XML 3.0 + إضافات جديده و أسرع فى الأداء
ما تحتاجة لتصميم البرامج من ادوات و موارد
Handle-X Trial V1.0 ...... برنامج الشبكات و الإختراق العربى 100% بدون أدوات OCX خارجيه
إن شاء الله إلاصدار الجديد ينافس البرامج الأجنبية و كمان يكون معروض للبيع
وأشكركم علي سرعة التواجب..
والسلام عليكم...
جزاك الله خيرا

منتديات كوكب الكمبيوتر
لكل جديد في عالم تكنولوجيا المعلومات والكمبيوتر والأخبار العلمية
//////////////////////// ماقصرتوا///////////////////////////////////
//////////////////////////////////////////////////////////////////
------------------------------------------------------------***---------***------------*****
جزاك الله خيرا
هذا الموضوع مغلق.