سلام دوستان
خواهشا یه راهی بزارید جلو پای ما برا فرار از دست این نرم افزار
این نرم افزار به راحتی پرداخت درون برنامه ای بازار ما رو مثل یه چوب کبریت شکست وازش رد شد و کاربر عادی رو به کاربر
ویژه ارتقا داد خواهشن یه راهنمایی کنید چیکار کنم
سلام دوستان
خواهشا یه راهی بزارید جلو پای ما برا فرار از دست این نرم افزار
این نرم افزار به راحتی پرداخت درون برنامه ای بازار ما رو مثل یه چوب کبریت شکست وازش رد شد و کاربر عادی رو به کاربر
ویژه ارتقا داد خواهشن یه راهنمایی کنید چیکار کنم
دوستان کسی نظری نداره
با اپلیکیشن خودم تستش کردم. از همون اول با رنگ قرمز نشونش میده (به این معنی که این برنامه پچ نمی شود و هیچ شانسی برای کرک کردن آنها وجود ندارد) و هیچ کاریش نمیتونه بکنه. چطور اپلیکیشن شما رو مثل شکستن چوب کبریت پچ کرده؟
سلام سعید جان ممکنه شما بفرمایید تو سورستون از چه الگوریتمی استفاده کردید که این برنامه نتونسته روش عمل کنه؟؟؟
سعید جان یه سوال دیگه گوشی شما روته ؟؟؟ اگه روت نباشه این برنامه بخوبی عمل نمی کنه
سلام سعید جان ممکنه شما بفرمایید تو سورستون از چه الگوریتمی استفاده کردید که این برنامه نتونسته روش عمل کنه؟؟؟
سعید جان یه وسال دیگه گوشی شما روته ؟؟؟ اگه روت نباشه این برنامه بخوبی عمل نمی کنه
بنده هم برا پرداخت درون برنامه ای از SharedPreferences استفاده کردم
ولی براچی به راحتی کاربر عادی رو به کاربر ویژه ارتقا داد؟؟!!!
ممکنه یه راه حل اساسی پیشنهاد دهید تا منم از این منجلاب بیرون بیام
دوستان عزیز راهنمایی کنید
Lucky Patcher وقتی برنامه رو پچ می کنه، امضای اون رو تغییر میده. پس میتونی اول برنامه ات امضا رو چک کنی، اگه تغییر کرده بود پیام بده و برنامه رو ببنده
سعید جان شرمنده من تازه واردم نمیدونم این امضاش کجاست؟؟!!
منظورتون از امضا چیه
چه جور امضا رو محدود کنم
بازم یه دنیا ممنون
سلام
جالبه. روی برنامه خودم و چندتا برنامه دیگه هم تست کردم و توی همشون بدون پول، برنامه به نسخه کامل ارتقا داده شد. برنامه این جور عمل می کنه که بعد از کلیک روی پرداخت اصلا به بازار منتقل نمی شیم و برنامه lucky که باهاش برنامه رو پچ کردیم میاد بالا و دیگه تمام.
2 تا راه حل رو امتحان کردم که جواب نداد. یکی اینکه چک کردم اگه برنامه lucky patcher نصب بود به کاربر بگه تا زمانی که این برنامه نصبه برنامه ما اجرا نمیشه .
روش دوم هم چک کردن لایسنس برنامه بود که باز هم جواب نداد چون در واقع قسمت پرداخت درون برنامه ای دست کاری شده بود و لایسنس تغییری نکرده بود. البته گزینه تغییر لایسنس هم توی برنامه هست که روی برنامه من کار نکرد.
آخرین ویرایش به وسیله esideli : پنج شنبه 25 دی 1393 در 20:02 عصر
سلام دوست عزیز
حقیقتش این یه افتضاحه که به بار اومده
بعضی برنامه ها رو نمیشه کرک کرد تا پول ندی نمی تونی کاری از پیش ببری
ولی برنامه ای که من نوشتم رو تو نیم سوت کاربر عادی رو به ویژه ارتقا داد
حالا بنظر شماها چیکار باید کنیم
اگه اینجوری باشه که دیگه فاتحه برنامه هامون خوندس
دوستانی که به عنوان توسعه دهنده در این زمینه فعالیت می کنند خواهشن راهنمایی کنند
آخرین ویرایش به وسیله Ebrahimkh : دوشنبه 22 دی 1393 در 17:08 عصر
عجب نرم افزار ملعونیه :)
اصلا قرمز غیر قرمز حالیش نیست .. همه رو کرک کرد پرداخت درون برنامه رو تبدیل کرده به چیزی شبیه به ماست..
من داخل یک بازی ایرانی اسمشو نمیارم علامتش داخل نرم افزار قرمز بود بود تست کردم راحت بعد از زدن کمه یک دیتالوگ فیتلر شده باز کرد تموم پیام درست رو فرستاد البته قبلش پچ کردم با اینکه قرمز بود.
همین جور در شگفتم ..
اخرین نسخه شو دان کنید ببنید باید چی کارش کنیم !
سرقت در کمتر از 3 ثانیه !!
Ebrahimkh عزیز دوست من لطفا اسم بازی ای رو که بردی ویرایش کن
اما اونم کامل پرداخت درون برنامهش کشک میشه!!! خیلی راحت هر قدر که ادم بخواد میشه سکه خرید!
از این بد تر نمیشه!!
هرچیه تو همین لایسنسه
حالا چیکار باید کنیم
این لایسنس رو چجوری میشه دور از دست این برنامه قرار داد
باشه چشم ویرایش زدم
نمیدونم منظورتون از بررسی نصب اون برنامه چی و به چه شکل هست ولی من منظورم به این شکل هست، جریان لایسنس چی هست؟
من هفته پیش که به بازار گفتم گفتن خبر داریم! و لینک این صفحه رو دادن، اگه اشتباه نکنم یکی از بهترین راه حل ها این تیکه هست :
برای درخواست خرید حتما از developer payload استفاده کنید
در API نسخه ۳ پرداخت درون برنامهای شما میتوانید همراه هر درخواست خرید یک developer payload هم به بازار ارسال کنید. این رشته میتواند به عنوان یک شناسهٔ منحصر به فرد از سمت شما برای این خرید در نظر گرفته شود. بازار بعد از اتمام مراحل خرید این رشته را همراه با جزئیات پرداخت به برنامهٔ شما بازمیگرداند.
شما باید این رشته را برای احراز هویت کاربری که درخواست خرید را داده است به بازار ارسال کنید. برای محصولات مصرف شدنی این رشته میتواند کاملا تصادفی ساخته شود، در حالیکه برای محصولاتی که مصرف شدنی نیستند، برای اطمینان از صحت خریده شدن محصول باید از یک رشتهٔ منحصر به فرد استفاده کنید.
وقتی که پاسخ را از بازار دریافت کردید، مطمئن شوید developer payload که بازار همراه با جزئیات خرید به شما بازگردانده است، همانی است که شما برای شروع عملیات پرداخت به بازار ارسال کرده بودید. برای اطمینان از امنیت پیشنهاد میشود این عملیات را بر روی سرور خود انجام دهید.
خب خب یک روش برای مقابله با این برنامه مخوف پیدا کردم که الان بهتون می گم.
ابتدا بگم که نه می شه چک کرد برنامه نصب هست یا نه و دوم اینکه این برنامه بدون تغییر لایسنس (امضای برنامه) هم می تونه پرداخت درون برنامه ای رو دور بزنه.از اون جایی که این برنامه مخوف یعنی lucky patcher برای اجرای کاراش نیاز به دسترسی روت و گوشی روت شده داره، در صفحه اول برنامه با متد زیر چک می کنیم که گوشی طرف روت شده یا نه. در صورت روت بودن گوشی به کاربر می گیم که "این برنامه در گوشی روت شده قابل اجرا نمی باشد" و در غیر این صورت کاربر به برنامه وارد میشه. همون طور هم که می دونید گوشی های روت شده نسبت به کوشی های روت نشده خیلی کمتر هستند.
این متد بدون نیاز به هیچ فایل خارجی jar/lib کار می کنه.
متد:
توی oncreate هم این طوری استفاده می کنیم :
private static boolean isRooted() {
return findBinary("su");
}
public static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
"/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
for (String where : places) {
if ( new File( where + binaryName ).exists() ) {
found = true;
break;
}
}
}
return found;
}
خب نظرتون چیه که برای جلوگیری از روت کردن گوشی توسط کاربرها و کرک برنامه هامون، همه برنامه نویس های ایرانی دسترسی به برنامه شون رو از گوشی روت محدود کنن؟
if(isRooted()){
Toast.makeText(getBaseContext(), "این برنامه در گوشی روت شده قابل اجرا نمی باشد", Toast.LENGTH_LONG).show();
}else{
کد های ورود برنامه//
}
.................
دوست عزیز بازم یه دنیا ممنون
ولی اینجوری که شما عرض کردید برنامه هامون دیگه بفروش نمیرسن
اگه یکی بگه این برنامه تو گوشی روت اجرا نمیشه دیگه کی دانلود بزنه ؟؟؟؟!!؟!؟
حداقل یه راه منطقی تر که همه بتونن به راحتی استفاده کنند
بازم ممنون
اول بگم که فعلا این تنها راهی بود که پیدا کردم. احتمالا راه های بهتری هم هست ولی کسی که گوشیش روت باشه حالا امروز lucky patcher هست معلوم نیست فردا چه برنامه های دیگه ای بیان. فعلا ما دروازه رو می بندیم . این روت فقط به ضرر ما برنامه نویسا شده.
چرا به فروش نمی رسه؟ مگه رایگان و درون پرداخت نمی خواین بزارین؟
آره خب درون برنامه ای می خوام بزارم
بنظر شما این سورس جلوی لوک خوش شانس ما رو میگیره ؟؟؟!! خودتون تست زدین
من به بازار گفتم اونا گفت کدتون رو سمت سرور قرار بدین
گفتم یا للعجب این چی چی گفت
حالا شما به این روشی که بازار بهش اکتفا کرده تا حالا کار کردین
بله بهترین راه همین هست.
امضای برنامه داخل این برنامه تغییر نمیکنه چون در حالت پرداخت درون برنامه برنامه پچ نمیشه فقط انگار با تغییر dns داخلی در حالت موقت فقط پیام که مارکت ارسال میکنه به صورت کلیشه ای رو به برنامه میده.
با توجه به اینکه پرداخت درون برنامه های ایران یک کپی از گوگل پلی هست (حتی به خودشون زحمت تغییر دادن پیام رو هم ندادن!) برنامه های ما هم به این طاعون دچار میشه.
اما باید یک برنامه سمت سرور درست کنید که با یک الگوریتم به خصوص یک رشته منحصر به فرد رو به برنامه بده و برنامه این رشته منحصر به فرد رو همراه با payload برای مارکت ارسال بفرسته. در نهایت بعد از جواب مارکت به برنامه خروجی رو به سرور بده و بررسی کنه که این رشته قبلا ثبت شده یا خیر. بهتره برای بهینه شدن یک سیستم ورود با داشته باشید که بعدا در صورتی که سرور شما مثلا یک میلیون کاربر داشت در حین جستجو به کم بودن سرعت مواجه نشید.
ولا من همین امروز که شما گفتین فهمیدم همچین برنامه ای هست. اگه از برنامه های مشابه دیگه هم خبر دارین بگین تا از همین الان براش یه فکری بکنیم. این روش که گفتم هم خب کار میده. تا زمانی که گوشی روت باشه برناممون باز نمیشه. برنامه هم برای اجرا نیاز به دسترسی روت داره. اگه چند نفر نتونن از برنامه استفاده کنن بهتر از این هست که عده ای بخوان زرنگی کنن.
به هر حال اگه کسی روش بهتری پیدا کرد بگه و همون طور که گفتم گوشی روت شده کلا به ضرر ماست.
تصور من این بود که فقط یه رشته رو میدیم به سرور بعدش پس میگیریم، بعد اتمام کار رشته دود میشه میره، نگهداریه اینم خودش داستانیه :|
من به عنوان یک کاربر روت بودن گوشیم رو به خرید یه برنامه ترجیح میدم، مزایای روت بودن فراتر از کرک کردن برنامه های خارجی و داخلی هست، نمیشه گذشت ازش .
طبق گفته بازار :
"اگر پردازش امنیتی را به سرور خود منتقل کردید، مطمئن شوید که ارتباط بین دستگاه و سرور شما امن است."
خب این هم یک سر نخ از بازار. شاید به درد کسی بخوره.
بازار برا چنین موقع هایی کم نمی یاره یه کپی پیست میزنه میفرسته میاد
حالا ربات میفرسته یا ادمین من کاری بهش ندارم
بنظر شما سمت سرور چه جوری کد میزنن ....
دوستان خواهشن یه راه اساسی پیشنهاد بدین
من به مرگ گرفتم که به تب راضی بشید
البته برای موارد که مصرفی نیستن که کلا باید اون رشته ارسالی رو ذخیره کرد حالا میخواد داخل گوشی باشه یا داخل سرور. اما برای موارد مصرفی رشته به قول خودمون دودش دادی دادی چیزی خاصی نیست.
میشه این کار داخل خود برنامه انجام داد. خود برنامه یک رشته ای رو درست می کنه می فرسته و بعد از دریافت مطابقت رو انجام میده.
اما اگر برای موارد که مصرفی نیستن اون رشته رو دودش بدی یک مشکلی پیش میاد اونم اینکه در صورتی که کاربران غیر مخرب برنامه رو از گوشیشون پاک کردن دوباره خواستن نصب کنن حتما یک نظر به این مضمون ها "نامرد دز.. فلان فلان .. برنامه قبلا فعال کرده بودم اما الان فعال نمیشه یک ستاره هم زیادته!!" در مدت زمان کوتاهی برای برنامه میاد.
public String MySigCheck(Context context) {
String sigChk = "";
Signature[] signature = new Signature[0];
try {
signature = context.getPackageManager().getPackageInfo(context .getPackageName(), PackageManager.GET_SIGNATURES).signatures;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
sigChk = String.valueOf(signature[0].hashCode());
return sigChk;
}
و در اکتیویتی اصلی:
if (MySigCheck(getApplicationContext()) != "18976453"){
Toast.makeText(getApplicationContext(), "لطفا از نسخه اصلی برنامه استفاده کنید.", Toast.LENGTH_SHORT).show();
finish();
}
که عدد 18976453 امضای برنامه من هست.
سلام سعید جان
ممکنه بگویید که این تابع رو کجا باید اضافه کنیم
این تابع بصورت خودکار صدا زده میشه ؟؟؟
یا نه ما باید فراخوانیش کنیم ...
ممنون
به نظرم این کارشون خیلی هم خوبه چون الان من مشکلاتی که برام پیش میاد رو میرم تو استک سرچ می کنم و جوابش داخل کدهام کارسازه ولی اگه کدهاشون فرق داشت اونوقت باید مدام میل می دادم به بازار و منتظر پاسخشون می موندم . حالا اینکه چقدر پاسخ هاشون منطقی باشه بماند ( اگه مثل بعضیا باشه که ایمیل ها رو یکی چک میکنه برنامه رو یکی دیگه مینویسه :|)
دوستان عزیز آخرش چیکار کنیم
یعنی راهی برا این بهران سراغ ندارید
سعید جان اون تابع رو چه جوری و در کجا باید استفاده کنیم
سعید جان یه سوال دیگه
اگر تابع رو در اکتیویتی دوم بنویسیم
دستور if رو باید در اکتیویتی اول یا همون mainActivity در زیر تابع onCreate بنویسیم درسته ؟؟!!
یه دنیا ممنون