به نظرم میرسه با چک کردن token منحصر به فرد بازار - و نه payload- بشه بدون راه اندازی سرور هم جلوی این برنامه ی لعنتی رو گرفت. دارم تستش می کنم، اگه جواب داد نتیجه رو اعلام می کنم.
Printable View
به نظرم میرسه با چک کردن token منحصر به فرد بازار - و نه payload- بشه بدون راه اندازی سرور هم جلوی این برنامه ی لعنتی رو گرفت. دارم تستش می کنم، اگه جواب داد نتیجه رو اعلام می کنم.
مرسی سعید جان
بی صبرانه منتظرتم
برای دور زدن پرداخت درون برنامه ای از توی lucky patcher باید برنامتون رو لمس کنید و نگه دارین و بعد از یک ثانیه یه کادر باز میشه که باید گزینه سوم روبزنی یعنی support patch for inapp بعد هم یه تاید میزنی و به احتمال زیاد همه چیز حله. وارد برنامه میشی و روی نسخه طلایی میزنی و به جای اینکه برنامه بازار بیاد با، این ملعون میاد بالا و با یه تاید برنامه پریمیوم میشه. امضا هم تغییری نمی کمه.
اول یک نکته ای:
من داخل پست های قبلیم یک جا اشتباهی گفتم که میشه بدون سرور هم با قرار دادن developer payload برنامه بررسی کرد که اشتباه گفتم . و الان میرم که ویرایشش کنم بعدا باعث اشتباه دیگران نشه.
اصلا فراموش کردم که باید بعد از خرید برنامه یک سری به وب سرویس بزنه و وب سرویس هم با REST کردن با بازار ببنه خرید به درستی ثبت شده یا خیر. که من اونجا گفتم که حتما نیازی به سرور نیست که اشتباه بود و حتما نیاز هست. همین جا معزرت میخوام از همه. (اون پست هم ویرایش میکنم.)
اما دوم:
برای پرداخت درون برنامه چطوری میشه پرداخت درون برنامه رو تبدیل به پرداخت داخل وب کرد؟
هنوزم منتظرم
آخرش چیکار کنیم
به به عجب بحرانی شده این قضیه
من اطلاع نداشتم از این موضوع
چند روز پیش یکی زنگ زده بهم میگه آقا برنامتون برای من کامل باز شده بدون اینکه پولی پرداخت کنم راضی هستی؟
ما هم بی خبر گفتیم اگه هکی نشده و همینطوری فعال شده آره، دیگه حالا خدا عالمه !!!
الان دوستانی که میگن payload چک بشه، یعنی این برنامه لاکی لعین عقلش نمیکشه همون payload رو برگردونه؟
در هر صورت برنامه فعال میشه و همون payload برگشت داده میشه، چون بالاخره یک intent هست و مقدارش قابل دسترسه
حالا اگر این مقدار رو ما ذخیره کنیم و بعد بخوایم چکش کنیم بازم نمیشه فهمید پرداخت درست بوده یا نه ( البته این استدلال منه، شاید درست نباشه )
تنها راه اینه که همه کار سمت سرور انجام بشه ( منظورم همه کاره !!! )
من دو تا جواب مفید پیدا کردم دو تاش هم توی stackOverflow
http://stackoverflow.com/a/24441294
http://stackoverflow.com/a/14740405
این دو نفر اومدن خوب توضیح دادن و یکسری راهکار ارائه دادن
اولی اومده گفته لاکی لعین کلا میاد با پچ کردن همه چیز رو true برمیگردونه، گفته حتی من میام امضا رو چک میکنم true برمیگردونه !!!
توی فایل های پرداخت هم ظاهرا همینطوره، راه حلی که گفته اینه که شما کلا true یا false رو بذارید کنار و همه چیز رو با رشته ها مقایسه کنید
که کارشم اینه باید بریم فایل های پرداخت رو ویرایش کنیم خودمون ( البته همه اینا حدس و گمانه )
لینک دوم اول اومده راجع به چک کردن امضا گفته و بعد اینکه چک کنیم آیا لاکی لعین نصب هست روی گوشی یا نه
به نظرم من چک کردن لاکی لعینش جالب اومد البته امتحان نکردم !!!
یه آموزش توی youTube دیدم که خود طرف گذاشته بود. زیرش ملت درخواست داده بودن کلش آف کلنز رو یه کاری کنه هک بشه
طرف هم جواب داده بود به هیچ عنوان نمیشه و نخواهد شد برای اینکه همه کاراشو داره روی سرور انجام میده و لوکال نیست
این اطلاعاتی بود که من بدست اوردم، حالا بازم دوستان در جستجو باشن ببینیم به کجا ختم میشه
من برم لاکی رو نصب کنم ببینم با برنامه خودم چطوری رفتار میکنه !!!
به به خوش اومدی poorman جان .. من روی برنامه های تو هم هم تست کردم مثل هلو دور زد پرداخت درون برنامه هات دقیقا مثل برنامه های خودم:قهقهه:
نکته اصلی هم همون بود دیگه این برنامه لعنت الله علیه همه چیز رو که بهش میدادی به برنامه بر میگردونه که پیلود هم شاملش هست من یک بار اشتباه کردم گفتم که میشه لوکال هم داخل برنامه تست کرد که حرف به کل غلطی بودنقل قول:
الان دوستانی که میگن payload چک بشه، یعنی این برنامه لاکی لعین عقلش نمیکشه همون payload رو برگردونه؟
نکته اصلی اینه که باید شناسه هایی که باید بررسی شوند رو به یک وب سایت بدی وب سایت بره از بازار بپرسه که این چیزا میزا که بهت دادم وجود داره یانه . بعد به برنامه بگه اگر موجود بود پردازش ها رو انجام بده در غیر این صورت باید بگه کاربر مخرب مچتو گرفتم اون برنامه لاکی پنچر روی من دیگر اثر ندارد :لبخند:
فقط باید یکی زحمت PHP شو بکشه . البته فقط پیلود نیست. و باید توکن هم بررسی بشه.
(شاید بشه مستقم به بازار از داخل برنامه یک کویری از نوع get ارسال کرد و جواب رو گرفت اما هنوز اطمینان ندارم)
بله شما باید درخواست هایی که قرار بوده از سمت کلاینت اندرویدی به سرور بازار بره رو خودتون از سمت سرور شبیه سازی کرده و به بازار ارسال کنید و نتیجش رو به کلاینت اندرویدی برگردونید. با این کار میتونید پروتکل خودتون رو برای پرداخت های درون برنامه ای داشته باشید. در واقع سرور شما یک لایه میانی میشه برای برقراری ارتباط با سرور پرداخت بازار.
این برنامه بدون تغییر امضا، پرداخت رو دور میزنه و در مورد چک کردن نصب بون برنامه باید بگم که
این برنامه هر چند وقت یک بار نام پکیجش رو عوض می کنه بخاطر همین چک کردن نصب بودن تا زمانی که نام پکیج عوض نشده باشه جواب میده.
تا الان 6 تا نسخه lucky را چک کردم و 3 تا نام پکیج مختلف بدست اوردم. با این پکیج ها می شه فهمید که برنامه نصب هست هست ولی با اومدن نسخه جدید و پکیج جدید برنامه ی ما هم دیگه این روش بدردش نمی خوره. به نظر اگه نخوایم از سرور استفاده کنیم، چک کردن روت بودن گوشی و نصب lucky می تونه دست افراد سود جو رو تا حد زیادی کوتاه کنه.
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:
پس اینجور که بوش میاد فاتحه ی رویاهامون با پرداخت درون برنامه ای خوندس
باید فاتحش رو بخونم من یقرا فاتحمه الصلوات
دوستان یه سورسی بزارید تا این برنامه هامون روآپدیت کنیم اینجوری بیچاره که لوک خوش شانس داره پیش میره کلاه برنامه هامون پس معرکست :لبخند:
لاکی برنامه رو resign نمیکنه! که بشه با چک کردن امضا تشخیص داد. منبع : لینک + تست برنامه
چیزی که من امتحان کردم و چیزی که نوشته شده توی stackoverflow میگه که کارساز نیست!
تنها راهی که فک میکنم کار ساز باشه اینه که اطلاعات خرید رو به سرور بدیم که چک کنه ببینه آیا خرید درست بوده یا نه.در واقع اطلاعات خرید رو از طریق سرور خودمون و بازار از طریق وب سرویس چک کنیم.
من چندین بار تست کردم، وقتی این ملعون برنامه رو پچ می کنه، امضاشو تغییر میده، ولی در بعضی از دستگاههای روت شده اصلا پچ نمی کنه که خب اینجا امضا رو هم تغییر نمیده
حالا اگه ممکنه یه سورسی بزارید تا از دستش نجات پیدا کنیم
بنظرم دست دوستان php کارمون رو هم می بوسه
******************
دوستم با این ملعونک بهترین بازی جهان که 100 دلار قیمتش بود رو به قیمت ماست خرید یعنی ماست زمان شاه که مفت بود نه الان :لبخند:
در کل هرجور برنامه ای رو که بخوای تو نیم سوت میپرونه
نقل قول:
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:
نقل قول:
در گوشی بدون روت، بدون پچ نمیتونه دور بزنه پرداخت رو، که این هم با چک کردن امضا قابل فهمه. فکر کنم شمام اشتباهی گفتی پچ نمی کنه
بله دوستان درست گفتم بدون هیچ اشتباهی !!!! داخل گوشی های روت نشده کاملا جواب میده!! بدون مشکل ...نقل قول:
توی همه سایت ها که گفتن گوشی باید روت شده باشه. شما مطمئنید که روی گوشی های روت نشده هم پرداخت برنامه رو دور میزنه؟
داخل گوشی های روت نشده این پیام میاد:
warning
root access could not br found. try launch lucky patcher again or try update superSu and update binary su file from SuperSu.And Check in SuperSu given root to Lucky Pather or not
اما بازم بعد رفتن به داخل پرداخت درون برنامه ها بعد از زدن هر خرید لاکی باز میشه و پرداخت درون برنامه انجام میده
لطفا آخرین نسخه اون رو 5.4.1 رو دانلود کنید ببنید که چطوری راحت دور مزنه. من روی گوشی LG , Motorola تست کردم.
تنها راه ممکن که بدون مشکل باشه فقط از طریق وب سرویس هست.
حالا این کد وب سرویس رو ممکنه یکی بزاره تا همه ازش استفاده کنن
یا یه آموزشی که بتونه کمکمون کنه
منم از نسخه 5.4.1 استفاده می کنم. پس چرا تو گوشی روت نشده نمیتونه دور بزنه؟ رو سامسونگ تست کردم. دقیق مراحلش رو توضیح بده ببینیم جریان چیه؟ آیا تو گوشی ها متفاوته یا برنامه ها فرق می کنن؟
یه چند تا از این برنامه هایی که لاکی دور زده، تو پیام خصوصی بفرست منم تستش کنم ببینم چطوره، چون برنامه هایی که من تو گوشی روت نشده تست کردم، هیچکدومش رو نتونست دور بزنه
خیر دیگه متصل به اینترنت بودن یا نبودن مطرح نیست. شما باید چک کردن رو بعد از دریافت پاسخ بازار بلافاصله قبل از ارتقا برنامه انجام بدید در صورتی که تایید شد برنامه رو ارتقا بدید در غیر این صورت هیچی//.. حالا اگر به اینترنت وصل نبود پاسخی هم دریافت نمکنه پس برنامه فعال نمیشه.
در حال حاضر توضیح بیشتری نمیتونم بدم
برای چک کردن نمی شه از in app biling استفاده کرد.
من برنامه خودم رو که قبلا هم از طریق بازار خریدمش رو تست کردم. توی برنامه من یه صفحه جدا واسه پرداخت هست که توش یه دکمه برای ارتقای برنامه هست. به محض ورود کاربر به صفحه، برنامم اتوماتیک چک می کنه که این محصول خریده شده یا نه. اگه خریده شده بود به صورت خود کار برنامه ارتقا پیدا می کنه و در غیر این صورت باید روی دکمه ارتقا کلیک بشه. الان اومدم از این lucky patcher استفاده کردم. دیدم با اینکه اینترنت وصله، بازار نصبه و من هم قبلا با اکانتم به بازار وارد شدم، اصلا برنامه چک نمی کنه که این محصول رو خریدم و با زدن گزینه ارتقا، lucky patch میاد جلو و والسلام.
توجه (حل شد) :
بعد از کلی کلنجار راهی پیدا کردم که لاکی نتونه پرداخت رو دور بزنه.نیازی به وب سرویس نیست و از طریق خود برنامه کافه بازار خرید رو چک میکنیم.
فقط کافیه که توی OnIabPurchaseFinishedListener و چک کردن موفقیت آمیز خرید این مرحله رو هم چک کنیم.درواقع کد درون برنامه ای خودتون سرجاش باشه فقط قبل از فعال سازی نرم افزار با این کد خرید رو چک کنید.دوستان لطفا تست کنند و نتیجه رو اعلام کنید.
Inventory inv=null;
try {
inv=mHelper.queryInventory(true, null);
if (inv.hasPurchase(SKU_PREMIUM)) {
Log.d(TAG, "خريد درست است");
// حالا برنامه را فعال کنيد
} else {
Log.d(TAG, "خريد نادرست است");
}
} catch (IabException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
آره جواب داد. یعنی در برنامه ای که توسط لاکی پچ شده بود جواب داد. احتمالا در برنامه ای که پچ نشده دیگه حتما جواب بده. باز دوستان تست کنن
فقط جهت اطمینان باید در دستور if موارد بیشتری چک بشه، مثل Payload و INAPP_DATA_SIGNATURE و ...
یعنی قبل از دستور if باید یه همچین چیزی بنویسیم:
Purchase pu = inv.getPurchase(SKU_PREMIUM);
if (pu == null)
mypayload = "";
else
mypayload = pu.getDeveloperPayload();
بعد در دستور if چک کنیم که مقدار payload هم درست باشه.
یه نکته مهم دیگه؛ قبل از ورود به صفحه خریدتون، حتما چک کنید که کاربر در بازار لاگین کرده باشه -هر چند اگه چک نکنید، خود بازار چک می کنه- چون اگه این مساله چک نشه و کاربر در بازار لاگین نکرده باشه این کدی که دوستمون گذاشتن خطا میده
کدش رو هم به نظرم در یکی از پستها دوستان گذاشته بودن
دوست عزیز ممکنه کد تابع رو کامل برا ماهم بزاری ...
ممنون
دوستان جواب داد دمتون گرم مرسیییییییییییییییی
چطور تشخیص بدیم کاربر تو بازار لاگین کرده یا نه؟ و اینکه چطور بوسیله کد پنجره ورود به بازار رو ظاهر کنم بدون اینکه بعد از ورود کار خاصی -مثل خرید و ...- انجام بده؟
دومیش رو هم خودم پیدا کردم:
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.farsitel.bazaar", "com.farsitel.bazaar.activity.LoginActivity")) ;
startActivity(intent);
سلام
اینم کد خرید منه ولی نمی دونم دقیقا کجا این کد رو بذارم هر جا میذارم ایراد میگیره
// Start the purchase flow
buyHelper.launchPurchaseFlow(BuyPremiumActivity.th is,
Billing.SKU_NAME_PREMIUM, BUY_REQUEST_CODE,
new OnIabPurchaseFinishedListener() {
@SuppressLint("NewApi")
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {
if (result.isSuccess()) {
// Successful - the item has been payed for
// We set a vale in the shared preferences to mark this app as
SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putBoolean(Billing.KEY_PREMIUM_VERSION, true);
editor.apply();
//
// The flag "CLEAR_TASK" is important, so the user is not sent
// back to this buy activity when he presses the back button.
//
Toast.makeText(getBaseContext(), "با تشکر از خرید شما",Toast.LENGTH_SHORT).show();
Intent intentz = new Intent(
BuyPremiumActivity.this,
page_full.class);
BuyPremiumActivity.this.finish();
intentz.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_T ASK_RESET
| Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentz);
}
}
});
}
});
}
Inventory inv=null;
try {
inv=mHelper.queryInventory(true, null);
if (inv.hasPurchase(SKU_PREMIUM)) {
Log.d(TAG, "خريد درست است");
// حالا برنامه را فعال کنيد
} else {
Log.d(TAG, "خريد نادرست است");
}
} catch (IabException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
این روش هم جواب نمیده وقتی
save for restore رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:
این لامسب به هیچی نه نمیگد
عین هلو برنامه رو قورت میدد:افسرده:
روی بیشت برنامه ها تست کردم و جواب گرفتم البته از برنامه ها استفاده نکردم چون حرومه!
:لبخند:
دوستان کسی جوابی ندره ؟
با تشکر
من هم چندی پیش از طریق یکی از دوستان با این برنامه آشنا شدم. به طور معمول روی تمام برنامه ها جواب میده جز اون دسته از برنامه هایی که مراحلی از پرداخت و چک کردن رو در سرور انجام میدن.
این مسئله به بچه های بازار هم گفته شده و اون ها هم همین نظر رو داشتن.
بازار مستنداتی برای استفاده از API وبی خودش رو داده که میشه از سرور وضعیت پرداخت رو چک کرد.
من بررسی کردم ، برنامه هایی که به این روش عمل کرده اند رو نمیشه دور زد.
پس راه حل میشه همون برنامه نویسی سمت سرور !
حالا دوستانی که توی سرور دستی دارند یه توضیح ساده بدند برا این کار ما به چی نیاز داریم
باید یه هاست ودامنه تهیه کنیم ؟پیشنهادتون چیه ؟
و به وسیله نرم افزارمون برای چک کردن از طریق همین سرورمون که میشه واسطه با بازار استفاده کنیم
بعد تمام نرم افزار ها مون میتونیم روی همین سرور چک کنیم ؟
ممنون
میگم دوستان این lucky روی برنامه های مایکت تاثیر نداره انگار درسته؟ :متفکر:
من کد قبلی دوستمون که فرمودند توجه حل شد رو
تست کردم خوب جوا میده
لوکی هم نمی تونه بای پسش کنه :لبخند:
چه جوریه که شما میگین کار نمی کنه ؟؟!!!؟؟
در چه صورت جواب نمید ه ؟؟!!؟؟