ฉันเห็นวิธีการแคร็กอย่างรุนแรงบนอินเทอร์เน็ต หน้าจะถูกห้ามไม่ให้ส่งจากภายนอก
ไฟล์ asp: code.asp
ไฟล์ข้อมูล: body.fix, head.fix
การใช้งาน: <img src = http://blog.netbei.com/code.asp>
response.buffer = true
Numcode
ฟังก์ชัน numcode ()
Response.expires = -1
Response.addheader Pragma ไม่มีแคช
Response.adheader Cache-clm, ไม่มีแคช
Dim znum, i, j
Dim Ados, Ados1
สุ่มจับเวลา
สร้างตัวเลขสี่หลักสุ่ม:
znum = cint (8999*rnd 1000)
ผ่านเซสชัน
เซสชัน (getCode) = znum
สำหรับลูปคือการใส่หมายเลขสุ่มลงในอาร์เรย์ของ 3 การตั้งถิ่นฐาน 3 ซึ่งสะดวกสำหรับการให้การแปลงอาร์เรย์ที่ตามมา
Dim Zimg (3), NSTR
NSTR = CSTR (ZNUM)
สำหรับ i = 0 ถึง 3
zimg (i) = cint (mid (nstr, i 1,1)))))
ต่อไป
สลัว pos
'กำหนดวัตถุไบนารี AdoDB.Stream สองรายการสำหรับการใช้การทำงานของข้อมูลภาพ:
ตั้งค่า ados = server.createObject (adoDb.stream)
Ados.Mode = 3
Ados.type = 1
Ados.open
ตั้งค่า ados1 = server.createObject (adoDb.stream)
ADOS1.MODE = 3
Ados1.type = 1
ADOS1.OPEN
'โหลด 0 ~ 9 ข้อมูลดิจิตอล 10x100, ข้อมูลอาร์เรย์ GBR, แต่ละ 320 ไบต์, 10 ตัวเลข 3200BYTE
'BGR หนึ่งจุด 10x10 คะแนนหนึ่งจุดสามไบต์ (ไบนารี 8 บิต, เฮกซาเด็ค 00 00 ~ ff)
'บรรทัด 10 คะแนน 30 ไบต์สิ้นสุด 00 00 00 สอง -byte 32 ไบต์ดังนั้น 10x100 น้อยกว่าภาพยาวแต่ละหมายเลข 10x10 คือ 320 ไบต์
'ผู้ที่เติบโตมากกว่ากว้างไม่มีวิธีที่จะจบ Mark 0000 มันคือ 300 ไบต์โดยตรง
นี่คือข้อมูลของ BMP 24 บิต
'สำหรับหัวมันก็ง่ายมากรวมถึงความยาวและความกว้างการเริ่มทำเครื่องหมายและอื่น ๆ
Ados.loadFromFile (Server.Mappath (body.fix)))
ADOS1.WRITE ADOS.READ (1280)
'ครั้งแรกสำหรับลูปและตัวเลขสี่ตัวที่สอดคล้องกันจะถูกสกัดจากจำนวนตัวเลขสุ่มที่สร้างจาก 10x100
แต่อาร์เรย์หมายเลขแนวตั้ง
สำหรับ i = 0 ถึง 3
Ados.Position = (9-zimg (i))*320
Ados1.position = i*320
ADOS1.WRITE ADOS.READ (320)
ต่อไป
'ล้างข้อมูลของ ADO ที่ใช้แล้วและปรับภาพหัวใหม่ 54 ไบต์ของไฟล์ส่วนหัวใหม่
Ados.loadFromFile (Server.Mappath (head.fix)))
pos = lenb (ados.read ())
Ados.Positation = POS 'ระบุตำแหน่ง POS คุณสามารถเพิ่มข้อมูลกราฟิกลงในตำแหน่ง 54 ไบต์
ที่สองสำหรับลูปจำนวนตัวเลขของตัวเลขจากบล็อกแนวตั้งไปจนถึงบล็อกตัวเลขแนวนอน
วิธีนี้คือการแยก 4 ครั้ง 320 ไบต์เพื่อเขียน 30 ไบต์ไปยังวัตถุ ADOS จากนั้นแยกข้อมูลภาพที่เลื่อนบรรทัดที่สอง
30 ไบต์เกิดจากฉลากสุดท้ายที่มีแถว 00 00 ใน BMP
สำหรับ i = 0 ถึง 9 ขั้นตอนที่ 1
สำหรับ j = 0 ถึง 3
Ados1.position = i*32 J*320
Ados.Positation = pos 30*ji*120
ADOS.WRITE ADOS1.READ (30)
ต่อไป
ต่อไป
Ados.Positation = 0
Response.BinaryWrite ส่งข้อมูลรูปภาพโดยตรงไปยังไคลเอนต์
Response.contentType = image/bmp
Response.binaryWrite Ados.read ()
Ados.Close: ตั้งค่า ADOS = ไม่มีอะไร
ADOS1.CLOSE: SET ADOS1 = ไม่มีอะไร
End Function reprint โปรดระบุจาก im286.com ที่ล้าสมัยโพสต์ที่อยู่นี้: http://www.im286.com/viewthread.php?
เพื่อให้เข้าใจถึงรหัสเหล่านี้ส่วนใหญ่จะเข้าใจวัตถุของข้อมูลไบนารีใน ASP, ADODB.Stream! โปรแกรมนี้ใช้ AdoDB.Stream เป็นหลัก ยังไม่มีเอ็นจิ้นการระบุตัวตนที่ดี ระบุ 4321 ถึง 89910 ดังนั้นรหัสรูปภาพยังคงปลอดภัยกว่า
ฉันเห็นวิธีการแคร็กอย่างรุนแรงบนอินเทอร์เน็ต หน้าจะถูกห้ามไม่ให้ส่งจากภายนอก
ไฟล์ asp: code.asp
ไฟล์ข้อมูล: body.fix, head.fix
การใช้งาน: <img src = "http://blog.netbei.com/code.asp" >>
response.buffer = true
Numcode
ฟังก์ชัน numcode ()
Response.expires = -1
Response.addheader "Pragma", "No-Cache"
Response.addheader "Cache-Clm", "No-Cache"
Dim znum, i, j
Dim Ados, Ados1
สุ่มจับเวลา
สร้างตัวเลขสี่หลักสุ่ม:
znum = cint (8999*rnd 1000)
ผ่านเซสชัน
เซสชัน ("getCode") = znum
สำหรับลูปคือการใส่หมายเลขสุ่มลงในอาร์เรย์ของ 3 การตั้งถิ่นฐาน 3 ซึ่งสะดวกสำหรับการให้การแปลงอาร์เรย์ที่ตามมา
Dim Zimg (3), NSTR
NSTR = CSTR (ZNUM)
สำหรับ i = 0 ถึง 3