มีหลายวิธีที่จะใช้บางสิ่งเช่นนี้ แต่นี่เป็นวิธีที่ไม่ควรทำยากเกินไป:
คุณต้องมีเว็บไซต์ที่เปิดเผยต่อสาธารณะที่ไหนสักแห่งที่โฮสต์ไฟล์ที่มีแฮชของคีย์ใบอนุญาตที่ถูกขึ้นบัญชีดำ วิธีจัดการไฟล์นี้ขึ้นอยู่กับคุณ แต่ไฟล์นั้นต้องการแฮชต่อบรรทัดเท่านั้น
จากนั้นเป็นประจำซอฟต์แวร์ของคุณเริ่มดาวน์โหลดไฟล์นี้ (ภาษาฝั่งเซิร์ฟเวอร์ส่วนใหญ่มีให้สำหรับสิ่งนี้) จากนั้นค้นหาไฟล์เพื่อแฮชของรหัสสัญญาอนุญาตที่ติดตั้ง หากพบว่าแอปพลิเคชันรู้ว่าควรจะตายจนกว่าจะลบบัญชีดำ
MD5 หรือความลับที่คล้ายกันรวมถึงความลับควรเพียงพอสำหรับสิ่งนี้ คุณอาจได้รับนักเล่นที่ดีกว่าและให้แอปพลิเคชันส่งคำขอไปยังเว็บไซต์ของคุณและคุณค้นหาในฐานข้อมูลได้ทันที แต่ไฟล์ (สำหรับสิ่งที่ฉันคิดว่าจะเป็นรายการสั้น ๆ ) หวังว่าจะยังคงมีขนาดเล็กและอาจ วิธีที่ง่ายที่สุด
ส่วนที่ยากขึ้นคือการทำให้แอปพลิเคชันไม่ทำงาน ท้ายที่สุดคุณต้องเก็บมันไว้ที่ไหนสักแห่งภายในซึ่งหมายความว่าถ้ามันชัดเจนเกินไปมันอาจล้มล้างได้ง่ายและถึงแม้ว่ามันจะไม่ชัดเจนจนเกินไปก็สามารถย้อนกลับได้อย่างง่ายดายโดยการกู้คืนตารางที่เหมาะสม / file (s) ดังนั้นฉันขอแนะนำวิธีที่สองของการป้องกันเช่นกัน
วิธีนี้จะเก็บ "สด" หรือ "ตาย" (หรือสิ่งที่คล้ายกันพอ) ในตารางหรือไฟล์ แต่แฮชอีกครั้ง สิ่งนี้จะต้องถูกแฮชด้วยเกลือและเวลาของคุณ ทุกครั้งที่แอปพลิเคชันของคุณรันให้ตรวจสอบค่านี้ด้วย "สด" + เกลือ + การประทับเวลาเวอร์ชันที่แฮชแล้วอนุญาตช่วงเวลาที่ถูกต้อง (เช่นหนึ่งวันสองวันหนึ่งสัปดาห์หนึ่งเดือน ฯลฯ ) โปรดจำไว้ว่าช่วงที่ใหญ่กว่านั้นประสิทธิภาพที่ยากขึ้นจะได้รับผลกระทบ) ตราบใดที่สิ่งต่าง ๆ ตรงกัน (หรือพบการแข่งขัน) แอพยังมีชีวิตอยู่ มิฉะนั้นแม้ว่าค่าในไฟล์พิเศษหรือตารางคือ "สด" มันจะยังคงตายหากมีความพยายามที่จะกู้คืนจากการสำรองข้อมูลเพราะการประทับเวลาจะอยู่นอกเกณฑ์ของคุณ
โดยสรุป (สิ่งนี้ถือว่าคุณมีวิธีการตรวจสอบความถูกต้องของรหัสใบอนุญาตเช่นการตรวจสอบหรือวิธีอื่น ๆ )
- CheckBlacklist
- แปลงไลเซนส์คีย์เพื่อแฮชด้วยเกลือ
- ขอไฟล์บัญชีดำจากเซิร์ฟเวอร์
- แฮชของฉันอยู่ในไฟล์หรือไม่
- ถ้าใช่ให้เก็บแฮชของ "DEAD" + salt + timestamp (ตัดให้เป็นวันไม่ต้องเก็บชั่วโมง + วัน + นาที)
- ถ้าไม่ใช่ให้เก็บแฮชของ "สด" + salt + timestamp (trunc'd)
- IsKeyAlive
- สร้างแฮชจาก "สด" + เกลือ + การประทับเวลาที่ถูกตัดทอน
- โหลดแฮช DeadAlive
- พวกเขาเห็นด้วยไหม
- ถ้าใช่เราก็ยังมีชีวิตอยู่ ส่งคืน TRUE
- ถ้าไม่เช่นนั้นเราอาจจะตาย แต่เราอาจยังอยู่ในหน้าต่างเวลา:
- ลบวันจากการประทับเวลาและทำแฮชซ้ำ
- เราเห็นด้วยไหมตอนนี้
- ใช่? ส่งคืน TRUE
- เพิ่มวันไปที่เวลาประทับและทำแฮชซ้ำ
- เราเห็นด้วยไหมตอนนี้
- ใช่? ส่งคืน TRUE
- ณ จุดนี้เราอยู่นอกช่วงเวลาที่ไม่ตรงกัน ส่งคืน FALSE (ฆ่าแอป)
ทีนี้ความดีก็รู้ว่ามีหลายล้านวิธีหนึ่งที่สิ่งนี้จะล้มเหลว พิจารณาวิธีที่เป็นไปได้ทั้งหมดและสร้างระบบที่เชื่อถือได้ (รวมถึงระบบที่ถือว่าลูกค้ามีสิทธิ์หากไม่สามารถดาวน์โหลดไฟล์บัญชีดำได้) ทดสอบทดสอบทดสอบและทดสอบเพิ่มเติมก่อนการปรับใช้เพราะหากเกิดข้อผิดพลาดคุณจะสูญเสียความน่าเชื่อถือของลูกค้า