โจรที่กล่าวถึงในที่นี้หมายถึงการใช้ฟังก์ชันอันทรงพลังที่มีให้โดยส่วนประกอบ XMLHTTP ใน XML ใน ASP เพื่อเก็บข้อมูล (รูปภาพ หน้าเว็บ และไฟล์อื่น ๆ ) บนเว็บไซต์ระยะไกลไปยังท้องถิ่น และแสดงบนเพจหลังจากการประมวลผลต่างๆ หรือ ประเภทของโปรแกรมที่เก็บอยู่ในฐานข้อมูล คุณสามารถใช้โปรแกรมขโมยประเภทนี้เพื่อทำงานบางอย่างที่ดูเหมือนเป็นไปไม่ได้เลยในอดีต เช่น การเปลี่ยนหน้าของเว็บไซต์บางแห่งและเปลี่ยนเป็นหน้าของคุณเอง หรือบันทึกข้อมูลบางส่วน (บทความ รูปภาพ) ของเว็บไซต์บางแห่ง เพื่อนำไปใช้ในฐานข้อมูลท้องถิ่น ข้อดีของ Thief คือ ไม่จำเป็นต้องดูแลรักษาเว็บไซต์ เนื่องจากข้อมูลในโปรแกรม Thief มาจากเว็บไซต์อื่น และจะมีการอัปเดตเมื่อมีการอัปเดตเว็บไซต์ ซึ่งโดยทั่วไปแล้วจะช่วยประหยัดทรัพยากรเซิร์ฟเวอร์ได้มาก โปรแกรม Thief มีเพียงไม่กี่ไฟล์และเนื้อหาเว็บทั้งหมดมาจากเว็บไซต์อื่น ข้อเสียคือ: ความไม่เสถียร หากเว็บไซต์เป้าหมายผิดพลาด โปรแกรมก็จะผิดพลาดไปด้วย และหากเว็บไซต์เป้าหมายได้รับการอัพเกรดและดูแลรักษา โปรแกรมโจรก็จะต้องแก้ไขความเร็วตามไปด้วย เนื่องจากเป็นการโทรระยะไกล ความเร็วจะเร็วเท่ากับการอ่านข้อมูลบนเซิร์ฟเวอร์ภายในเครื่อง ซึ่งช้ากว่านั้นแน่นอน ฟังดูน่าทึ่งใช่ไหม? มาเริ่มเรียนรู้ความรู้เบื้องต้นเกี่ยวกับโปรแกรมโจรกันตอนนี้เลย!
มาศึกษาสิ่งที่ง่ายกว่านี้กันดีกว่า โปรแกรมพยากรณ์อากาศ บนเว็บไซต์ QQ
รหัสมีดังนี้:
-
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
Server.ScriptTimeOut=9999999
ฟังก์ชั่น getHTTPage(เส้นทาง)
t = GetBody (เส้นทาง)
getHTTPPage=BytesToBstr(t,GB2312)
สิ้นสุดฟังก์ชัน
' ขั้นแรก ให้ทำการตั้งค่าเริ่มต้นสำหรับโปรแกรมขโมย ฟังก์ชั่นของโค้ดข้างต้นคือการละเว้นข้อผิดพลาดที่ไม่ร้ายแรงทั้งหมด ตั้งค่าการหมดเวลาการทำงานของโปรแกรมขโมยให้เป็นเวลานานมาก (เพื่อไม่ให้เกิดข้อผิดพลาดในการหมดเวลาทำงาน) และแปลงค่าเริ่มต้นดั้งเดิม การเข้ารหัส UTF-8 จะต้องแปลงเป็นการเข้ารหัส GB2312 มิฉะนั้น การใช้คอมโพเนนต์ XMLHTTP โดยตรงเพื่อเรียกหน้าเว็บด้วยตัวอักษรจีนจะส่งผลให้มีโค้ดที่อ่านไม่ออก
ฟังก์ชั่น GetBody(url)
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
ตั้งค่าการดึงข้อมูล = CreateObject(Microsoft.XMLHTTP)
ด้วยการเรียกค้น
.เปิดรับ, url, เท็จ, ,
.ส่ง
GetBody = .การตอบสนองร่างกาย
จบด้วย
ตั้งค่าการดึงข้อมูล = ไม่มีเลย
ฟังก์ชันสิ้นสุด
'จากนั้นเรียกส่วนประกอบ XMLHTTP เพื่อสร้างวัตถุและดำเนินการตั้งค่าเริ่มต้น
ฟังก์ชั่น BytesToBstr (เนื้อหา, Cset)
objstream สลัว
ตั้ง objstream = Server.CreateObject (adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.เปิด
objstream เขียนเนื้อหา
objstream ตำแหน่ง = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.ปิด
ตั้ง objstream = ไม่มีเลย
ฟังก์ชันสิ้นสุด
ฟังก์ชันนิวสตริง(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
ถ้า Newstring<=0 แล้ว Newstring=Len(wstr)
ฟังก์ชันสิ้นสุด
'ในการประมวลผลข้อมูลที่บันทึกไว้ คุณต้องเรียกส่วนประกอบ adodb.stream และดำเนินการตั้งค่าการเริ่มต้น -
'ต่อไปนี้คือส่วนแสดงหน้า
-
หรี่ wstr,str,url,start,over,city
'กำหนดตัวแปรบางตัวที่จำเป็นต้องใช้
เมือง = Request.QueryString(id)
'ตัวแปร ID ที่ส่งคืนโดยโปรแกรม (นั่นคือเมืองที่ผู้ใช้เลือก) ถูกกำหนดให้กับ id
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'ที่นี่ตั้งค่าที่อยู่ของหน้าที่จำเป็นต้องรวบรวมข้อมูล แน่นอนว่า คุณยังสามารถระบุที่อยู่ได้โดยตรงโดยไม่ต้องใช้ตัวแปร
wstr=getHTTPage(URL)
'รับข้อมูลทั้งหมดของเพจที่ระบุ
start=Newstring(wstr, <html>)
'ที่นี่จะตั้งค่าส่วนหัวของข้อมูลที่ต้องประมวลผล ตัวแปรนี้ควรได้รับการตั้งค่าตามสถานการณ์ที่แตกต่างกัน สามารถกำหนดเนื้อหาเฉพาะได้โดยการดูซอร์สโค้ดของหน้าที่จำเป็นต้องรวบรวมข้อมูล เนื่องจากเราต้องรวบรวมข้อมูลทั้งหน้าในโปรแกรมนี้ เราจึงตั้งค่าให้รวบรวมข้อมูลทุกหน้า โปรดทราบว่าเนื้อหาที่กำหนดจะต้องไม่ซ้ำกับเนื้อหาของหน้าและไม่สามารถทำซ้ำได้
เกิน=Newstring(wstr, </HTML>)
'ส่วนที่สอดคล้องกับการเริ่มต้นคือส่วนท้ายของข้อมูลที่จำเป็นต้องได้รับการประมวลผล ในทำนองเดียวกัน เนื้อหาที่ตั้งค่าไว้จะต้องไม่ซ้ำกันในหน้านั้น
body=mid(wstr,สตาร์ท,โอเวอร์สตาร์ท)
'กำหนดช่วงของหน้าที่แสดง
'ถึงเวลาใช้ Qiankun Shift +++ แล้ว คุณสามารถแทนที่อักขระที่ระบุในข้อมูลด้วยอักขระบางตัวได้
body = แทนที่ (body, skin1, พยากรณ์อากาศ - เครือข่ายสกิน)
body = แทนที่ (body,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 อย่างไรก็ตาม เนื่องจากข้อจำกัดด้านพื้นที่ ฉันจะไม่ทำเช่นนี้ อธิบายพวกเขาทีละคน