रिवॉर्ड्स ऐप पर एमुलेटर और फ़ोन फ़ार्म: असली यूज़र्स को ब्लॉक किए बिना उन्हें कैसे पकड़ें
दस Android एमुलेटर चलाता एक कंप्यूटर दस अलग-अलग घरों के दस फ़ोन जैसा दिख सकता है। फ़ोन फ़ार्म इससे भी आगे जाते हैं, असली डिवाइसों से भरे रैक लगाकर। यह गाइड बताती है कि दोनों कैसे काम करते हैं, वे कौन से हार्डवेयर सुराग नहीं छिपा पाते, और उन पर कार्रवाई करने का सही तरीका क्या है।
संक्षिप्त उत्तर
एमुलेटर और फ़ोन फ़ार्म पकड़ने के लिए देखें कि हार्डवेयर जो बताता है, वह डिवाइस के दावे से मेल खाता है या नहीं: ऐसा फ़ोन मॉडल जिसके साथ ऐसा GPU हो जो उसमें कभी आता ही नहीं, एमुलेटर के डिफ़ॉल्ट प्रोफ़ाइल, सॉफ़्टवेयर GPU, और वाइप किए गए डिवाइस जो फिर से लौट आते हैं। साफ़ एमुलेटर प्रोफ़ाइल को ऑफ़र क्लिक पर ही ब्लॉक करें, सिर्फ़ एक गड़बड़ी हो तो रिव्यू में भेजें, और जुड़े हुए पूरे क्लस्टर पर कार्रवाई करें।
- सबसे साफ़ संकेत
- मॉडल और GPU की ऐसी जोड़ी जो असंभव है, जैसे Adreno GPU बताने वाला Pixel 8।
- एमुलेटर के सुराग
- एमुलेटर के डिफ़ॉल्ट मॉडल, नए Chrome के साथ बहुत पुराने Android बिल्ड, सॉफ़्टवेयर GPU, और फ़ोन मॉडल पर डेस्कटॉप जितनी बड़ी स्क्रीन।
- फ़ोन फ़ार्म
- हार्डवेयर दोबारा इस्तेमाल करते हैं, स्टोरेज वाइप करते हैं, सिर्फ़ चीन में बिकने वाले सस्ते मॉडल ख़रीदते हैं और वही ऑफ़र उसी क्रम में पूरे करते हैं।
- किससे बचें
- पूरे-पूरे ब्रांड बैन करना, या सिर्फ़ एक मॉडल गड़बड़ी पर ब्लॉक करना।
एमुलेटर और फ़ार्म रिवॉर्ड्स ऐप को निशाना क्यों बनाते हैं
मोबाइल ऑफ़र अच्छा पैसा देते हैं। कोई गेम इंस्टॉल करो, लेवल 20 तक पहुँचो, कुछ डॉलर कमा लो। एडवर्टाइज़र इतना पैसा इसलिए देते हैं क्योंकि उन्हें असली फ़ोन पर असली प्लेयर की उम्मीद होती है। फ़ार्म नकली प्लेयर खड़ा करता है और पेआउट अपनी जेब में रख लेता है।
इसके दो मुख्य सेटअप हैं। पहला है एमुलेटर: LDPlayer, Nox, MEmu, BlueStacks या Genymotion जैसे सॉफ़्टवेयर, जो PC पर Android चलाते हैं। एक दमदार कंप्यूटर एक साथ कई एमुलेटर चला सकता है। दूसरा है फ़ोन फ़ार्म: सस्ते असली फ़ोन से भरी शेल्फ़ें, जिन्हें अक्सर हर अकाउंट के बाद रीसेट किया जाता है और कभी-कभी स्क्रिप्ट से कंट्रोल किया जाता है।
दोनों का मक़सद एक ही है। ढेर सारे अकाउंट, हर एक किसी अलग डिवाइस पर किसी अलग व्यक्ति जैसा दिखता हुआ, और हर एक वही ऊँचे पेआउट वाले ऑफ़र पूरे करता हुआ। नेटवर्क हफ़्तों बाद कन्वर्ज़न रिवर्स कर देता है, अक्सर तब जब आप पेआउट कर चुके होते हैं।
डिवाइस क्या दावा करता है और असल में क्या बताता है
हर ब्राउज़र या webview बताता है कि वह क्या है। user agent और client hints मॉडल का नाम देते हैं, जैसे Pixel 8 या SM-S918U। यह दावा बदलना आसान है। फ़ार्म टूल एक क्लिक में मॉडल का नाम बदल देते हैं।
हार्डवेयर को नकली बनाना ज़्यादा मुश्किल है। WebGL के ज़रिए डिवाइस अपनी ग्राफ़िक्स चिप (GPU) बताता है। असली फ़ोन एक तय GPU के साथ आते हैं। Pixel 8 में Mali GPU होता है। अमेरिका वाले Samsung Galaxy S मॉडल में Snapdragon चिप और Adreno GPU होता है। जब बताया गया मॉडल और रिपोर्ट किया गया GPU मेल नहीं खाते, तो डिवाइस अपनी पहचान के बारे में झूठ बोल रहा है।
| बताया गया मॉडल | रिपोर्ट किया गया GPU | नतीजा |
|---|---|---|
| Pixel 8 | Mali-G715 | मेल खाता है, असली Pixel 8 इसी फ़ैमिली के GPU के साथ आता है |
| Pixel 8 | Adreno 740 | स्पूफ़्ड, Pixel 8 कभी Adreno के साथ नहीं आता |
| Pixel 5 | Mali-G76 | स्पूफ़्ड, Pixel 5 में Adreno होता है |
| SM-S918U (अमेरिकी Galaxy) | Mali-G710 | स्पूफ़्ड, अमेरिकी मॉडल में Snapdragon और Adreno होते हैं |
| iPhone | Adreno या Mali | स्पूफ़्ड, iPhone तो Apple GPU बताते हैं |
| Android फ़ोन | Apple GPU | स्पूफ़्ड, अक्सर कोई iPhone या Mac जो Android होने का नाटक कर रहा है |
एमुलेटर के डिफ़ॉल्ट प्रोफ़ाइल
एमुलेटर को कोई न कोई फ़ोन मॉडल बताना ही पड़ता है। ज़्यादातर यूज़र डिफ़ॉल्ट कभी नहीं बदलते, और ये डिफ़ॉल्ट सबको पता हैं। कई लोकप्रिय एमुलेटर ख़ुद को कोरियाई मार्केट के Samsung मॉडल (N suffix वाले, जैसे SM-G977N) या पुराने Asus और vivo मॉडल के रूप में दिखाते हैं। डेवलपर इमेज sdk_gphone या vbox86 जैसे नाम बताती हैं।
एक और पहचान Android बिल्ड है। एमुलेटर अक्सर पुराने Android वर्ज़न चलाते हैं, जैसे 5.1 या 7.1, ऐसे बिल्ड नंबर के साथ जो सिर्फ़ एमुलेटर इमेज में आता है। इसके साथ नया Chrome वर्ज़न हो, तो यह ऐसा कॉम्बिनेशन है जो असली फ़ोन में लगभग कभी नहीं दिखता।
- अमेरिकी या यूरोपीय IP पर कोरियाई Samsung मॉडल। किसी यात्री के साथ ऐसा हो सकता है, एमुलेटर में यह आम बात है।
- बहुत पुराना Android बिल्ड और साथ में नया Chrome। इतने पुराने असली फ़ोन को नए Chrome बिल्ड शायद ही मिलते हैं।
- सॉफ़्टवेयर GPU, जैसे SwiftShader या llvmpipe। जिस फ़ोन में कोई असली ग्राफ़िक्स चिप नहीं, वह वर्चुअल मशीन है।
- फ़ोन मॉडल पर डेस्कटॉप जितनी बड़ी स्क्रीन, या ऐसा फ़ोन जो माउस बताता है लेकिन टच नहीं।
विदेश में सिर्फ़ चीन में बिकने वाले फ़ोन मॉडल
कुछ फ़ोन सिर्फ़ मेनलैंड चीन में बिकते हैं। PJx जैसे कोड वाले OPPO और OnePlus मॉडल, C पर ख़त्म होने वाले Xiaomi मॉडल, A पर ख़त्म होने वाले vivo मॉडल, और -AN00 या -AL00 पर ख़त्म होने वाले Huawei या Honor मॉडल इसके उदाहरण हैं। ये मॉडल थोक में सस्ते मिलते हैं और फ़ोन फ़ार्म में आम हैं।
अगर सिर्फ़ चीन में बिकने वाला कोई मॉडल अमेरिका से कनेक्ट हो रहा है, तो यह फ्रॉड का सबूत नहीं है। लोग सफ़र करते हैं और फ़ोन इम्पोर्ट करते हैं। लेकिन जब आपकी साइट पर कई अकाउंट अमेरिका, ब्रिटेन या कनाडा के IP से ऐसे मॉडल बताते हैं, तो यह मज़बूत संकेत है कि ट्रैफ़िक किसी फ़ार्म से आ रहा है और IP किसी प्रॉक्सी से।
डिवाइस रीसेट और स्टोरेज वाइप
फ़ार्म जानते हैं कि साइटें डिवाइस ID सेव करती हैं। इसलिए हर नए अकाउंट से पहले वे ऐप डेटा वाइप करते हैं, ब्राउज़र साफ़ करते हैं या फ़ोन रीसेट कर देते हैं। नई ID आ जाती है, और साइट को लगता है कि यह कोई नया डिवाइस है।
रीसेट सेव की हुई ID तो हटा देता है, हार्डवेयर नहीं। वही GPU, स्क्रीन साइज़, Android बिल्ड और इंस्टॉल किए गए फ़ॉन्ट हर बार लौट आते हैं। जिस डिवाइस का स्टोरेज ख़ाली है लेकिन हार्डवेयर की ख़ासियतें एक घंटे पहले देखे गए किसी डिवाइस से मेल खाती हैं, वह लगभग पक्का वाइप किया गया है।
- ख़ाली स्टोरेज, जाना-पहचाना हार्डवेयर। इसे फ़्लैग करें और पहले वाले डिवाइस से लिंक करें।
- कम समय में एक ही हार्डवेयर प्रोफ़ाइल पर कई अकाउंट, हर एक नई ID के साथ।
- ऑफ़र का बिल्कुल एक जैसा क्रम उन सभी अकाउंट्स में, जो एक ही स्क्रिप्ट या एक ही वर्कर का संकेत है।
असली यूज़र्स को ब्लॉक किए बिना कार्रवाई करें
डिवाइस सिग्नल ताक़तवर हैं, लेकिन परफ़ेक्ट नहीं। ब्राउज़र फ़िंगरप्रिंट फ़ेक किए जा सकते हैं, और सस्ते फ़ोन कभी-कभी अजीब वैल्यू बताते हैं। सही पॉलिसी इन सिग्नलों से पैसे की रफ़्तार धीमी करती है, किसी एक सुराग पर सज़ा नहीं देती।
- ऑफ़र क्लिक पर सिर्फ़ साफ़ एमुलेटर प्रोफ़ाइल ब्लॉक करें और सॉफ़्टवेयर GPU को भी। असली फ़ोन पर खेलने वाले असली प्लेयर्स पर इसका कोई असर नहीं पड़ता।
- सिर्फ़ एक मॉडल गड़बड़ी पर ब्लॉक नहीं, रिव्यू करें। कैशआउट को सबूत के साथ रिव्यू क्यू में डालें।
- पूरे क्लस्टर पर कार्रवाई करें। अगर दस अकाउंट एक ही स्पूफ़्ड प्रोफ़ाइल शेयर करते हैं, तो दसों पर एक साथ फ़ैसला लें।
- एक allowlist रखें। टेस्टर, स्टाफ़ और अजीब हार्डवेयर वाले जाने-पहचाने अच्छे यूज़र हर हफ़्ते फ़्लैग नहीं होने चाहिए।
- पहले मापें। कुछ दिन बिना ब्लॉक किए चेक चलाएँ और देखें कि वे कितने कैशआउट पर असर डालेंगे।
CashoutGuard इसे कैसे ऑटोमेट करता है
CashoutGuard का JavaScript कलेक्टर मॉडल, GPU, स्क्रीन और बिल्ड पढ़ता है। आपका सर्वर साइनअप, ऑफ़र क्लिक, कन्वर्ज़न और कैशआउट पर /v1/evaluate कॉल करता है, और उसे कारणों के साथ 0 से 100 तक का स्कोर मिलता है।
device_spoofed, जब बताया गया मॉडल और GPU एक ही फ़ोन के नहीं हो सकते।emulator_profile, एमुलेटर के डिफ़ॉल्ट मॉडल और सिर्फ़ एमुलेटर में मिलने वाले Android बिल्ड के लिए।emulator_or_vmऔरautomation_detected, वर्चुअल मशीन और स्क्रिप्ट से चलने वाले ब्राउज़र के लिए।device_market_mismatch, जब सिर्फ़ चीन में बिकने वाला मॉडल चीन के बाहर दिखे।storage_cleared_reappearedऔरdevice_shared_with_accounts, वाइप किए गए डिवाइस और शेयर्ड हार्डवेयर के लिए।
फ्रॉड रिंग्स व्यू अकाउंट्स को डिवाइस, पेआउट एड्रेस, ईमेल और IP के आधार पर जोड़ता है, ताकि पूरा फ़ार्म एक ही क्लस्टर के रूप में दिखे। नई साइटें shadow मोड में शुरू होती हैं, ताकि कुछ भी ब्लॉक होने से पहले आप नतीजे देख सकें। डॉक्स पढ़ें या प्राइसिंग पेज पर प्लान की तुलना करें।
नेटिव Android ऐप: वे चेक जो ब्राउज़र नहीं कर सकता
Android के लिए बना रिवॉर्ड्स ऐप किसी वेब पेज से ज़्यादा देख सकता है। CashoutGuard Android SDK आपके ऐप के अंदर चलता है और ख़ुद फ़ोन की जाँच करता है: एमुलेटर की प्रॉपर्टीज़ और फ़ाइलें, रूट किया हुआ सिस्टम, Frida और Xposed जैसे hooking फ़्रेमवर्क जो ऐप को मिलने वाली जानकारी नकली कर देते हैं, डीबगर, लोकेशन स्पूफ़ करने वाले ऐप, और डिवाइस पर चल रहा VPN, भले ही IP घरेलू (residential) दिखे।
यह हर फ़ोन को एक ऐसी ID भी देता है जो ऐप अनइंस्टॉल करके दोबारा इंस्टॉल करने पर भी बनी रहती है। यह ID Android ID से बनती है और आपकी key से salt की जाती है, इसलिए किसी और के लिए यह बेकार है। जो फ़ार्मर नया अकाउंट बनाने के लिए ऐप रीसेट करता है, वह उसी डिवाइस के रूप में लौटता है, और नया अकाउंट पुराने अकाउंट्स से जुड़ जाता है।
| चेक | रीज़न कोड | रिवॉर्ड्स ऐप पर यह क्यों मायने रखता है |
|---|---|---|
| एमुलेटर की प्रॉपर्टीज़, फ़ाइलें और हार्डवेयर | emulator_or_vm | एमुलेटर फ़ार्म चौबीसों घंटे पेड इंस्टॉल और प्लेटाइम ऑफ़र चलाते रहते हैं |
| रूट किया हुआ फ़ोन | device_rooted | रूट से ऐप अपनी डिवाइस ID और लोकेशन नकली कर सकता है; अकेले में कमज़ोर, दूसरे संकेतों के साथ मज़बूत |
| ऐप में Frida, Xposed या Substrate | automation_detected | Hooks वह सब बदल देते हैं जो आपका ऐप देखता है, बाकी सारे चेक भी |
| फ़ोन पर चल रहा VPN | ip_vpn | एग्ज़िट IP घरेलू दिखने पर भी अमीर देशों वाले ऑफ़र खोल देता है |
| रीइंस्टॉल के बाद वही फ़ोन | device_shared_with_accounts | एक व्यक्ति, कई अकाउंट, और एक-एक करके पेआउट |
इंटीग्रेशन के लिए हर पेआउट से पहले एक कॉल काफ़ी है: ऐप साइनअप, ऑफ़र क्लिक और कैशआउट पर एक request_id इकट्ठा करता है, और आपका सर्वर /v1/evaluate से पूछता है। Kotlin कोड के लिए इंटीग्रेशन गाइड देखें।