يشير اللص المذكور هنا إلى استخدام الوظائف القوية التي يوفرها مكون XMLHTTP في XML في ASP لالتقاط البيانات (الصور وصفحات الويب والملفات الأخرى) الموجودة على موقع الويب البعيد إلى الموقع المحلي، وعرضها على الصفحة بعد معالجة مختلفة أو نوع من البرامج المخزنة في قاعدة البيانات. يمكنك استخدام هذا النوع من برامج السرقة لإنجاز بعض المهام التي كانت تبدو مستحيلة تماما في الماضي، مثل تغيير صفحات موقع معين وتحويلها إلى صفحات خاصة بك، أو حفظ بعض البيانات (مقالات، صور) لموقع معين لاستخدامها في قاعدة البيانات المحلية. مميزات برنامج Thief هي: ليست هناك حاجة لصيانة الموقع، لأن البيانات الموجودة في برنامج Thief تأتي من مواقع أخرى، وسيتم تحديثها مع تحديث الموقع، ويمكنها توفير الكثير من موارد الخادم بشكل عام يحتوي برنامج Thief فقط على عدد قليل من الملفات، وكل محتوى الويب هو من مواقع ويب أخرى. العيوب هي: عدم الاستقرار، إذا حدث خطأ في موقع الويب المستهدف، فسوف يتعطل البرنامج أيضًا، وإذا تمت ترقية موقع الويب المستهدف وصيانته، فسيحتاج برنامج اللص أيضًا إلى التعديل وفقًا لذلك، لأنه مكالمة عن بعد؛ السرعة تعادل سرعة قراءة البيانات على الخادم المحلي، وهي بالتأكيد أبطأ من ذلك. ماذا عن ذلك، يبدو مذهلاً، أليس كذلك؟ لنبدأ الآن في تعلم بعض المعلومات التمهيدية عن برنامج اللص!
دعونا ندرس شيئًا أبسط، وهو برنامج التنبؤات الجوية على موقع QQ
الرمز هو كما يلي:
<%
على خطأ استئناف التالي
Server.ScriptTimeOut=9999999
الدالة getHTTPage(المسار)
ر = جيتبودي (المسار)
getHTTPPage=BytesToBstr(t,GB2312)
وظيفة النهاية
' أولاً، قم بإجراء بعض إعدادات التهيئة لبرنامج اللص، وتتمثل وظائف الرموز المذكورة أعلاه في تجاهل جميع الأخطاء غير الفادحة، وضبط مهلة تشغيل برنامج اللص على وقت طويل جدًا (حتى لا تحدث أخطاء مهلة التشغيل). ، وتحويل الإعداد الافتراضي الأصلي يجب تحويل ترميز UTF-8 إلى ترميز GB2312، وإلا فإن استخدام مكون XMLHTTP مباشرةً لاستدعاء صفحة ويب بأحرف صينية سيؤدي إلى تعليمات برمجية مشوهة.
وظيفة GetBody(url)
على خطأ استئناف المقبل
تعيين الاسترداد = CreateObject(Microsoft.XMLHTTP)
مع الاسترجاع
.افتح Get، url، False،،
.يرسل
GetBody = .ResponseBody
نهاية مع
تعيين الاسترجاع = لا شيء
وظيفة النهاية
'ثم قم باستدعاء مكون XMLHTTP لإنشاء كائن وإجراء الإعدادات الأولية.
الدالة BytesToBstr(body,Cset)
objstream خافت
تعيين objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
وظيفة النهاية
الدالة نيوسترينغ(wstr,strng)
سلسلة جديدة=Instr(lcase(wstr),lcase(strng))
إذا كانت Newstring<=0 ثم Newstring=Len(wstr)
وظيفة النهاية
'لمعالجة البيانات التي تم التقاطها، تحتاج إلى استدعاء مكون adodb.stream وإجراء إعدادات التهيئة. %>
'ما يلي هو جزء عرض الصفحة
<%
خافت wstr، شارع، URL، بداية، أكثر، المدينة
'حدد بعض المتغيرات التي يجب استخدامها
المدينة = Request.QueryString (المعرف)
'يتم تعيين متغير المعرف الذي تم إرجاعه بواسطة البرنامج (أي المدينة التي حددها المستخدم) إلى المعرف
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'هنا قم بتعيين عنوان الصفحة التي يجب الزحف إليها، بالطبع، يمكنك أيضًا تحديد عنوان مباشرةً دون استخدام المتغيرات.
wstr=getHTTPage(url)
'الحصول على كافة بيانات الصفحة المحددة
بداية = نيوسترينغ (وستر، <html>)
'هنا يتم تعيين رأس البيانات التي تحتاج إلى معالجة، ويجب تعيين هذا المتغير وفقًا لمواقف مختلفة، ويمكن تحديد المحتوى المحدد من خلال عرض الكود المصدري للصفحة التي يجب الزحف إليها. نظرًا لأننا نحتاج إلى الزحف إلى الصفحة بأكملها في هذا البرنامج، فقد قمنا بتعيينه للزحف إلى جميع الصفحات. لاحظ أن محتوى المجموعة يجب أن يكون فريدًا لمحتوى الصفحة ولا يمكن تكراره.
over=Newstring(wstr, </HTML>)
'المطابق للبداية هو ذيل البيانات التي تحتاج إلى معالجة، وبالمثل، يجب أن يكون المحتوى المحدد فريدًا في الصفحة.
الجسم = منتصف (wstr، بداية، الإفراط في البداية)
'قم بتعيين نطاق الصفحات المعروضة
'حان الوقت الآن لاستخدام Qiankun Shift +++، من خلال الاستبدال، يمكنك استبدال الأحرف المحددة في البيانات ببعض الأحرف.
الجسم = استبدال (الجسم، الجلد 1، شبكة توقعات الطقس - الجلد)
الجسم = استبدال (الجسم، http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'تم الانتهاء من أعمال الاستبدال في هذا البرنامج، إذا كانت هناك احتياجات أخرى، فيمكنك الاستمرار في إجراء عمليات الاستبدال المماثلة.
استجابة. كتابة الجسم
%>
بعد استبدال المحتوى الذي يحتاج إلى تعديل، يمكن عرض المحتوى المعدل على الصفحة. هذه هي نهاية العملية
استخدام البرنامج ونتائجه: قم بإزالة جزء الوصف من الكود أعلاه واحفظه باسم tianqi.asp، ثم قم بتحميله على مساحة تدعم ASP وXML، وقم بتشغيله في المتصفح. يمكنك أيضًا تجميل الواجهة أو تحسين البرنامج بناءً على هذا البرنامج.
ما سبق هو مجرد بعض التطبيقات الأساسية لمكون XMLHTTP، في الواقع، يمكنه أيضًا تنفيذ العديد من الوظائف، مثل حفظ الصور عن بعد إلى الخادم المحلي، واستخدام مكون adodb.stream لحفظ البيانات المكتسبة في قاعدة البيانات. اللص لديه مجموعة واسعة من الوظائف والاستخدامات. لكن لا يمكنك استخدامه للقيام بأشياء غير قانونية!
ربما لا يزال بعض الأشخاص يريدون أن يتساءلوا، هل هذا النوع من برامج اللصوص مجرد براءة اختراع لـ ASP؟ لا، يمكن لـ PHP تحقيق نفس التأثير من خلال وظيفة fopen نظرًا للخصائص المختلفة لـ PHP نفسها، يتمتع برنامج اللص المكتوب بمزايا واضحة من حيث الحجم وكفاءة التنفيذ مقارنةً بـ ASP، ومع ذلك، نظرًا لقيود المساحة، لن أفعل ذلك شرح لهم واحدا تلو الآخر.