เอกสาร Steamworks
Steam DRM

ภาพรวม

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

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

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

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

แรปเปอร์ของ Steam DRM ที่ทำงานโดยอัตโนมัติ

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

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

พารามิเตอร์:
  • appid - ตัวเลขไอดีของแอปพลิเคชันของคุณ
  • input filename - ตำแหน่งแบบสัมพันธ์หรือสัมบูรณ์ที่จะอินพุตตัวโปรแกรมแบบข้อความธรรมดา กรุณาอย่าลืมใส่เครื่องหมายคำพูดให้กับตำแหน่งที่อาจจะมีช่องว่างอยู่!
  • output filename - ตำแหน่งแบบสัมพันธ์หรือสัมบูรณ์ที่เครื่องมือจะเขียนตัวโปรแกรมที่แรปด้วยผลลัพธ์
  • toolname - "drmtoolp" is currently the only supported toolname parameter.
  • flags - Bitmask of the following numeric flags specifying tool behavior.
    • 0 - Normal wrap (most protection)
    • 6 - Compatibility mode (disables obfuscation)
    • 32 - Skip debugger check
    • 38 - compatibility mode and also skip debugger check (least protection)
  • destination, optional parameter - "cloud" or "local". ค่าเริ่มต้นในปัจจุบันคือ "คลาวด์" ไม่จำเป็นต้องใช้ตัวเลือก "ภายใน" เว้นแต่จะประสบปัญหาใด ๆ ในการใช้ตัวเลือกคลาวด์

ตัวอย่าง เรียกใช้สคริปต์ 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

แรปเปอร์ของ Steam DRM ที่ต้องสั่งใช้งานเอง

เพื่อการแรป 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 ที่ทำงานโดยอัตโนมัติ ดังที่ได้ลงรายละเอียดไว้ให้แล้วทางด้านบน

ถาม: ผู้จำหน่ายโปรแกรมป้องกันไวรัสตรวจพบว่าไบนารีของฉันมีไวรัสหลังจากที่ใช้แรปเปอร์ของ Steam DRM ฉันควรทำอย่างไร?
ตอบ: ผลตรวจเท็จแบบนี้อาจเกิดขึ้นได้ เนื่องจากกระบวนการปรับใช้ DRM เพื่อแก้ไขไบนารีของคุณมีวิธีการแบบเดียวกันกับที่ไวรัสทำ Feel free to contact the vendor, or use the API instead of the Steam DRM wrapper.