เอกสาร Steamworks
DRM ของ Steam

ภาพรวม

ตัวแรป DRM ของ Steam ถือเป็นส่วนสำคัญของแพลตฟอร์ม Steam เพราะจะช่วยยืนยันการเป็นเจ้าของเกม และยืนยันว่าคุณสมบัติของ Steamworks ทำงานได่อย่างถูกต้องด้วยการเปิดใช้งาน Steam ก่อนที่จะเปิดเกม

ตัวแรป DRM ของ Steam เองนั้นไม่ใช่วิธีแก้ปัญหาในการป้องกันการละเมิดลิขสิทธิ์ เนื่องจากตัวแรป DRM ของ Steam นั้นปกป้องได้เพียงการละเมิดลิขสิทธิ์ในรูปแบบที่ง่ายมาก ๆ เท่านั้น (กล่าวคือ ป้องกันการคัดลอกไฟล์เกมทั้งหมดไปยังคอมพิวเตอร์เครื่องอื่น) และสามารถสร้างความสับสนให้กับผู้จู่โจมได้พอสมควร แต่ผู้จู่โจมที่ตั้งใจจริง ๆ ก็สามารถหลบเลี่ยงการป้องกันนี้ได้โดยง่าย

เราแนะนำให้คุณเพิ่มคุณค่าเกมของแท้โดยใช้คุณสมบัติ Steamworks ที่ไม่มีในเกมที่ละเมิดลิขสิทธิ์ (เช่น การเล่นเกมกับผู้เล่นหลายคนทางออนไลน์ รางวัลความสำเร็จ กระดานผู้นำ การ์ดสะสม เป็นต้น)

โปรดอ่านการใช้ตัวแรปของ Steam กับ DRM อื่น ๆเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการนำตัวแรป DRM ของ Steam ไปใช้ร่วมกับ DRM หรือวิธีการป้องกันการละเมิดลิขสิทธิ์อื่น ๆ

ตัวแรป DRM ของ Steam แบบทำงานโดยอัตโนมัติ

คุณจะสามารถบังคับใช้งานตัวแรป DRM ของ Steam ได้จากภายในสคริปต์การอัปโหลดของ SteamPipe ของคุณ โดยการใช้งานนี้จะดำเนินการร้องขอการเปิดใช้งานไปยังเซิร์ฟเวอร์ของ Steam ผ่านทางไคลเอนต์ที่ได้ลงชื่อเข้าใช้งาน แล้วจากนั้นจะโพสต์ Executable แบบข้อความธรรมดาไปยังระบบแบ็กเอนด์ของ Steam ผ่านทางโปรโตคอล HTTP การแรปจะดำเนินการอยู่ในเซิร์ฟเวอร์ แล้วจากนั้น steamcmd จะดาวน์โหลด Executable ที่ถูกแรปมาแล้ว

