กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
312 6
URL.หัวข้อ /
URL
ลบกวนนอกเรื่องหน่อยครับ เกี่ยวกัน VB
ผมเขียนโปรแกรมด้วย VB 6.0 ตอนนี้เขียนเสร็จแล้ว แต่อยากให้ผู้ใช้สามารถ ลงได้จำนวน 3 ครั้งจะทำอย่างไร หรือจะมีวิธีอย่างไรครับรบกวนทีครับ อีกเรื่องครับ อยากให้ ไม่สามารถก๊อปปี่จากแผ่นด้วยครับ จะเป็นจาก Drive A หรือ CD ก็ได้ครับ ขอบคุณมากครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04053
ขอบคุณอย่างแรงครับ แต่อยากได้ตัวอย่างอยู่ดิครับ หุหุหุ
3 @R04074
ป้องกันการก๊อปปี้จากดิกส์หรือ เมื่อก่อนผมเคยทำงานที่บริษัทซอฟท์แวร์เฮ้าส์ เห็นเขาใช้โปรแกรม Prokeydisk
แต่ crack ได้อยู่ดี (เห็นเขาว่ากันนะ)
ป้องกันคงยากครับ ลองหาวิธีอื่นๆ ดูสิ
ปัจจุบันผมก็ป้องกันเหมือนกัน ผมใช้วิธีด้วยการล๊อกโปรแกรมไว้ ตอนติดตั้งต้องขอรหัสผ่านอะไรแบบนี้ ถ้าไม่ขอรหัสผ่านก็ใช้โปรแกรมไม่ได้ การหารหัสผ่านก็ให้อ่านค่าตัวเลขของเครื่องตัวนั้นๆ มา เช่น serial harddisk หรือ แลนการ์ด เป็นต้น แล้วมาผ่านสูตรคำนวนหลายตลบหน่อย แค่นี้ก็แคร๊กเกอร์ก็ต้องเหนื่อยหน่อยแล้ว
แต่ crack ได้อยู่ดี (เห็นเขาว่ากันนะ)
ป้องกันคงยากครับ ลองหาวิธีอื่นๆ ดูสิ
ปัจจุบันผมก็ป้องกันเหมือนกัน ผมใช้วิธีด้วยการล๊อกโปรแกรมไว้ ตอนติดตั้งต้องขอรหัสผ่านอะไรแบบนี้ ถ้าไม่ขอรหัสผ่านก็ใช้โปรแกรมไม่ได้ การหารหัสผ่านก็ให้อ่านค่าตัวเลขของเครื่องตัวนั้นๆ มา เช่น serial harddisk หรือ แลนการ์ด เป็นต้น แล้วมาผ่านสูตรคำนวนหลายตลบหน่อย แค่นี้ก็แคร๊กเกอร์ก็ต้องเหนื่อยหน่อยแล้ว
4 @R04101
คือผม อยากให้บอกโค๊ตที่ใช้อ่าน Serial HDD มาทีครับ ของผมเขียนแล้วแต่ไม่ได้เรื่อง อีกอย่างนึง Serial HDD จะมีตัวหนังสือปนอยู่ด้วยจะทำไงให้เอาแค่ตัวเลขมาใช้ได้ครับ รบกวนทีครับ ยากหน่อยนะครับ
5 @R04108
Public Declare Function GetVolumeInformation& Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName _
As String, ByVal pVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As _
Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long)
Public Const MAX_FILENAME_LEN = 256
Public Function GetDriveSerialNumber(Drive As String) As String
'ตรวจสอบ Harddisk Serial ID
Dim No&, s As String * MAX_FILENAME_LEN
Call GetVolumeInformation(Drive + ":\", s, MAX_FILENAME_LEN, _
No, 0&, 0&, s, MAX_FILENAME_LEN)
GetDriveSerialNumber = Mid(Hex(No), 1, 4) & "-" & Mid(Hex(No), 5, 4)
End Function
ลอกเขามาอีกทีหนึ่งนะ ส่วนตัวผมไม่ได้ใช้ sn ฮาร์ดดิกส์หรอก ผมเอาค่าอื่นๆ ที่อยู่ในเครื่องมาแปลง
เรื่องตัวอักษรที่อยู่ใน ซีเรี่ยล
ก็ใช้คำสั่ง ASC แปลงเป็นค่าตัวเลขแอสกี้สิ จบเลย เอาไปบวกลบคูณหายได้ตามอัธยาศัย
Alias "GetVolumeInformationA" (ByVal lpRootPathName _
As String, ByVal pVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As _
Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long)
Public Const MAX_FILENAME_LEN = 256
Public Function GetDriveSerialNumber(Drive As String) As String
'ตรวจสอบ Harddisk Serial ID
Dim No&, s As String * MAX_FILENAME_LEN
Call GetVolumeInformation(Drive + ":\", s, MAX_FILENAME_LEN, _
No, 0&, 0&, s, MAX_FILENAME_LEN)
GetDriveSerialNumber = Mid(Hex(No), 1, 4) & "-" & Mid(Hex(No), 5, 4)
End Function
ลอกเขามาอีกทีหนึ่งนะ ส่วนตัวผมไม่ได้ใช้ sn ฮาร์ดดิกส์หรอก ผมเอาค่าอื่นๆ ที่อยู่ในเครื่องมาแปลง
เรื่องตัวอักษรที่อยู่ใน ซีเรี่ยล
ก็ใช้คำสั่ง ASC แปลงเป็นค่าตัวเลขแอสกี้สิ จบเลย เอาไปบวกลบคูณหายได้ตามอัธยาศัย
6 @R04148
บคุณหลายๆ เด้อครับ คนไทยต้องงี้สิ หุหุหุ ไทยช่วยไทย
Time: 0.1263s
ซึ่งส่วนใหญ่ที่เคยอ่านเจอ (แต่ยังไม่เคยทำครับ) เขาจะใช้ Floppy Disk ช่วยในการเก็บจำนวนครั้งที่ได้ลงไปแล้ว ส่วนจะเก็บอย่างไรนั้นผมไม่ทราบวิธีครับ บางคนว่าเขียนเข้าไปเป็นไฟล์อะไรสักอย่างแล้วเข้ารหัสไว้ เวลาติดตั้งเราต้องเขียนโค้ดไปถอดรหัสนั้น แล้วเขียนข้อมูลลงไป
เคยเห็นโปรแกรมสอนการเขียน VB 6.0 ของจุฬาฯ ที่มี 7 แผ่น เขาก็พยายามใช้หลักการนี้เหมือนกัน แต่ก็มีคน crack ได้เหมือนเดิมครับ
ลองอ่านกระทู้ของต่างประเทศตรงนี้ดูครับ http://www.andreavb.com/forum/viewtopic.php?TopicID=907&page=0#2653 จะเป็นการแลกเปลี่ยนแนวความคิดในการป้องกันการ Copy CD แต่เขาก็พูดถึงหลักการป้องกันแบบต่างๆ ไว้ด้วย เผื่อเกิดแนวความคิดบ้างครับ