זכיה במשחק 'על כל הקופה' באמצעות ניצול של חור אבטחה
נכתב על ידי: אלעד כהן
תאריך: 28/08/10

המשחק 'על כל הקופה' הוא משחק פופולרי בפייסבוק עם מעל ל-300,000 משתמשים. מטרת המשחק היא לענות נכונה על מספר השאלות הגבוה ביותר, ברגע ששחקן טועה, המשחק נגמר. במידה והשחקן בוחר בתשובה הנכונה הוא מתקדם לשאלה הבאה, לכל שאלה מופיעות מספר תשובות כאשר רק אחת מהן נכונה (בדומה לשעשועון הטריוויה 'מי רוצה להיות מיליונר'). למשחק יש שתי גירסאות: גירסא בה משחקים בשביל כיף וגירסא בה משחקים בשביל כסף אמיתי. בגירסת הכסף האמיתי, עלות כל משחק היא חמישה שקלים. חלק מחמשת השקלים מתווסף לקופה. אחת לחודש, השחקן שענה על מספר השאלות הגבוה ביותר בגירסת הכסף האמיתי זוכה בקופה ולאחר מכן הקופה מתאפסת והמשחק מתחיל מחדש.

המשחק מבוסס על טכנולוגיית AJAX ויוצר קשר עם השרת כדי להודיע על תחילת משחק, קבלת שאלה חדשה, שליחת תשובה לשאלה וסיום משחק. ההודעות לשרת נשלחות בפרוטוקול HTTP תוך שימוש במתודה GET. בכל הודעה לשרת נשלחת קבוצת נתונים זהה המייצגת את ה-Session של השחקן כדי שהשרת יזהה את השחקן ששלח את ההודעה.

באמצעות כניסה אל משחק הפייסבוק והפעלת Packet Sniffer (במטרה לבדוק את אבטחת המשחק), אפשר לזהות אחת מההודעות ולשלוף ממנה את משתני ה-Session. לאחר מכן, באמצעות תוכנה ייעודית לשלוח לשרת הודעות המכילות בקשות לקבלת שאלות חדשות, במקביל לשלוח את כל התשובות האפשריות לכל שאלה וכשרוצים לסיים לענות תשובות נכונות - לשלוח לשרת את הודעת סיום המשחק. ע"י ביצוע פעולות אלו אפשר להגיע לכל תוצאה, הן בגירסא בה משחקים בשביל כיף והן בגירסא בה משחקים בשביל כסף אמיתי.

בהודעה שנשלחת לשרת כשמתחיל משחק חדש, יש פרמטר בוליאני (מכיל 'כן' או 'לא') שמגדיר האם המשחק הוא בשביל כיף או על כל הקופה. כדי להתחיל משחק בגירסת הכסף האמיתי, צריך לעבור את תהליך ההרשמה במשחק (כרוך בהזנת מספר הטלפון הנייד וכתיבת הקוד שיישלח בהודעת SMS) ולאחר מכן בכל פעם שתישלח לשרת הודעה על תחילת משחק בגירסת הכסף האמיתי (כפי שנקבע בפרמטר הבוליאני), המשחק יעלה חמישה שקלים.

קישור לאפליקציה לדוגמא עם קוד-מקור: http://www.GameDevStudio.co.il/Files/JackpotTrivia.rar


 
אודות המחבר

המאמר נכתב ע"י אלעד כהן - מתכנת פלאש בחברת GAME DEV LTD.

המאמר הודפס מאתר portal-asakim.com - אתר מאמרים עסקיים ומקצועיים
http://www.portal-asakim.com/Articles/Article10491.aspx