ในการใช้งานตัวแรปของ DRM ด้วย SteamPipe คุณต้องมีสคริปต์เข้าสู่ระบบของคุณ จากนั้นให้เรียกใช้คำสั่ง drm_wrap Steam:DRM
drm_wrap [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

พารามิเตอร์:
  • appid - ตัวเลขไอดีของแอปพลิเคชันของคุณ
  • input filename - ตำแหน่งแบบสัมพันธ์หรือสัมบูรณ์ที่จะอินพุตตัวโปรแกรมแบบข้อความธรรมดา โปรดอย่าลืมใส่เครื่องหมายคำพูดให้กับตำแหน่งที่อาจจะมีช่องว่างอยู่!
  • output filename - ตำแหน่งแบบสัมพันธ์หรือสัมบูรณ์ที่เครื่องมือจะเขียนตัวโปรแกรมที่แรปด้วยผลลัพธ์
  • toolname - ขณะนี้ "drmtoolp" เป็นพารามิเตอร์ toolname รายการเดียวที่ได้รับการรองรับ
  • flags - บิตมาสก์ของแฟล็กตัวเลขต่อไปนี้ที่จะกำหนดพฤติกรรมของเครื่องมือ
    • 0 - แรปแบบธรรมดา (ให้การปกป้องมากที่สุด)
    • 6 - โหมดความเข้ากันได้ (ปิดการใช้งานระบบสร้างความสับสน)
    • 32 - ข้ามการตรวจสอบด้วยเครื่องมือดีบัก
    • 38 - โหมดความเข้ากันได้ และข้ามการตรวจสอบด้วยเครื่องมือดีบัก (ให้การปกป้องน้อยที่สุด)
  • จุดหมาย, พารามิเตอร์ที่เป็นตัวเลือกเสริม - "คลาวด์" หรือ "ภายใน" ค่าเริ่มต้นในปัจจุบันคือ "คลาวด์" ไม่จำเป็นต้องใช้ตัวเลือก "ภายใน" เว้นแต่จะประสบปัญหาใด ๆ ในการใช้ตัวเลือกคลาวด์

ตัวอย่าง เรียกใช้สคริปต์ run_build.bat เพื่อเข้าสู่ระบบ จากนั้นสั่งใช้งาน DRM สร้างบิลด์ แล้วก็อัปโหลดบิลด์ดังกล่าวไปยัง Steam (ที่ไอดีแอปมีค่าเป็น 480):
builder\steamcmd.exe +login mysteamaccount +drm_wrap 480 "D:\src\steamworkssdk\steamworksexample\release\steamworksexample.exe" "D:\src\steamworkssdk\tools\ContentBuilder\content\windows_content\SteamworksExample.exe" drmtoolp 0 +run_app_build ..\scripts\app_build_480.vdf +quit

ตัวแรป DRM ของ Steam แบบสั่งใช้งานเอง

เพื่อการแรป exe อย่างรวดเร็ว ตัวแรปของ Steam จะใช้งานหน้าผู้ดูแลข้อมูลแอป Steamworks เพื่อแรป exe หลักของเกม

  1. เลือกเกมที่คุณต้องการจะเพิ่ม DRM เข้าไปให้ที่หน้าผู้ดูแลแอปของคุณ
  2. เลือก แก้ไขการตั้งค่า Steamworks ในหัวข้อเครื่องมือทางเทคนิคของหน้าผู้ดูแลแอป
  3. ที่แท็บการรักษาความปลอดภัย เลือก DRM
  4. อัปโหลด exe หลักของเกม - หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการใช้งานเครื่องมือนั้น โปรดอ่านหัวข้อตัวแรปที่ทำงานโดยอัตโนมัติข้างต้น
  5. ดาวน์โหลด exe กลับมายังเครื่องภายในของคุณ
  6. เปลี่ยนชื่อ exe กลับไปเป็นชื่อเดิม
  7. คัดลอก exe ดังกล่าวไปยังตำแหน่งต้นทางสำหรับดีโปต์เครื่องมือเนื้อหาของคุณ
  8. สร้างดีโปต์เวอร์ชันใหม่ของคุณ
  9. ทดสอบดีโปดังกล่าวในเซิร์ฟเวอร์เนื้อหาภายในเครื่องของคุณ

การใช้ตัวแรปของ Steam กับ DRM อื่น ๆ

ตัวแรปของ Steam สามารถใช้งานร่วมและควรจะใช้งานไปพร้อม ๆ กับ DRM ประเภทอื่น ในการใช้งานนั้น คุณจะต้องบังคับใช้งานตัวแรปของ Steam ในโหมดความเข้ากันได้เสียก่อน แล้วจึงค่อยบังคับใช้งาน DRM ตัวอื่น ๆ ที่ต้องบังคับใช้งานก่อนก็เพราะเพื่อไม่ให้ไปสร้างความรบกวนกับโซลูชัน DRM ตัวอื่น ๆ ส่วนโหมดความเข้ากันได้จะปิดความสามารถด้าน DRM ของตัวแรป

ให้นำส่ง exe ในโหมดความเข้ากันได้ ด้วยการเลือกจากเมนูเลื่อนลงในหน้าเว็บ Steamworks หรือใช้แฟล็กที่เหมาะสมใน drmtool แบบทำงานโดยอัตโนมัติ

คำถามที่พบบ่อย

ถาม: เกม C# / .Net ของฉันไม่ยอมทำงานหลังจากที่มีการใช้งานตัวแรปของ Steam แล้ว
ตอบ: ตัวแรปของ Steam ไม่ให้การรองรับแอปพลิเคชันตระกูล .Net แทนที่จะใช้ตัวแรปของ DRM ให้ใช้ SteamAPI_RestartAppIfNecessary แทน

ถาม: เกมของฉันไม่ยอมทำงานหลังจากที่มีการใช้งานตัวแรป DRM ของ Steam แล้ว
ตอบ: ตัวแรปของ Steam สามารถขัดขวางการทำงานของเครื่องมือ DRM ตัวอื่น ๆ ได้ ลองอ่านข้อมูลที่การใช้ตัวแรปของ Steam กับ DRM อื่น ๆ เพราะเป็นไปได้ว่าอาจจะเกิดความขัดแย้งกัน

ถาม: ฉันจำเป็นจะต้องสั่งใช้งาน DRM ให้กับ exe ของฉันทุกครั้งที่ฉันสร้างบิลด์ใหม่หรือไม่?
ตอบ: จำเป็น เพราะบิลด์แต่ละบิลด์ที่คุณจะเผยแพร่นั้นจำเป็นจะต้องถูกแรปด้วยตัวแรปของ Steam แนะนำให้ลองสั่งให้ดำเนินการโดยอัตโนมัติด้วยการใช้กระบวนการตัวแรปของ Steam ที่ทำงานโดยอัตโนมัติ ดังที่ได้ลงรายละเอียดไว้ให้แล้วทางด้านบน

ถาม: ผู้จำหน่ายโปรแกรมป้องกันไวรัสตรวจพบว่าไบนารีของฉันมีไวรัสหลังจากที่ใช้ตัวแรป DRM ของ Steam ฉันควรทำอย่างไร?
ตอบ: ผลตรวจเท็จแบบนี้อาจเกิดขึ้นได้ เนื่องจากกระบวนการปรับใช้ DRM เพื่อแก้ไขไบนารีของคุณมีวิธีการแบบเดียวกันกับที่ไวรัสทำ คุณสามารถติดต่อผู้จำหน่ายโปรแกรมป้องกันไวรัส หรือใช้ API แทนการใช้แตัวแรป DRM ของ Steam ได้