ورود

View Full Version : فرار از دست Lucky Patcher



Ebrahimkh
دوشنبه 22 دی 1393, 09:04 صبح
سلام دوستان
خواهشا یه راهی بزارید جلو پای ما برا فرار از دست این نرم افزار

این نرم افزار به راحتی پرداخت درون برنامه ای بازار ما رو مثل یه چوب کبریت شکست وازش رد شد و کاربر عادی رو به کاربر
ویژه ارتقا داد خواهشن یه راهنمایی کنید چیکار کنم

Ebrahimkh
دوشنبه 22 دی 1393, 09:45 صبح
دوستان کسی نظری نداره

saeidd
دوشنبه 22 دی 1393, 10:05 صبح
با اپلیکیشن خودم تستش کردم. از همون اول با رنگ قرمز نشونش میده (به این معنی که این برنامه پچ نمی شود و هیچ شانسی برای کرک کردن آنها وجود ندارد) و هیچ کاریش نمیتونه بکنه. چطور اپلیکیشن شما رو مثل شکستن چوب کبریت پچ کرده؟

Ebrahimkh
دوشنبه 22 دی 1393, 10:10 صبح
سلام سعید جان ممکنه شما بفرمایید تو سورستون از چه الگوریتمی استفاده کردید که این برنامه نتونسته روش عمل کنه؟؟؟


سعید جان یه سوال دیگه گوشی شما روته ؟؟؟ اگه روت نباشه این برنامه بخوبی عمل نمی کنه

saeidd
دوشنبه 22 دی 1393, 10:15 صبح
سلام سعید جان ممکنه شما بفرمایید تو سورستون از چه الگوریتمی استفاده کردید که این برنامه نتونسته روش عمل کنه؟؟؟
الگوریتم خاصی نیست، برای ذخیره اطلاعات کاربر ویژه از SharedPreferences استفاده کردم.


سعید جان یه سوال دیگه گوشی شما روته ؟؟؟ اگه روت نباشه این برنامه بخوبی عمل نمی کنه
آره روته

Ebrahimkh
دوشنبه 22 دی 1393, 11:23 صبح
سلام سعید جان ممکنه شما بفرمایید تو سورستون از چه الگوریتمی استفاده کردید که این برنامه نتونسته روش عمل کنه؟؟؟


سعید جان یه وسال دیگه گوشی شما روته ؟؟؟ اگه روت نباشه این برنامه بخوبی عمل نمی کنه



بنده هم برا پرداخت درون برنامه ای از SharedPreferences استفاده کردم
ولی براچی به راحتی کاربر عادی رو به کاربر ویژه ارتقا داد؟؟!!!



ممکنه یه راه حل اساسی پیشنهاد دهید تا منم از این منجلاب بیرون بیام



دوستان عزیز راهنمایی کنید

saeidd
دوشنبه 22 دی 1393, 13:35 عصر
Lucky Patcher وقتی برنامه رو پچ می کنه، امضای اون رو تغییر میده. پس میتونی اول برنامه ات امضا رو چک کنی، اگه تغییر کرده بود پیام بده و برنامه رو ببنده

Ebrahimkh
دوشنبه 22 دی 1393, 14:01 عصر
سعید جان شرمنده من تازه واردم نمیدونم این امضاش کجاست؟؟!!
منظورتون از امضا چیه

چه جور امضا رو محدود کنم


بازم یه دنیا ممنون

esideli
دوشنبه 22 دی 1393, 15:32 عصر
سلام
جالبه. روی برنامه خودم و چندتا برنامه دیگه هم تست کردم و توی همشون بدون پول، برنامه به نسخه کامل ارتقا داده شد. برنامه این جور عمل می کنه که بعد از کلیک روی پرداخت اصلا به بازار منتقل نمی شیم و برنامه lucky که باهاش برنامه رو پچ کردیم میاد بالا و دیگه تمام.
2 تا راه حل رو امتحان کردم که جواب نداد. یکی اینکه چک کردم اگه برنامه lucky patcher نصب بود به کاربر بگه تا زمانی که این برنامه نصبه برنامه ما اجرا نمیشه .

روش دوم هم چک کردن لایسنس برنامه بود که باز هم جواب نداد چون در واقع قسمت پرداخت درون برنامه ای دست کاری شده بود و لایسنس تغییری نکرده بود. البته گزینه تغییر لایسنس هم توی برنامه هست که روی برنامه من کار نکرد.

Ebrahimkh
دوشنبه 22 دی 1393, 15:50 عصر
سلام دوست عزیز
حقیقتش این یه افتضاحه که به بار اومده

بعضی برنامه ها رو نمیشه کرک کرد تا پول ندی نمی تونی کاری از پیش ببری
ولی برنامه ای که من نوشتم رو تو نیم سوت کاربر عادی رو به ویژه ارتقا داد
حالا بنظر شماها چیکار باید کنیم

اگه اینجوری باشه که دیگه فاتحه برنامه هامون خوندس



دوستانی که به عنوان توسعه دهنده در این زمینه فعالیت می کنند خواهشن راهنمایی کنند

#root#
دوشنبه 22 دی 1393, 16:29 عصر
یکی اینکه چک کردم اگه برنامه lucky patcher نصب بود به کاربر بگه تا زمانی که این برنامه نصبه برنامه ما اجرا نمیشه که اصلا برنامه lucky pacher رو نمیشه فهمید که نصبه.

چرا نمیشه؟

c0mmander
دوشنبه 22 دی 1393, 16:42 عصر
عجب نرم افزار ملعونیه :)

اصلا قرمز غیر قرمز حالیش نیست .. همه رو کرک کرد پرداخت درون برنامه رو تبدیل کرده به چیزی شبیه به ماست..

من داخل یک بازی ایرانی اسمشو نمیارم علامتش داخل نرم افزار قرمز بود بود تست کردم راحت بعد از زدن کمه یک دیتالوگ فیتلر شده باز کرد تموم پیام درست رو فرستاد البته قبلش پچ کردم با اینکه قرمز بود.

همین جور در شگفتم ..

اخرین نسخه شو دان کنید ببنید باید چی کارش کنیم !

سرقت در کمتر از 3 ثانیه !!

esideli
دوشنبه 22 دی 1393, 17:00 عصر
چرا نمیشه؟

تصحیح می کنم :

این برنامه هر چند وقت یک بار نام پکیجش رو عوض می کنه بخاطر همین چک کردن نصب بودن تا زمانی که نام پکیج عوض نشده باشه جواب میده.

c0mmander
دوشنبه 22 دی 1393, 17:06 عصر
Ebrahimkh (http://barnamenevis.org/member.php?318190-Ebrahimkh) عزیز دوست من لطفا اسم بازی ای رو که بردی ویرایش کن

اما اونم کامل پرداخت درون برنامهش کشک میشه!!! خیلی راحت هر قدر که ادم بخواد میشه سکه خرید!

از این بد تر نمیشه!!

Ebrahimkh
دوشنبه 22 دی 1393, 17:07 عصر
هرچیه تو همین لایسنسه

حالا چیکار باید کنیم
این لایسنس رو چجوری میشه دور از دست این برنامه قرار داد

باشه چشم ویرایش زدم

#root#
دوشنبه 22 دی 1393, 17:13 عصر
فکر کنم وقتی برنامه lucky patcher بسته میشه لایسنس خودش رو پاک می کنه.

نمیدونم منظورتون از بررسی نصب اون برنامه چی و به چه شکل هست ولی من منظورم به این شکل (http://stackoverflow.com/a/18752247) هست، جریان لایسنس چی هست؟ :اشتباه:

من هفته پیش که به بازار گفتم گفتن خبر داریم! :متعجب: و لینک این صفحه (http://pardakht.cafebazaar.ir/doc/security-design/?l=fa) رو دادن، اگه اشتباه نکنم یکی از بهترین راه حل ها این تیکه هست :


برای درخواست خرید حتما از developer payload استفاده کنیددر API نسخه ۳ پرداخت درون برنامه‌ای شما می‌توانید همراه هر درخواست خرید یک developer payload هم به بازار ارسال کنید. این رشته می‌تواند به عنوان یک شناسهٔ منحصر به فرد از سمت شما برای این خرید در نظر گرفته شود. بازار بعد از اتمام مراحل خرید این رشته را همراه با جزئیات پرداخت به برنامهٔ شما بازمی‌گرداند.
شما باید این رشته را برای احراز هویت کاربری که درخواست خرید را داده است به بازار ارسال کنید. برای محصولات مصرف شدنی این رشته می‌تواند کاملا تصادفی ساخته شود، در حالیکه برای محصولاتی که مصرف شدنی نیستند، برای اطمینان از صحت خریده شدن محصول باید از یک رشتهٔ منحصر به فرد استفاده کنید.
وقتی‌ که پاسخ را از بازار دریافت کردید، مطمئن شوید developer payload که بازار همراه با جزئیات خرید به شما بازگردانده است، همانی است که شما برای شروع عملیات پرداخت به بازار ارسال کرده بودید. برای اطمینان از امنیت پیشنهاد می‌شود این عملیات را بر روی سرور خود انجام دهید.

esideli
دوشنبه 22 دی 1393, 17:21 عصر
نمیدونم منظورتون از بررسی نصب اون برنامه چی و به چه شکل هست ولی من منظورم به این شکل (http://stackoverflow.com/a/18752247) هست، جریان لایسنس چی هست؟ :اشتباه:

من هفته پیش که به بازار گفتم گفتن خبر داریم! :متعجب: و لینک این صفحه (http://pardakht.cafebazaar.ir/doc/security-design/?l=fa) رو دادن، اگه اشتباه نکنم یکی از بهترین راه حل ها این تیکه هست :

منظورم از لایسنس همون اضای برنامه هست و برسی نصب هم منظورم همون چک کردن نصب بودن بود.

esideli
دوشنبه 22 دی 1393, 17:29 عصر
خب خب یک روش برای مقابله با این برنامه مخوف پیدا کردم که الان بهتون می گم.

ابتدا بگم که نه می شه چک کرد برنامه نصب هست یا نه و دوم اینکه این برنامه بدون تغییر لایسنس (امضای برنامه) هم می تونه پرداخت درون برنامه ای رو دور بزنه.از اون جایی که این برنامه مخوف یعنی lucky patcher برای اجرای کاراش نیاز به دسترسی روت و گوشی روت شده داره، در صفحه اول برنامه با متد زیر چک می کنیم که گوشی طرف روت شده یا نه. در صورت روت بودن گوشی به کاربر می گیم که "این برنامه در گوشی روت شده قابل اجرا نمی باشد" و در غیر این صورت کاربر به برنامه وارد میشه. همون طور هم که می دونید گوشی های روت شده نسبت به کوشی های روت نشده خیلی کمتر هستند.

این متد بدون نیاز به هیچ فایل خارجی jar/lib کار می کنه.

متد:


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;
}


توی oncreate هم این طوری استفاده می کنیم :



if(isRooted()){
Toast.makeText(getBaseContext(), "این برنامه در گوشی روت شده قابل اجرا نمی باشد", Toast.LENGTH_LONG).show();
}else{
کد های ورود برنامه//
}


خب نظرتون چیه که برای جلوگیری از روت کردن گوشی توسط کاربرها و کرک برنامه هامون، همه برنامه نویس های ایرانی دسترسی به برنامه شون رو از گوشی روت محدود کنن؟

esideli
دوشنبه 22 دی 1393, 17:30 عصر
.................

Ebrahimkh
دوشنبه 22 دی 1393, 17:37 عصر
دوست عزیز بازم یه دنیا ممنون

ولی اینجوری که شما عرض کردید برنامه هامون دیگه بفروش نمیرسن

اگه یکی بگه این برنامه تو گوشی روت اجرا نمیشه دیگه کی دانلود بزنه ؟؟؟؟!!؟!؟


حداقل یه راه منطقی تر که همه بتونن به راحتی استفاده کنند



بازم ممنون

esideli
دوشنبه 22 دی 1393, 17:47 عصر
دوست عزیز بازم یه دنیا ممنون

ولی اینجوری که شما عرض کردید برنامه هامون دیگه بفروش نمیرسن

اگه یکی بگه این برنامه تو گوشی روت اجرا نمیشه دیگه کی دانلود بزنه ؟؟؟؟!!؟!؟


حداقل یه راه منطقی تر که همه بتونن به راحتی استفاده کنند



بازم ممنون

اول بگم که فعلا این تنها راهی بود که پیدا کردم. احتمالا راه های بهتری هم هست ولی کسی که گوشیش روت باشه حالا امروز lucky patcher هست معلوم نیست فردا چه برنامه های دیگه ای بیان. فعلا ما دروازه رو می بندیم . این روت فقط به ضرر ما برنامه نویسا شده.

چرا به فروش نمی رسه؟ مگه رایگان و درون پرداخت نمی خواین بزارین؟

Ebrahimkh
دوشنبه 22 دی 1393, 17:51 عصر
آره خب درون برنامه ای می خوام بزارم
بنظر شما این سورس جلوی لوک خوش شانس ما رو میگیره ؟؟؟!! خودتون تست زدین


من به بازار گفتم اونا گفت کدتون رو سمت سرور قرار بدین
گفتم یا للعجب این چی چی گفت

حالا شما به این روشی که بازار بهش اکتفا کرده تا حالا کار کردین

c0mmander
دوشنبه 22 دی 1393, 18:01 عصر
نمیدونم منظورتون از بررسی نصب اون برنامه چی و به چه شکل هست ولی من منظورم به این شکل (http://stackoverflow.com/a/18752247) هست، جریان لایسنس چی هست؟ :اشتباه:

من هفته پیش که به بازار گفتم گفتن خبر داریم! :متعجب: و لینک این صفحه (http://pardakht.cafebazaar.ir/doc/security-design/?l=fa) رو دادن، اگه اشتباه نکنم یکی از بهترین راه حل ها این تیکه هست :

بله بهترین راه همین هست.

امضای برنامه داخل این برنامه تغییر نمیکنه چون در حالت پرداخت درون برنامه برنامه پچ نمیشه فقط انگار با تغییر dns داخلی در حالت موقت فقط پیام که مارکت ارسال میکنه به صورت کلیشه ای رو به برنامه میده.

با توجه به اینکه پرداخت درون برنامه های ایران یک کپی از گوگل پلی هست (حتی به خودشون زحمت تغییر دادن پیام رو هم ندادن!) برنامه های ما هم به این طاعون دچار میشه.

اما باید یک برنامه سمت سرور درست کنید که با یک الگوریتم به خصوص یک رشته منحصر به فرد رو به برنامه بده و برنامه این رشته منحصر به فرد رو همراه با payload برای مارکت ارسال بفرسته. در نهایت بعد از جواب مارکت به برنامه خروجی رو به سرور بده و بررسی کنه که این رشته قبلا ثبت شده یا خیر. بهتره برای بهینه شدن یک سیستم ورود با داشته باشید که بعدا در صورتی که سرور شما مثلا یک میلیون کاربر داشت در حین جستجو به کم بودن سرعت مواجه نشید.

esideli
دوشنبه 22 دی 1393, 18:03 عصر
آره خب درون برنامه ای می خوام بزارم
بنظر شما این سورس جلوی لوک خوش شانس ما رو میگیره ؟؟؟!! خودتون تست زدین


من به بازار گفتم اونا گفت کدتون رو سمت سرور قرار بدین
گفتم یا للعجب این چی چی گفت

حالا شما به این روشی که بازار بهش اکتفا کرده تا حالا کار کردین

ولا من همین امروز که شما گفتین فهمیدم همچین برنامه ای هست. اگه از برنامه های مشابه دیگه هم خبر دارین بگین تا از همین الان براش یه فکری بکنیم. این روش که گفتم هم خب کار میده. تا زمانی که گوشی روت باشه برناممون باز نمیشه. برنامه هم برای اجرا نیاز به دسترسی روت داره. اگه چند نفر نتونن از برنامه استفاده کنن بهتر از این هست که عده ای بخوان زرنگی کنن.

به هر حال اگه کسی روش بهتری پیدا کرد بگه و همون طور که گفتم گوشی روت شده کلا به ضرر ماست.

#root#
دوشنبه 22 دی 1393, 18:17 عصر
بله بهترین راه همین هست.

امضای برنامه داخل این برنامه تغییر نمیکنه چون در حالت پرداخت درون برنامه برنامه پچ نمیشه فقط انگار با تغییر dns داخلی در حالت موقت فقط پیام که مارکت ارسال میکنه به صورت کلیشه ای رو به برنامه میده.

با توجه به اینکه پرداخت درون برنامه های ایران یک کپی از گوگل پلی هست (حتی به خودشون زحمت تغییر دادن پیام رو هم ندادن!) برنامه های ما هم به این طاعون دچار میشه.

اما باید یک برنامه سمت سرور درست کنید که با یک الگوریتم به خصوص یک رشته منحصر به فرد رو به برنامه بده و برنامه این رشته منحصر به فرد رو همراه با payload برای مارکت ارسال بفرسته. در نهایت بعد از جواب مارکت به برنامه خروجی رو به سرور بده و بررسی کنه که این رشته قبلا ثبت شده یا خیر. بهتره برای بهینه شدن یک سیستم ورود با داشته باشید که بعدا در صورتی که سرور شما مثلا یک میلیون کاربر داشت در حین جستجو به کم بودن سرعت مواجه نشید.


تصور من این بود که فقط یه رشته رو میدیم به سرور بعدش پس میگیریم، بعد اتمام کار رشته دود میشه میره، نگهداریه اینم خودش داستانیه :|


ولا من همین امروز که شما گفتین فهمیدم همچین برنامه ای هست. اگه از برنامه های مشابه دیگه هم خبر دارین بگین تا از همین الان براش یه فکری بکنیم. این روش که گفتم هم خب کار میده. تا زمانی که گوشی روت باشه برناممون باز نمیشه. برنامه هم برای اجرا نیاز به دسترسی روت داره. اگه چند نفر نتونن از برنامه استفاده کنن بهتر از این هست که عده ای بخوان زرنگی کنن.

به هر حال اگه کسی روش بهتری پیدا کرد بگه و همون طور که گفتم گوشی روت شده کلا به ضرر ماست.


من به عنوان یک کاربر روت بودن گوشیم رو به خرید یه برنامه ترجیح میدم، مزایای روت بودن فراتر از کرک کردن برنامه های خارجی و داخلی هست، نمیشه گذشت ازش :قلب:.

esideli
دوشنبه 22 دی 1393, 18:21 عصر
طبق گفته بازار :
"اگر پردازش امنیتی را به سرور خود منتقل کردید، مطمئن شوید که ارتباط بین دستگاه و سرور شما امن است."
خب این هم یک سر نخ از بازار. شاید به درد کسی بخوره.

Ebrahimkh
دوشنبه 22 دی 1393, 18:26 عصر
بازار برا چنین موقع هایی کم نمی یاره یه کپی پیست میزنه میفرسته میاد

حالا ربات میفرسته یا ادمین من کاری بهش ندارم


بنظر شما سمت سرور چه جوری کد میزنن ....

دوستان خواهشن یه راه اساسی پیشنهاد بدین

esideli
دوشنبه 22 دی 1393, 18:27 عصر
من به عنوان یک کاربر روت بودن گوشیم رو به خرید یه برنامه ترجیح میدم، مزایای روت بودن فراتر از کرک کردن برنامه های خارجی و داخلی هست، نمیشه گذشت ازش :قلب:.

شما که گوشیت روت هست می تونی از این برنامه استفاده نکنی؟ همین برنامه ها هستند که خیلی افراد میرن دنبال روت.

esideli
دوشنبه 22 دی 1393, 18:31 عصر
بازار برا چنین موقع هایی کم نمی یاره یه کپی پیست میزنه میفرسته میاد

حالا ربات میفرسته یا ادمین من کاری بهش ندارم


بنظر شما سمت سرور چه جوری کد میزنن ....

دوستان خواهشن یه راه اساسی پیشنهاد بدین

سمت سرو می خوای کد بزنی می تونی بری سمت php . البته برنامه های سمت سرور امنیتش الکی نیست و گرنه سرورتون هم حک می شه. کلا برنامه نویسی تحت وب خودش یه دنیایه.

c0mmander
دوشنبه 22 دی 1393, 18:32 عصر
تصور من این بود که فقط یه رشته رو میدیم به سرور بعدش پس میگیریم، بعد اتمام کار رشته دود میشه میره، نگهداریه اینم خودش داستانیه :|

من به مرگ گرفتم که به تب راضی بشید :لبخند:
البته برای موارد که مصرفی نیستن که کلا باید اون رشته ارسالی رو ذخیره کرد حالا میخواد داخل گوشی باشه یا داخل سرور. اما برای موارد مصرفی رشته به قول خودمون دودش دادی دادی چیزی خاصی نیست.:چشمک:
میشه این کار داخل خود برنامه انجام داد. خود برنامه یک رشته ای رو درست می کنه می فرسته و بعد از دریافت مطابقت رو انجام میده.
اما اگر برای موارد که مصرفی نیستن اون رشته رو دودش بدی یک مشکلی پیش میاد اونم اینکه در صورتی که کاربران غیر مخرب:بامزه: برنامه رو از گوشیشون پاک کردن دوباره خواستن نصب کنن حتما یک نظر به این مضمون ها "نامرد دز.. فلان فلان .. برنامه قبلا فعال کرده بودم اما الان فعال نمیشه یک ستاره هم زیادته!!" در مدت زمان کوتاهی برای برنامه میاد.

saeidd
دوشنبه 22 دی 1393, 19:11 عصر
این برنامه بدون تغییر لایسنس (امضای برنامه) هم می تونه پرداخت درون برنامه ای رو دور بزنه.


امضای برنامه داخل این برنامه تغییر نمیکنه چون در حالت پرداخت درون برنامه برنامه پچ نمیشه فقط انگار با تغییر dns داخلی در حالت موقت فقط پیام که مارکت ارسال میکنه به صورت کلیشه ای رو به برنامه میده.

ولی من هر چی تست کردم، امضا رو تغییر میده و برنامه ام با چک کردن تغییر امضا، این مساله رو متوجه میشه و یه پیام میده که از نسخه اصلی استفاده کنید و بسته میشه.

esideli
دوشنبه 22 دی 1393, 19:15 عصر
ولی من هر چی تست کردم، امضا رو تغییر میده و برنامه ام با چک کردن تغییر امضا، این مساله رو متوجه میشه و یه پیام میده که از نسخه اصلی استفاده کنید و بسته میشه.

لطفا اگه امکانش هست نحوه تست امضا تون رو بگین شاید ما اشتباه می کنیم:متفکر:.

saeidd
دوشنبه 22 دی 1393, 19:34 عصر
لطفا اگه امکانش هست نحوه تست امضا تون رو بگین شاید ما اشتباه می کنیم:متفکر:.

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 امضای برنامه من هست.

Ebrahimkh
دوشنبه 22 دی 1393, 19:56 عصر
سلام سعید جان

ممکنه بگویید که این تابع رو کجا باید اضافه کنیم
این تابع بصورت خودکار صدا زده میشه ؟؟؟
یا نه ما باید فراخوانیش کنیم ...


ممنون

abbasalim
دوشنبه 22 دی 1393, 20:05 عصر
خب خب یک روش برای مقابله با این برنامه مخوف پیدا کردم که الان بهتون می گم.

ابتدا بگم که نه می شه چک کرد برنامه نصب هست یا نه و دوم اینکه این برنامه بدون تغییر لایسنس (امضای برنامه) هم می تونه پرداخت درون برنامه ای رو دور بزنه.از اون جایی که این برنامه مخوف یعنی lucky patcher برای اجرای کاراش نیاز به دسترسی روت و گوشی روت شده داره، در صفحه اول برنامه با متد زیر چک می کنیم که گوشی طرف روت شده یا نه. در صورت روت بودن گوشی به کاربر می گیم که "این برنامه در گوشی روت شده قابل اجرا نمی باشد" و در غیر این صورت کاربر به برنامه وارد میشه. همون طور هم که می دونید گوشی های روت شده نسبت به کوشی های روت نشده خیلی کمتر هستند.

این متد بدون نیاز به هیچ فایل خارجی jar/lib کار می کنه.

متد:


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;
}


توی oncreate هم این طوری استفاده می کنیم :



if(isRooted()){
Toast.makeText(getBaseContext(), "این برنامه در گوشی روت شده قابل اجرا نمی باشد", Toast.LENGTH_LONG).show();
}else{
کد های ورود برنامه//
}


خب نظرتون چیه که برای جلوگیری از روت کردن گوشی توسط کاربرها و کرک برنامه هامون، همه برنامه نویس های ایرانی دسترسی به برنامه شون رو از گوشی روت محدود کنن؟
شما با این روش نه تنها مسئله رو حل نمی کنید بلکه مسئله قبلی که ؛چگونه گوشیمان را روت کنیم؟؛ بوده هم زدید خط خطی کردید:لبخند: + من تبلتم روت نیست و این برنامه روش کار می کنه مثل هلو

abbasalim
دوشنبه 22 دی 1393, 20:08 عصر
بله بهترین راه همین هست.


با توجه به اینکه پرداخت درون برنامه های ایران یک کپی از گوگل پلی هست (حتی به خودشون زحمت تغییر دادن پیام رو هم ندادن!) برنامه های ما هم به این طاعون دچار میشه.

به نظرم این کارشون خیلی هم خوبه چون الان من مشکلاتی که برام پیش میاد رو میرم تو استک سرچ می کنم و جوابش داخل کدهام کارسازه ولی اگه کدهاشون فرق داشت اونوقت باید مدام میل می دادم به بازار و منتظر پاسخشون می موندم . حالا اینکه چقدر پاسخ هاشون منطقی باشه بماند ( اگه مثل بعضیا باشه که ایمیل ها رو یکی چک میکنه برنامه رو یکی دیگه مینویسه :|‌)

Ebrahimkh
دوشنبه 22 دی 1393, 20:10 عصر
دوستان عزیز آخرش چیکار کنیم

یعنی راهی برا این بهران سراغ ندارید


سعید جان اون تابع رو چه جوری و در کجا باید استفاده کنیم

saeidd
دوشنبه 22 دی 1393, 20:17 عصر
سعید جان اون تابع رو چه جوری و در کجا باید استفاده کنیم
تیکه دوم که نوشتم همون صدا زدنشه دیگه

Ebrahimkh
دوشنبه 22 دی 1393, 20:25 عصر
سعید جان یه سوال دیگه

اگر تابع رو در اکتیویتی دوم بنویسیم
دستور if رو باید در اکتیویتی اول یا همون mainActivity در زیر تابع onCreate بنویسیم درسته ؟؟!!


یه دنیا ممنون

c0mmander
دوشنبه 22 دی 1393, 20:46 عصر
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 امضای برنامه من هست.

این کد شما وقتی جواب خواهد داد که برنامه پچ بشه . اما هیچ کدوم از برنامه هایی که من تست کردم حتی برنامه های خودم بدون هیچ پچی هستند . حتی انگری برد هم پچ نکردم اما بازم راحت میشه با یک yas از پرداخت درون برنامه استفاده کرد.

#root#
دوشنبه 22 دی 1393, 20:47 عصر
شما که گوشیت روت هست می تونی از این برنامه استفاده نکنی؟ همین برنامه ها هستند که خیلی افراد میرن دنبال روت.

ده روزی میشه که متوجه این جریان شدم و چند تا از برنامه ها رو دانلود کردم به قصد ارتقاء و دیدن امکاناتشون و اینکه همشون آیا آسیب پذیرن یا نه، بعد هم پاک کردم،

همون موقع به بازار جون هم خبر دادم، من اینطوری :متعجب: خبر دادم بازار هم اینطوری :لبخندساده: جواب داد.

وگرنه بخوام به قصد استفاده دائمی از برنامه ها این کار رو بکنم اصلا حس خوبی ندارم ...

Ebrahimkh
دوشنبه 22 دی 1393, 20:50 عصر
یعنی این راه هم جوابگو نیست

ای واااااااااااایییییییییی


خدابخیرش کنه


دوستان راهی به ذهنتون خطور نکرد

سعید جان شما مطمئنی این جواب میده

*********************************


root جان الان بنظرت باید چیکار کنیم

saeidd
دوشنبه 22 دی 1393, 20:51 عصر
اگر تابع رو در اکتیویتی دوم بنویسیم
دستور if رو باید در اکتیویتی اول یا همون mainActivity در زیر تابع onCreate بنویسیم درسته ؟؟!!
آره



این کد شما وقتی جواب خواهد داد که برنامه پچ بشه . اما هیچ کدوم از برنامه هایی که من تست کردم حتی برنامه های خودم بدون هیچ پچی هستند . حتی انگری برد هم پچ نکردم اما بازم راحت میشه با یک yas از پرداخت درون برنامه استفاده کرد.
پس چرا وقتی برنامه خودم رو تست می کنم، Lucky Patcher اول پچش می کنه و بعد پرداخت درون برنامه ای رو دور می زنه؟

c0mmander
دوشنبه 22 دی 1393, 21:14 عصر
آره



پس چرا وقتی برنامه خودم رو تست می کنم، Lucky Patcher اول پچش می کنه و بعد پرداخت درون برنامه ای رو دور می زنه؟

والا من هیچ کاری نمیکنم . فقط Lucky Patcher (لعنت الله علیه) رو نصب میکنم بعد روی برنامه کلیک میکنم بعد launch app رو میزنم و هیچ چیز رو پچ نمیکنم .. می افتم به جون برنامه ها بجز چندتا برنامه استخون دار مثل وایبر مابقی همه پرداخت درون برنامه فاتحه مع صلوات میشه!

تاحالا 10 - 15 تا برنامه سکه فروشی خدمات فروشی همه رو چه خارجی چه داخلی دور زده! فعلا در حال پیدا کردن راهم . این راه شما کاربردی لااقل برای من نداره

Ebrahimkh
دوشنبه 22 دی 1393, 21:25 عصر
سعید جان این قسمت رو که تو کلاس اصلی می نویسم میگه نمیشناسدش


if (MySigCheck(getApplicationContext()) != "18976453"){ Toast.makeText(getApplicationContext(), "لطفا از نسخه اصلی برنامه استفاده کنید.", Toast.LENGTH_SHORT).show(); finish();}



اومدم یه شی از کلاس دوم ساختم و بهش دسترسی پیدا کردم حالا بازم میگه تابع مورد نظر رو بساز حتی مقدار برگشتی رو هم تو یه String ریختم بازم میگه تابع رو بساز

Ebrahimkh
دوشنبه 22 دی 1393, 21:49 عصر
سعید جان یه سوال دیگه

در کل کار این تابع چی هست
من به برنامم اضافش کردم سریع برنامه رو بست

خب معلومه مقدار برگشتی نامساوی با رشته ی ماست

این حالا چه جوری می خواد جلوی برنامه رو بگیره


خواهشن اگه ممکنه یکم واضح تر توضیح بده


بازم ممنون بخاطر لطفت

saeidd
دوشنبه 22 دی 1393, 21:52 عصر
والا من هیچ کاری نمیکنم . فقط Lucky Patcher (لعنت الله علیه) رو نصب میکنم بعد روی برنامه کلیک میکنم بعد launch app رو میزنم و هیچ چیز رو پچ نمیکنم .. می افتم به جون برنامه ها بجز چندتا برنامه استخون دار مثل وایبر مابقی همه پرداخت درون برنامه فاتحه مع صلوات میشه!

تاحالا 10 - 15 تا برنامه سکه فروشی خدمات فروشی همه رو چه خارجی چه داخلی دور زده! فعلا در حال پیدا کردن راهم . این راه شما کاربردی لااقل برای من نداره
ببین. من lucky patcher رو اجرا می کنم، لیست برنامه های نصب شده رو نشون میده، روی برنامه خودم کلیک می کنم، یه چیزی باز میشه که گزینه های مختلفی داره. اگه launch app رو بزنم، برنامه ام اجرا میشه ولی نمیتونه پرداخت برنامه رو دور بزنه. فقط وقتی که Open Menu Of Patches رو میزنم، برنامه رو پچ می کنه و فایل apkk شو میسازه و باید قبلی (نسخه اصلی) رو پاک کنم و اینو نصب کنم تا موقع پرداخت درون برنامه ای بتونه دورش بزنه که اینم با همون چک کردن امضا حل میشه.
نمیدونم چرا برای شما اینطوری نیست!!


سعید جان این قسمت رو که تو کلاس اصلی می نویسم میگه نمیشناسدش


if (MySigCheck(getApplicationContext()) != "18976453"){ Toast.makeText(getApplicationContext(), "لطفا از نسخه اصلی برنامه استفاده کنید.", Toast.LENGTH_SHORT).show(); finish();}



اومدم یه شی از کلاس دوم ساختم و بهش دسترسی پیدا کردم حالا بازم میگه تابع مورد نظر رو بساز حتی مقدار برگشتی رو هم تو یه String ریختم بازم میگه تابع رو بساز
کد رو کامل بذار، نمیدونم چکار کردی


خب معلومه مقدار برگشتی نامساوی با رشته ی ماست

این حالا چه جوری می خواد جلوی برنامه رو بگیره
عزیز من چرا درست دقت نمی کنی به پستها، من که همون وقت گفتم که اون عدد امضای برنامه منه، خب امضای برنامه شما فرق می کنه دیگه

Amir Oveisi
دوشنبه 22 دی 1393, 22:04 عصر
حل این مشکل چندان هم پیچیده نیست! شما برای اینکه امکان پرداخت درون برنامه ای داشته باشید قطعا برنامتون دسترسی اینترنت داره پس بجای اینکه کل مراحل پرداخت رو از طریق برنامه اندرویدیتون انجام بدید، باید مراحل پرداخت رو از طریق سرور های خودتون انجام بدید. یعنی اینکه به جای اینکه برنامه شما به سرور بازار وصل بشه و پرداخت کنه، باید برنامتون به سرور خودتون وصل بشه و سرور شما با بازار ارتباط برقرار کنه و جواب رو به برنامه شما منتقل کنه و مراحل پرداخت رو انجام بدید. وقتی این اتفاق افتاد، سرور شما میدونه که کدوم کاربر واقعا پرداخت رو انجام داده. بعد از این تنها کاری که لازمه انجام بدید اینه که در بازه های زمانی مختلف یه ارتباط کوچیک از برنامه اندرویدی به سرورتون داشته باشید و با ارسال شناسه کاربری به سرور چک کنید ببینید کاربر پرداخت کرده یا نه. پس اگر کاربر برنامه رو کرک کرده باشه توی سرور شما براش پرداختی ثبت نشده و در اولین ارتباطی که با سرور برقرار میشه مشخص میشه برنامه کرک شده و میتونید ورودش به برنامه رو جلوگیری کنید.
حالا اگر نخواید پرداخت ها رو سمت سرور مدیریت کنید، باز هم میشه این مشکل رو حل کرد. کافیه از روشی که بازار توضیح داده، develpoer payload رو تولید کنید و هر زمانی که در برنامه پرداخت انجام شد مقدار payload رو به سرورتون ارسال کنید و ذخیره کنید اونجا.حالا هر موقع که برنامه اجرا میشه چک کنید ببینید که آیا کاربر ارتقا یافته هست یا نه، اگر کاربر ارتقا یافته بود یعنی یا واقعا پرداخت کرده یا اینکه کرک کرده و برنامه به اشتباه فکر میکنه که پرداخت شده. برای اطمینان از این موضوع اون developer payload ای که تولید کردید رو بفرستید به سرور، اگر توی سرور هم همون مقدار برای developer payload وجود داشته باشه برای اون کاربر، یعنی واقعا پرداخت رو انجام داده و در غیر اینصورت یعنی کرک شده و مانع ورود کاربر به برنامه میشید.
پس در نهایت شما باید سرور خودتون رو داشته باشید برای حل این مشکل و صرفا به برنامه کلاینتتون که روی گوشی نصب شده برای مدیریت پرداخت ها اکتفا نکنید.
موفق باشید

#root#
دوشنبه 22 دی 1393, 22:11 عصر
Amir Oveisi (http://barnamenevis.org/member.php?17736-Amir-Oveisi) عزیز،

هاست معمولی جوابگو هست برای این کار؟

Ebrahimkh
دوشنبه 22 دی 1393, 22:18 عصر
سلام Amir Oveisi (http://barnamenevis.org/member.php?17736-Amir-Oveisi) جان
حقیقتش من نگرفتم
چی رو باید تو سرور بزارم چه جوری بزارم اصلا بازار فقط میدونه یه نوشته رو گپی پیست کنه و بس ......خب الان من چه جوری باید سمت سرور کار کنم


کدوم کد رو باید تو برنامه قرار بدم کدومش رو بزارم تو سرور بعدش چه جوری باید به برنامه بفهمونم که کد کجاست


************************

راستی سعید جان یه سوال کوچیک این امضا رو من کجا باید بیارم منظور شما همون String payload هستش ؟؟؟


بازم ممنون

saeidd
دوشنبه 22 دی 1393, 22:42 عصر
به نظرم میرسه با چک کردن token منحصر به فرد بازار - و نه payload- بشه بدون راه اندازی سرور هم جلوی این برنامه ی لعنتی رو گرفت. دارم تستش می کنم، اگه جواب داد نتیجه رو اعلام می کنم.

Ebrahimkh
دوشنبه 22 دی 1393, 22:43 عصر
مرسی سعید جان

بی صبرانه منتظرتم

esideli
دوشنبه 22 دی 1393, 22:46 عصر
ببین. من lucky patcher رو اجرا می کنم، لیست برنامه های نصب شده رو نشون میده، روی برنامه خودم کلیک می کنم، یه چیزی باز میشه که گزینه های مختلفی داره. اگه launch app رو بزنم، برنامه ام اجرا میشه ولی نمیتونه پرداخت برنامه رو دور بزنه. فقط وقتی که Open Menu Of Patches رو میزنم، برنامه رو پچ می کنه و فایل apkk شو میسازه و باید قبلی (نسخه اصلی) رو پاک کنم و اینو نصب کنم تا موقع پرداخت درون برنامه ای بتونه دورش بزنه که اینم با همون چک کردن امضا حل میشه.
نمیدونم چرا برای شما اینطوری نیست!!


برای دور زدن پرداخت درون برنامه ای از توی lucky patcher باید برنامتون رو لمس کنید و نگه دارین و بعد از یک ثانیه یه کادر باز میشه که باید گزینه سوم روبزنی یعنی support patch for inapp بعد هم یه تاید میزنی و به احتمال زیاد همه چیز حله. وارد برنامه میشی و روی نسخه طلایی میزنی و به جای اینکه برنامه بازار بیاد با، این ملعون میاد بالا و با یه تاید برنامه پریمیوم میشه. امضا هم تغییری نمی کمه.

c0mmander
دوشنبه 22 دی 1393, 22:52 عصر
حالا اگر نخواید پرداخت ها رو سمت سرور مدیریت کنید، باز هم میشه این مشکل رو حل کرد. کافیه از روشی که بازار توضیح داده، develpoer payload رو تولید کنید و هر زمانی که در برنامه پرداخت انجام شد مقدار payload رو به سرورتون ارسال کنید و ذخیره کنید اونجا.حالا هر موقع که برنامه اجرا میشه چک کنید ببینید که آیا کاربر ارتقا یافته هست یا نه، اگر کاربر ارتقا یافته بود یعنی یا واقعا پرداخت کرده یا اینکه کرک کرده و برنامه به اشتباه فکر میکنه که پرداخت شده. برای اطمینان از این موضوع اون developer payload ای که تولید کردید رو بفرستید به سرور، اگر توی سرور هم همون مقدار برای developer payload وجود داشته باشه برای اون کاربر، یعنی واقعا پرداخت رو انجام داده و در غیر اینصورت یعنی کرک شده و مانع ورود کاربر به برنامه میشید.
پس در نهایت شما باید سرور خودتون رو داشته باشید برای حل این مشکل و صرفا به برنامه کلاینتتون که روی گوشی نصب شده برای مدیریت پرداخت ها اکتفا نکنید.
موفق باشید

اول یک نکته ای:
من داخل پست های قبلیم یک جا اشتباهی گفتم که میشه بدون سرور هم با قرار دادن developer payload برنامه بررسی کرد که اشتباه گفتم . و الان میرم که ویرایشش کنم بعدا باعث اشتباه دیگران نشه.
اصلا فراموش کردم که باید بعد از خرید برنامه یک سری به وب سرویس بزنه و وب سرویس هم با REST کردن با بازار ببنه خرید به درستی ثبت شده یا خیر. که من اونجا گفتم که حتما نیازی به سرور نیست که اشتباه بود و حتما نیاز هست. همین جا معزرت میخوام از همه. (اون پست هم ویرایش میکنم.)

اما دوم:

حل این مشکل چندان هم پیچیده نیست! شما برای اینکه امکان پرداخت درون برنامه ای داشته باشید قطعا برنامتون دسترسی اینترنت داره پس بجای اینکه کل مراحل پرداخت رو از طریق برنامه اندرویدیتون انجام بدید، باید مراحل پرداخت رو از طریق سرور های خودتون انجام بدید. یعنی اینکه به جای اینکه برنامه شما به سرور بازار وصل بشه و پرداخت کنه، باید برنامتون به سرور خودتون وصل بشه و سرور شما با بازار ارتباط برقرار کنه و جواب رو به برنامه شما منتقل کنه و مراحل پرداخت رو انجام بدید. وقتی این اتفاق افتاد، سرور شما میدونه که کدوم کاربر واقعا پرداخت رو انجام داده. بعد از این تنها کاری که لازمه انجام بدید اینه که در بازه های زمانی مختلف یه ارتباط کوچیک از برنامه اندرویدی به سرورتون داشته باشید و با ارسال شناسه کاربری به سرور چک کنید ببینید کاربر پرداخت کرده یا نه. پس اگر کاربر برنامه رو کرک کرده باشه توی سرور شما براش پرداختی ثبت نشده و در اولین ارتباطی که با سرور برقرار میشه مشخص میشه برنامه کرک شده و میتونید ورودش به برنامه رو جلوگیری کنید.

برای پرداخت درون برنامه چطوری میشه پرداخت درون برنامه رو تبدیل به پرداخت داخل وب کرد؟

Ebrahimkh
سه شنبه 23 دی 1393, 09:29 صبح
هنوزم منتظرم
آخرش چیکار کنیم

poorman
سه شنبه 23 دی 1393, 10:48 صبح
به به عجب بحرانی شده این قضیه
من اطلاع نداشتم از این موضوع
چند روز پیش یکی زنگ زده بهم میگه آقا برنامتون برای من کامل باز شده بدون اینکه پولی پرداخت کنم راضی هستی؟
ما هم بی خبر گفتیم اگه هکی نشده و همینطوری فعال شده آره، دیگه حالا خدا عالمه !!!

الان دوستانی که میگن payload چک بشه، یعنی این برنامه لاکی لعین عقلش نمیکشه همون payload رو برگردونه؟
در هر صورت برنامه فعال میشه و همون payload برگشت داده میشه، چون بالاخره یک intent هست و مقدارش قابل دسترسه
حالا اگر این مقدار رو ما ذخیره کنیم و بعد بخوایم چکش کنیم بازم نمیشه فهمید پرداخت درست بوده یا نه ( البته این استدلال منه، شاید درست نباشه )

تنها راه اینه که همه کار سمت سرور انجام بشه ( منظورم همه کاره !!! )

من دو تا جواب مفید پیدا کردم دو تاش هم توی stackOverflow

http://stackoverflow.com/a/24441294
http://stackoverflow.com/a/14740405

این دو نفر اومدن خوب توضیح دادن و یکسری راهکار ارائه دادن
اولی اومده گفته لاکی لعین کلا میاد با پچ کردن همه چیز رو true برمیگردونه، گفته حتی من میام امضا رو چک میکنم true برمیگردونه !!!
توی فایل های پرداخت هم ظاهرا همینطوره، راه حلی که گفته اینه که شما کلا true یا false رو بذارید کنار و همه چیز رو با رشته ها مقایسه کنید
که کارشم اینه باید بریم فایل های پرداخت رو ویرایش کنیم خودمون ( البته همه اینا حدس و گمانه )

لینک دوم اول اومده راجع به چک کردن امضا گفته و بعد اینکه چک کنیم آیا لاکی لعین نصب هست روی گوشی یا نه
به نظرم من چک کردن لاکی لعینش جالب اومد البته امتحان نکردم !!!

یه آموزش توی youTube دیدم که خود طرف گذاشته بود. زیرش ملت درخواست داده بودن کلش آف کلنز رو یه کاری کنه هک بشه
طرف هم جواب داده بود به هیچ عنوان نمیشه و نخواهد شد برای اینکه همه کاراشو داره روی سرور انجام میده و لوکال نیست

این اطلاعاتی بود که من بدست اوردم، حالا بازم دوستان در جستجو باشن ببینیم به کجا ختم میشه
من برم لاکی رو نصب کنم ببینم با برنامه خودم چطوری رفتار میکنه !!!

c0mmander
سه شنبه 23 دی 1393, 11:41 صبح
به به خوش اومدی poorman (http://barnamenevis.org/member.php?295320-poorman) جان .. من روی برنامه های تو هم هم تست کردم مثل هلو دور زد پرداخت درون برنامه هات دقیقا مثل برنامه های خودم:قهقهه:


الان دوستانی که میگن payload چک بشه، یعنی این برنامه لاکی لعین عقلش نمیکشه همون payload رو برگردونه؟

نکته اصلی هم همون بود دیگه این برنامه لعنت الله علیه همه چیز رو که بهش میدادی به برنامه بر میگردونه که پیلود هم شاملش هست من یک بار اشتباه کردم گفتم که میشه لوکال هم داخل برنامه تست کرد که حرف به کل غلطی بود

نکته اصلی اینه که باید شناسه هایی که باید بررسی شوند رو به یک وب سایت بدی وب سایت بره از بازار بپرسه که این چیزا میزا که بهت دادم وجود داره یانه . بعد به برنامه بگه اگر موجود بود پردازش ها رو انجام بده در غیر این صورت باید بگه کاربر مخرب مچتو گرفتم اون برنامه لاکی پنچر روی من دیگر اثر ندارد :لبخند:

فقط باید یکی زحمت PHP شو بکشه . البته فقط پیلود نیست. و باید توکن هم بررسی بشه.
(شاید بشه مستقم به بازار از داخل برنامه یک کویری از نوع get ارسال کرد و جواب رو گرفت اما هنوز اطمینان ندارم)

Amir Oveisi
سه شنبه 23 دی 1393, 11:43 صبح
Amir Oveisi (http://barnamenevis.org/member.php?17736-Amir-Oveisi) عزیز،

هاست معمولی جوابگو هست برای این کار؟

بله، بسته به اینکه سمت سرور رو با چه زبان/پلتفرمی برنامه نویسی میکنید میتونید هاست مناسب رو تهیه کنید.

Amir Oveisi
سه شنبه 23 دی 1393, 12:07 عصر
سلام Amir Oveisi (http://barnamenevis.org/member.php?17736-Amir-Oveisi) جان
حقیقتش من نگرفتم
چی رو باید تو سرور بزارم چه جوری بزارم اصلا بازار فقط میدونه یه نوشته رو گپی پیست کنه و بس ......خب الان من چه جوری باید سمت سرور کار کنم


کدوم کد رو باید تو برنامه قرار بدم کدومش رو بزارم تو سرور بعدش چه جوری باید به برنامه بفهمونم که کد کجاست


************************

راستی سعید جان یه سوال کوچیک این امضا رو من کجا باید بیارم منظور شما همون String payload هستش ؟؟؟


بازم ممنون

شما برای ساده تر شدن کار، پرداخت رو از کلاینت انجام بدید و فقط payload رو روی سرور نگهداری کنید.

saeidd
سه شنبه 23 دی 1393, 12:07 عصر
(شاید بشه مستقم به بازار از داخل برنامه یک کویری از نوع get ارسال کرد و جواب رو گرفت اما هنوز اطمینان ندارم)
از اول صبح دارم رو همین کار می کنم، فعلا که به نتیجه نرسیدم. اگه شما زودتر به نتیجه رسیدی بگو

Amir Oveisi
سه شنبه 23 دی 1393, 12:09 عصر
برای پرداخت درون برنامه چطوری میشه پرداخت درون برنامه رو تبدیل به پرداخت داخل وب کرد؟

بله شما باید درخواست هایی که قرار بوده از سمت کلاینت اندرویدی به سرور بازار بره رو خودتون از سمت سرور شبیه سازی کرده و به بازار ارسال کنید و نتیجش رو به کلاینت اندرویدی برگردونید. با این کار میتونید پروتکل خودتون رو برای پرداخت های درون برنامه ای داشته باشید. در واقع سرور شما یک لایه میانی میشه برای برقراری ارتباط با سرور پرداخت بازار.

esideli
سه شنبه 23 دی 1393, 13:00 عصر
لینک دوم اول اومده راجع به چک کردن امضا گفته و بعد اینکه چک کنیم آیا لاکی لعین نصب هست روی گوشی یا نه
به نظرم من چک کردن لاکی لعینش جالب اومد البته امتحان نکردم !!!


این برنامه بدون تغییر امضا، پرداخت رو دور میزنه و در مورد چک کردن نصب بون برنامه باید بگم که

این برنامه هر چند وقت یک بار نام پکیجش رو عوض می کنه بخاطر همین چک کردن نصب بودن تا زمانی که نام پکیج عوض نشده باشه جواب میده.

تا الان 6 تا نسخه lucky را چک کردم و 3 تا نام پکیج مختلف بدست اوردم. با این پکیج ها می شه فهمید که برنامه نصب هست هست ولی با اومدن نسخه جدید و پکیج جدید برنامه ی ما هم دیگه این روش بدردش نمی خوره. به نظر اگه نخوایم از سرور استفاده کنیم، چک کردن روت بودن گوشی و نصب lucky می تونه دست افراد سود جو رو تا حد زیادی کوتاه کنه.

c0mmander
سه شنبه 23 دی 1393, 13:51 عصر
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:

Ebrahimkh
سه شنبه 23 دی 1393, 14:14 عصر
پس اینجور که بوش میاد فاتحه ی رویاهامون با پرداخت درون برنامه ای خوندس
باید فاتحش رو بخونم من یقرا فاتحمه الصلوات



دوستان یه سورسی بزارید تا این برنامه هامون روآپدیت کنیم اینجوری بیچاره که لوک خوش شانس داره پیش میره کلاه برنامه هامون پس معرکست :لبخند:

saeidd
سه شنبه 23 دی 1393, 14:26 عصر
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:
در گوشی بدون روت، بدون پچ نمیتونه دور بزنه پرداخت رو، که این هم با چک کردن امضا قابل فهمه. فکر کنم شمام اشتباهی گفتی پچ نمی کنه

amin_nez
سه شنبه 23 دی 1393, 16:37 عصر
در گوشی بدون روت، بدون پچ نمیتونه دور بزنه پرداخت رو، که این هم با چک کردن امضا قابل فهمه. فکر کنم شمام اشتباهی گفتی پچ نمی کنه

لاکی برنامه رو resign نمیکنه! که بشه با چک کردن امضا تشخیص داد. منبع : لینک (http://stackoverflow.com/questions/13582869/does-lucky-patcher-resign-the-app-it-patches-and-does-google-api-validate-sha1) + تست برنامه

esideli
سه شنبه 23 دی 1393, 17:23 عصر
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:

توی همه سایت ها که گفتن گوشی باید روت شده باشه. شما مطمئنید که روی گوشی های روت نشده هم پرداخت برنامه رو دور میزنه؟

Ebrahimkh
سه شنبه 23 دی 1393, 17:58 عصر
لاکی برنامه رو resign نمیکنه! که بشه با چک کردن امضا تشخیص داد. منبع : لینک (http://stackoverflow.com/questions/13582869/does-lucky-patcher-resign-the-app-it-patches-and-does-google-api-validate-sha1) + تست برنامه


یعنی بنظر شما امضا هم کارساز نیست ؟؟!!!؟؟

عجب فلیمی داریم ما اونم با این لوک خوش شانس

amin_nez
سه شنبه 23 دی 1393, 20:10 عصر
یعنی بنظر شما امضا هم کارساز نیست ؟؟!!!؟؟

عجب فلیمی داریم ما اونم با این لوک خوش شانس

چیزی که من امتحان کردم و چیزی که نوشته شده توی stackoverflow میگه که کارساز نیست!
تنها راهی که فک میکنم کار ساز باشه اینه که اطلاعات خرید رو به سرور بدیم که چک کنه ببینه آیا خرید درست بوده یا نه.در واقع اطلاعات خرید رو از طریق سرور خودمون و بازار از طریق وب سرویس چک کنیم.

saeidd
سه شنبه 23 دی 1393, 20:18 عصر
من چندین بار تست کردم، وقتی این ملعون برنامه رو پچ می کنه، امضاشو تغییر میده، ولی در بعضی از دستگاههای روت شده اصلا پچ نمی کنه که خب اینجا امضا رو هم تغییر نمیده

Ebrahimkh
سه شنبه 23 دی 1393, 20:53 عصر
حالا اگه ممکنه یه سورسی بزارید تا از دستش نجات پیدا کنیم


بنظرم دست دوستان php کارمون رو هم می بوسه


******************
دوستم با این ملعونک بهترین بازی جهان که 100 دلار قیمتش بود رو به قیمت ماست خرید یعنی ماست زمان شاه که مفت بود نه الان :لبخند:


در کل هرجور برنامه ای رو که بخوای تو نیم سوت میپرونه

c0mmander
چهارشنبه 24 دی 1393, 07:26 صبح
با گوشی بدون روت هم پرداخت درون برنامه رو دور میزنه فقط پچ نمیکنه :افسرده:


در گوشی بدون روت، بدون پچ نمیتونه دور بزنه پرداخت رو، که این هم با چک کردن امضا قابل فهمه. فکر کنم شمام اشتباهی گفتی پچ نمی کنه


توی همه سایت ها که گفتن گوشی باید روت شده باشه. شما مطمئنید که روی گوشی های روت نشده هم پرداخت برنامه رو دور میزنه؟

بله دوستان درست گفتم بدون هیچ اشتباهی !!!! داخل گوشی های روت نشده کاملا جواب میده!! بدون مشکل ...

داخل گوشی های روت نشده این پیام میاد:



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 تست کردم.

تنها راه ممکن که بدون مشکل باشه فقط از طریق وب سرویس هست.

Ebrahimkh
چهارشنبه 24 دی 1393, 09:16 صبح
حالا این کد وب سرویس رو ممکنه یکی بزاره تا همه ازش استفاده کنن
یا یه آموزشی که بتونه کمکمون کنه

saeidd
چهارشنبه 24 دی 1393, 09:37 صبح
لطفا آخرین نسخه اون رو 5.4.1 رو دانلود کنید ببنید که چطوری راحت دور مزنه. من روی گوشی LG , Motorola تست کردم. که بدون روت بدون .
منم از نسخه 5.4.1 استفاده می کنم. پس چرا تو گوشی روت نشده نمیتونه دور بزنه؟ رو سامسونگ تست کردم. دقیق مراحلش رو توضیح بده ببینیم جریان چیه؟ آیا تو گوشی ها متفاوته یا برنامه ها فرق می کنن؟
یه چند تا از این برنامه هایی که لاکی دور زده، تو پیام خصوصی بفرست منم تستش کنم ببینم چطوره، چون برنامه هایی که من تو گوشی روت نشده تست کردم، هیچکدومش رو نتونست دور بزنه

c0mmander
چهارشنبه 24 دی 1393, 11:18 صبح
منم از نسخه 5.4.1 استفاده می کنم. پس چرا تو گوشی روت نشده نمیتونه دور بزنه؟ رو سامسونگ تست کردم. دقیق مراحلش رو توضیح بده ببینیم جریان چیه؟ آیا تو گوشی ها متفاوته یا برنامه ها فرق می کنن؟ یه چند تا از این برنامه هایی که لاکی دور زده، تو پیام خصوصی بفرست منم تستش کنم ببینم چطوره، چون برنامه هایی که من تو گوشی روت نشده تست کردم، هیچکدومش رو نتونست دور بزنه پیغام خصوصی شد. البته یک راه دیگه هم بجز استفاده از وب سرویس هست. که بعد از خرید خود برنامه به محصولات خریده شده رو استعلام بگره. من یک برنامه نوشتم که به درستی عمل میکرد اما الان دیگه وقت ندارم روش کار کنم. خودتون برید دنبالش یک GetPurchases بنویسد تستش کنید.

esideli
چهارشنبه 24 دی 1393, 11:26 صبح
البته یک راه دیگه هم بجز استفاده از وب سرویس هست. که بعد از خرید خود برنامه به محصولات خریده شده رو استعلام بگره. من یک برنامه نوشتم که به درستی عمل میکرد اما الان دیگه وقت ندارم روش کار کنم. خودتون برید دنبالش یک GetPurchases بنویسد تستش کنید.

این برنامه کلا فرایند پرداخت و چک کردن رو از کار می ندازه . حالا اگه چک کردن هم کار بده، اگه اینترنت وصل نباشه چی؟ بازم دور می زنه.

c0mmander
چهارشنبه 24 دی 1393, 12:03 عصر
این برنامه کلا فرایند پرداخت و چک کردن رو از کار می ندازه . حالا اگه چک کردن هم کار بده، اگه اینترنت وصل نباشه چی؟ بازم دور می زنه.

خیر دیگه متصل به اینترنت بودن یا نبودن مطرح نیست. شما باید چک کردن رو بعد از دریافت پاسخ بازار بلافاصله قبل از ارتقا برنامه انجام بدید در صورتی که تایید شد برنامه رو ارتقا بدید در غیر این صورت هیچی//.. حالا اگر به اینترنت وصل نبود پاسخی هم دریافت نمکنه پس برنامه فعال نمیشه.

در حال حاضر توضیح بیشتری نمیتونم بدم

esideli
چهارشنبه 24 دی 1393, 12:16 عصر
خیر دیگه متصل به اینترنت بودن یا نبودن مطرح نیست. شما باید چک کردن رو بعد از دریافت پاسخ بازار بلافاصله قبل از ارتقا برنامه انجام بدید در صورتی که تایید شد برنامه رو ارتقا بدید در غیر این صورت هیچی//.. حالا اگر به اینترنت وصل نبود پاسخی هم دریافت نمکنه پس برنامه فعال نمیشه.

در حال حاضر توضیح بیشتری نمیتونم بدم

برای چک کردن نمی شه از in app biling استفاده کرد.
من برنامه خودم رو که قبلا هم از طریق بازار خریدمش رو تست کردم. توی برنامه من یه صفحه جدا واسه پرداخت هست که توش یه دکمه برای ارتقای برنامه هست. به محض ورود کاربر به صفحه، برنامم اتوماتیک چک می کنه که این محصول خریده شده یا نه. اگه خریده شده بود به صورت خود کار برنامه ارتقا پیدا می کنه و در غیر این صورت باید روی دکمه ارتقا کلیک بشه. الان اومدم از این lucky patcher استفاده کردم. دیدم با اینکه اینترنت وصله، بازار نصبه و من هم قبلا با اکانتم به بازار وارد شدم، اصلا برنامه چک نمی کنه که این محصول رو خریدم و با زدن گزینه ارتقا، lucky patch میاد جلو و والسلام.

saeidd
چهارشنبه 24 دی 1393, 12:17 عصر
شما باید چک کردن رو بعد از دریافت پاسخ بازار بلافاصله قبل از ارتقا برنامه انجام بدید در صورتی که تایید شد برنامه رو ارتقا بدید در غیر این صورت هیچی
دیروز من اینو چک کردم، البته روی برنامه ای که لاکی اون رو پچ کرده بود؛ جواب نداد. ولی شاید روی برنامه پچ نشده جواب بده

amin_nez
چهارشنبه 24 دی 1393, 13:07 عصر
توجه (حل شد) :

بعد از کلی کلنجار راهی پیدا کردم که لاکی نتونه پرداخت رو دور بزنه.نیازی به وب سرویس نیست و از طریق خود برنامه کافه بازار خرید رو چک میکنیم.
فقط کافیه که توی 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();
}

saeidd
چهارشنبه 24 دی 1393, 13:20 عصر
توجه (حل شد) :

بعد از کلی کلنجار راهی پیدا کردم که لاکی نتونه پرداخت رو دور بزنه.نیازی به وب سرویس نیست و از طریق خود برنامه کافه بازار خرید رو چک میکنیم.
فقط کافیه که توی 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 هم درست باشه.

یه نکته مهم دیگه؛ قبل از ورود به صفحه خریدتون، حتما چک کنید که کاربر در بازار لاگین کرده باشه -هر چند اگه چک نکنید، خود بازار چک می کنه- چون اگه این مساله چک نشه و کاربر در بازار لاگین نکرده باشه این کدی که دوستمون گذاشتن خطا میده
کدش رو هم به نظرم در یکی از پستها دوستان گذاشته بودن

esideli
چهارشنبه 24 دی 1393, 13:33 عصر
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 امضای برنامه من هست.

شما برای چک کردن دو تا استرینگ که از یک نوع نیستند (یکی معمولی هست و دیگری مقدار برگشتی متغییر) باید از روش زیر استفاده کنید و گرنه شرط همیشه false خواهد بود:

if(!MySigCheck(getApplicationContext()).equals("18976453")){

}else{

}

esideli
چهارشنبه 24 دی 1393, 14:37 عصر
توجه (حل شد) :

بعد از کلی کلنجار راهی پیدا کردم که لاکی نتونه پرداخت رو دور بزنه.نیازی به وب سرویس نیست و از طریق خود برنامه کافه بازار خرید رو چک میکنیم.
فقط کافیه که توی 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();
}

تست کردم و به خوبی هم جواب داد. مرسی. :تشویق:

Ebrahimkh
چهارشنبه 24 دی 1393, 15:47 عصر
دوست عزیز ممکنه کد تابع رو کامل برا ماهم بزاری ...

ممنون

Ebrahimkh
چهارشنبه 24 دی 1393, 16:16 عصر
دوستان جواب داد دمتون گرم مرسیییییییییییییییی

saeidd
چهارشنبه 24 دی 1393, 17:32 عصر
چطور تشخیص بدیم کاربر تو بازار لاگین کرده یا نه؟ و اینکه چطور بوسیله کد پنجره ورود به بازار رو ظاهر کنم بدون اینکه بعد از ورود کار خاصی -مثل خرید و ...- انجام بده؟

amin_nez
چهارشنبه 24 دی 1393, 18:22 عصر
چطور تشخیص بدیم کاربر تو بازار لاگین کرده یا نه؟ و اینکه چطور بوسیله کد پنجره ورود به بازار رو ظاهر کنم بدون اینکه بعد از ورود کار خاصی -مثل خرید و ...- انجام بده؟

اینکه چطور تشخیص بدیم کاربر لاگین کرده یا نه رو من با این کد چک میکنم.مورد دوم رو نمیدونم

توی QueryInventoryFinishedListener

if (result.getResponse()==6) {
MyToast("ابتدا به برنامه بازار رفته و با حساب خود وارد شويد.", Toast.LENGTH_LONG);
return;
}

saeidd
چهارشنبه 24 دی 1393, 19:13 عصر
دومیش رو هم خودم پیدا کردم:
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.farsitel.bazaar", "com.farsitel.bazaar.activity.LoginActivity"));
startActivity(intent);

zikimiki
جمعه 26 دی 1393, 13:01 عصر
سلام
اینم کد خرید منه ولی نمی دونم دقیقا کجا این کد رو بذارم هر جا میذارم ایراد میگیره

// 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);
}

}
});
}
});
}

mrzzrm
پنج شنبه 09 بهمن 1393, 16:24 عصر
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 رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:

saeidd
جمعه 10 بهمن 1393, 17:55 عصر
این روش هم جواب نمیده وقتی
save for restore رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:
آره درسته. دوستان رفتیم سر نقطه اول!!:قهقهه:

mrzzrm
جمعه 10 بهمن 1393, 19:53 عصر
این لامسب به هیچی نه نمیگد
عین هلو برنامه رو قورت میدد:افسرده:
روی بیشت برنامه ها تست کردم و جواب گرفتم البته از برنامه ها استفاده نکردم چون حرومه!
:لبخند:

esideli
جمعه 10 بهمن 1393, 21:01 عصر
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 رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:

درسته. کار این گزینه چیه؟

doost_fu
شنبه 11 بهمن 1393, 13:24 عصر
دوستان کسی جوابی ندره ؟

با تشکر

rubiks.kde
شنبه 11 بهمن 1393, 20:03 عصر
من هم چندی پیش از طریق یکی از دوستان با این برنامه آشنا شدم. به طور معمول روی تمام برنامه ها جواب میده جز اون دسته از برنامه هایی که مراحلی از پرداخت و چک کردن رو در سرور انجام میدن.
این مسئله به بچه های بازار هم گفته شده و اون ها هم همین نظر رو داشتن.

بازار مستنداتی برای استفاده از API (http://pardakht.cafebazaar.ir/doc/developer-api/?l=fa)وبی خودش رو داده که میشه از سرور وضعیت پرداخت رو چک کرد.
من بررسی کردم ، برنامه هایی که به این روش عمل کرده اند رو نمیشه دور زد.

doost_fu
یک شنبه 12 بهمن 1393, 10:01 صبح
پس راه حل میشه همون برنامه نویسی سمت سرور !
حالا دوستانی که توی سرور دستی دارند یه توضیح ساده بدند برا این کار ما به چی نیاز داریم
باید یه هاست ودامنه تهیه کنیم ؟پیشنهادتون چیه ؟
و به وسیله نرم افزارمون برای چک کردن از طریق همین سرورمون که میشه واسطه با بازار استفاده کنیم
بعد تمام نرم افزار ها مون میتونیم روی همین سرور چک کنیم ؟

ممنون

esideli
شنبه 18 بهمن 1393, 08:00 صبح
میگم دوستان این lucky روی برنامه های مایکت تاثیر نداره انگار درسته؟ :متفکر:

Ebrahimkh
شنبه 18 بهمن 1393, 14:15 عصر
من کد قبلی دوستمون که فرمودند توجه حل شد رو
تست کردم خوب جوا میده


لوکی هم نمی تونه بای پسش کنه :لبخند:


چه جوریه که شما میگین کار نمی کنه ؟؟!!!؟؟

esideli
شنبه 18 بهمن 1393, 14:47 عصر
من کد قبلی دوستمون که فرمودند توجه حل شد رو
تست کردم خوب جوا میده


لوکی هم نمی تونه بای پسش کنه :لبخند:


چه جوریه که شما میگین کار نمی کنه ؟؟!!!؟؟

در یه صورت جواب نمی ده.



save for restore رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:

Ebrahimkh
شنبه 18 بهمن 1393, 16:04 عصر
در چه صورت جواب نمید ه ؟؟!!؟؟

mrzzrm
پنج شنبه 30 بهمن 1393, 01:32 صبح
/--|\--//--|\--//--|\--/

poorman
پنج شنبه 30 بهمن 1393, 13:39 عصر
سلام من یه برنامه نوشتم که بدون سرور جلوی لاکی جونو میگیره
بازار منتشرش نکرد! ببینید میتونید با لاکی چپش کنید:لبخند:
مواظب باشید پرداخت واقعی انجام ندید!:لبخندساده:
http://mrz20.persiangig.com/SecurePayment.rar

سلام
من محتویات برنامه رو هنوز نخوندم که ببینم روشتون چیه، اما لاکی پچر کلا به عنوان پرداخت درون برنامه ای نمیشناسه برنامه رو
مستقیم وارد بازار میشه
من به روش ساده یک برنامه جدید نوشتم، جالب اینجاست که لاکی پچر تشخیص نمیده پرداخت درون برنامه ای رو و اونجا هم وارد بازار میشه
شاید توی ورژن جدیدش این مشکل براش پیش اومده
یا شاید داره به یه روشی میفهمه که برنامه توی نسخه تست هست!!!

poorman
پنج شنبه 30 بهمن 1393, 22:58 عصر
برنامه ای که ساختم در حالت عادی لاکی پچر اونو نمیشناسه و میره توی بازار، اما وقتی create modified APK میکنم خیلی قشنگ جواب میده

برنامه شما رو دوست عزیز mrzzrm (http://barnamenevis.org/member.php?147166-mrzzrm) طبق تست من به هیچ عنوان نتونست باز کنه
خوشحال میشم بگید دقیقا چه کاری کردید

mrzzrm
جمعه 01 اسفند 1393, 11:52 صبح
عرض شود خدمتتون برنامه ای که آپلود کردم دیتا بیس نداره و فقط عناوین و فهرست مطالب + پرداخت درون برنامه موجوده ینی فقط عملکرد پرداخت و هک نشدنش چک میشه پس نخرید چون چیزی توش نیس!
واینکه میگین لاکی شناسایی نمیکنه و مستقیم به بازار میره ، تو بعضی برنامه ها اتومات لاکی پرداخت رو تشخیص میده و پچ میکنه و اونایی که اوتومات شناسایی نمیکنه باید بری تو لاکی و یه نسخه پچ شده از برنامه بسازی و روی اون تست کنی که در این صورته که لاکی شناسایی میکنه و پچ میکنه .
کلا بد جونوریه!
اگه میخواید روش محافظت رو یاد بگیرید پ خ بدید :قلب::قلب:
من میخواستم آموزش رو با هزینه کمتر تو بازار منتشر کنم تا همه بهره مند بشن ولی بازار قبول نکرد و گفت احتمال سواستفاده کاربران هست بنابراین چاره ای جز بالا بردن هزینه نیست چون منم برا این کار وقت گذاشتم:اشتباه::چشمک:
البته خودتون هم میدونید که ارزش این محافظت زیاده و جلوی خیلی ضررها رو میگیره

badname
جمعه 01 اسفند 1393, 15:50 عصر
مثل اینکه خیلی کار رو سخت کرده این lucky ...
یه سر به این مطلب بزنید شاید بدردتون بخوره
http://stackoverflow.com/questions/13445598/lucky-patcher-how-can-i-protect-from-it (http://stackoverflow.com/questions/13445598/lucky-patcher-how-can-i-protect-from-it)

amin_nez
جمعه 01 اسفند 1393, 21:18 عصر
عرض شود خدمتتون برنامه ای که آپلود کردم دیتا بیس نداره و فقط عناوین و فهرست مطالب + پرداخت درون برنامه موجوده ینی فقط عملکرد پرداخت و هک نشدنش چک میشه پس نخرید چون چیزی توش نیس!
واینکه میگین لاکی شناسایی نمیکنه و مستقیم به بازار میره ، تو بعضی برنامه ها اتومات لاکی پرداخت رو تشخیص میده و پچ میکنه و اونایی که اوتومات شناسایی نمیکنه باید بری تو لاکی و یه نسخه پچ شده از برنامه بسازی و روی اون تست کنی که در این صورته که لاکی شناسایی میکنه و پچ میکنه .
کلا بد جونوریه!
اگه میخواید روش محافظت رو یاد بگیرید پ خ بدید :قلب::قلب:
من میخواستم آموزش رو با هزینه کمتر تو بازار منتشر کنم تا همه بهره مند بشن ولی بازار قبول نکرد و گفت احتمال سواستفاده کاربران هست بنابراین چاره ای جز بالا بردن هزینه نیست چون منم برا این کار وقت گذاشتم:اشتباه::چشمک:
البته خودتون هم میدونید که ارزش این محافظت زیاده و جلوی خیلی ضررها رو میگیره

روش جالبی رو در نظر گرفتید.ولی باز هم استفاده از API بازار هستش (خوبی اندروید اینه ک میشه راحت کل کدهارو درآورد).کاش رایگان بذاریدش.
هرچند اگه خودم فرصتش رو داشته باشم آموزش کاملش رو واسه دوستان می ذارم.

badname
جمعه 01 اسفند 1393, 21:37 عصر
دنیا دنیای Open source هست ، من اگه پیدا کردم راه حل رو تو همین تایپیک به اشتراک میزارم:لبخندساده:
هرچند هر راهی برا امن کردن باشه حتما یه راه ام برای کرک کردنش هست ، ولی باید حداقل رو رعایت کنیم که افراد معمولی نتونن کرک کنن.:چشمک:

mrzzrm
جمعه 01 اسفند 1393, 23:26 عصر
/--|\--//--|\--//--|\--/

mrzzrm
جمعه 01 اسفند 1393, 23:38 عصر
روش جالبی رو در نظر گرفتید.ولی باز هم استفاده از API بازار هستش (خوبی اندروید اینه ک میشه راحت کل کدهارو درآورد).کاش رایگان بذاریدش.
هرچند اگه خودم فرصتش رو داشته باشم آموزش کاملش رو واسه دوستان می ذارم.

خب اینو که همه میدونن آندروید اوپنه!
دیگه کلاس گذاشتن نداره که شما دیکد کردن بلدی:تشویق:
یاد اونایی افتادم که با جرقه فندک کارت تلفن شارژ می کردن و فکر می کردن شاهکار کردن !
تو هم شبیه کسی هستی که لاکی پچر رو نوشته تا زحمات بقیه رو ضایع کنه
یه نوع خود کم بینیه
فکر می کنی من بلد نبودم از کدم محافظت کنم؟
دقیقا دلیل این کارم این بود که شاسکولایی مث تو معلوم بشن!
چرا تا قبل از این حس آموزش دادن بهت دست نداده بود!
خدا شفات بده
فرصت هم بهت بده با این مشغله کاری که داری!
اگه کاری تو شرکتتون دارید منم استخدام کنید بیکارم آقای مدیر:بوس:

amin_nez
شنبه 02 اسفند 1393, 00:01 صبح
خب اینو که همه میدونن آندروید اوپنه!
دیگه کلاس گذاشتن نداره که شما دیکد کردن بلدی:تشویق:
یاد اونایی افتادم که با جرقه فندک کارت تلفن شارژ می کردن و فکر می کردن شاهکار کردن !
تو هم شبیه کسی هستی که لاکی پچر رو نوشته تا زحمات بقیه رو ضایع کنه
یه نوع خود کم بینیه
فکر می کنی من بلد نبودم از کدم محافظت کنم؟
دقیقا دلیل این کارم این بود که شاسکولایی مث تو معلوم بشن!
چرا تا قبل از این حس آموزش دادن بهت دست نداده بود!
خدا شفات بده
فرصت هم بهت بده با این مشغله کاری که داری!
اگه کاری تو شرکتتون دارید منم استخدام کنید بیکارم آقای مدیر:بوس:
نمیدونستم اینقدر با فرهنگ هستید! و نمیدونستم اینقدر هم بهتون بر میخوره.
جز اینکه بگم متاسفم برای شما! هیچ حرف دیگه ای ندارم ک بزنم.
موفق باشی

poorman
شنبه 02 اسفند 1393, 03:40 صبح
از دوست عزیزمون mrzzrm (http://barnamenevis.org/member.php?147166-mrzzrm) تشکر میکنم، برای اینکه وجودش به من انگیزه داد
اول اینکه من اعتقاد دارم اگر کسی تونسته کاری رو بکنه پس منم میتونم
دوم اینکه سطح فرهنگ ایشون انگیزه داد تا برای بقیه راه رو هموار تر کنم و یک توضیح کوچیک بدم

دوستان استفاده از API بازار به هیچ عنوان سخت نیست، شاید یکم پیچیدگی داشته باشه ولی سخت نیست
من اطلاعاتم از وب و PHP به شدت کمه و اکثر اطلاعاتم رو از آموزش خوب دوست عزیزمون harani (http://barnamenevis.org/member.php?256621-harani) گرفتم ( لینک آموزش (http://barnamenevis.org/showthread.php?457283-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&highlight=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%B3%D8 %B1%D9%88%D8%B1) )

برای اینکه از API بازار بتونید استفاده کنید نیاز به دانش حداقلی از سرور و PHP و متدهای GET و POST و همچنین JSON توی وب سرویس دارید
توی اندروید هم که AsyncTask رو بدونین و نحوه ارتباط با وب سرویس
همین آموزش رو بخونید این اطلاعات رو به دست میارید ( البته باید یکمم سرچ و جستجو بکنید )

به شخصه کار من با یک هاست رایگان و یک فایل php که کلا فکر کنم 20 خط داره درست شد

مستندات بازار خیلی گنگ و خلاصه توضیح داده اما میشه پیاده سازیش کرد

مستندات بازار رو تا جایی که refresh_code بگیرید به صورت دستی ادامه بدید، از اینجا به بعدش رو با سرور گزارش بگیرید
( لینک مستندات (http://pardakht.cafebazaar.ir/doc/developer-api/?l=fa) )

متاسفانه چون اطلاعاتم از وب کمه نمیتونم خوب توضیح بدم یا آموزش کامل و جامعی برای همه بذارم، اما این کد PHP منه که باهاش از بازار گزارش خرید رو میگیرم


<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'کدی که از بازار گرفتین - رفرش کد';

$url = 'http://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'آیدی کلاینت', 'client_secret' => 'رمز کلاینت', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = $jsonResponse['access_token'];

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>

به این فایل سه تا پارامتر باید بفرستید، یکی اسم پکیج، یکی آیدی محصول و دیگری توکنی که بعد از خرید به برنامه داده میشه همون purchase.getOrderId

داخل فایل باید refresh code رو که از بازار به صورت دستی گرفتید بذارید
آیدی کلاینت و رمزش رو هم وارد کنید

در جواب به شما یک رشته JSON داده میشه، اگر خالی بود یعنی پرداخت درست نیست، اگر که شامل استاتوس و سایر مشخصات خرید بود یعنی درسته

پاسخ درست به شکل زیره
{"consumptionState": 1, "purchaseState": 0, "kind": "androidpublisher#inappPurchase", "developerPayload": "hojjat", "purchaseTime": 1424267267085}

پاسخ غلط هم فقط {} فرستاده میشه

در صورتی که access code اشتباه باشه هم ارور 404 میگیرید

دوستمون به جای اینکه بیان از سرور استفاده کنن، دقیقا همین کد PHP رو توی اندروید نوشتن
ولی خب امنیتش زیاد تضمینی نیست، چون شما باید همه اطلاعات رو قرار بدید توی برنامه

دوست داشتم میتونستم کاملتر توضیح بدم، اما دانشم در این حد نیست متاسفانه

mrzzrm
شنبه 02 اسفند 1393, 11:53 صبح
من از همه معذرت می خوام که یه راه حل برای این مشکل پیشنهاد دادم و میخواستم از این راه نون دربیارم!
خب اینو من خودمم می دونستم که وقتی برنامه رو در دسترس عموم میذاری وبا یه ایده بدرد بخور! و بدون محافظ! بعضیا وسوسه میشن و فکر میکنن ایدشونو طرفی که برنامه رو ساخته دزدیده! و همه چی برای اونه و نباید هیچ محدودیتی در استفاده از زحمت دیگران داشت وتازه طلبکار هم باید باشی که چرا رایگان منتشرش نکردی!
ولی این فرهنگ استفاده رایگان از زحمات دیگران خیلی بده و صنعت نرم افزاری ایران رو همین کار زمین زده!
اینطوری پیش بریم به هیچ جایی نمیرسیم عزیزان.
و با قفل گذاشتن و این چیزا حل نمیشه مربوط به فرهنگ بدیه که برای ما جا انداختان
حداقل برای برنامه هایی که ایرانیا می نویسن ارزش قائل باشیم و حمایتش کنیم تا رشد کنه و اینقدر کپی نکنیم
تا کی باید یکی دیگه تولید کنه ما کپی کنیم؟ و فکر کنیم که کار شگفتی کردیم
ما با این کار دیگه نمیریم سراغ اینکه خودمون بسازیم و ابداع کنیم و دیگری ابداع میکنه و ما کپی! و این داستان ادامه دارد...
الان شاید بعضیا به این حرفا بخندن ولی کسی می خنده که به آینده کشورش اهمیتی نمیده و مثل انگل خون مملکتشو میخوره و تازه طلبکار هم هست
شخصا خیلی از این موجودات انگل انسان نما دیدم که فقط فکر منفعت خودشونن
یاد خواهش مهران مدیری افتادم که برای کپی نکردن سریالش اومد خواهش و التماس کرد و دریغ از یه جو انصاف برای بعضیا
من از همین تریبون از شما خداحافظی می کنم و در افق محو میشم!!!

poorman
شنبه 02 اسفند 1393, 12:21 عصر
من از همه معذرت می خوام که یه راه حل برای این مشکل پیشنهاد دادم!
خب اینو من خودمم می دونستم که وقتی برنامه رو در دسترس عموم میذاری وبا یه ایده بدرد بخور! و بدون محافظ! بعضیا وسوسه میشن و فکر میکنن ایدشونو طرفی که برنامه رو ساخته دزدیده! و همه چی برای اونه و نباید هیچ محدودیتی در استفاده از زحمت دیگران داشت وتازه طلبکار هم باید باشی که چرا رایگان منتشرش نکردی!
ولی این فرهنگ استفاده رایگان از زحمات دیگران خیلی بده و صنعت نرم افزاری ایران رو همین کار زمین زده!
اینطوری پیش بریم به هیچ جایی نمیرسیم عزیزان.
و با قفل گذاشتن و این چیزا حل نمیشه مربوط به فرهنگ بدیه که برای ما جا انداختان
حداقل برای برنامه هایی که ایرانیا می نویسن ارزش قائل باشیم و حمایتش کنیم تا رشد کنه و اینقدر کپی نکنیم
تا کی باید یکی دیگه تولید کنه ما کپی کنیم؟ و فکر کنیم که کار شگفتی کردیم
ما با این کار دیگه نمیریم سراغ اینکه خودمون بسازیم و ابداع کنیم و دیگری ابداع میکنه و ما کپی! و این داستان ادامه دارد...
الان شاید بعضیا به این حرفا بخندن ولی کسی می خنده که به آینده کشورش اهمیتی نمیده و مثل انگل خون مملکتشو میخوره و تازه طلبکار هم هست
شخصا خیلی از این موجودات انگل انسان نما دیدم که فقط فکر منفعت خودشونن
یاد خواهش مهران مدیری افتادم که برای کپی نکردن سریالش اومد خواهش و التماس کرد و دریغ از یه جو انصاف برای بعضیا
من از همین تریبون از شما خداحافظی می کنم و در افق محو میشم!!!

دوست عزیز دوباره از شما تشکر میکنم
حرفتون راجع خودکفایی و حمایت از خودمون کاملا درسته
اما چند نکته رو دقت کنید:
اول اینکه کاری که شما کردید ایده جدید نبود، فقط پیاده سازی چیزی بود که هست
دوم اینکه بنده از دسترنج شما استفاده ای نکردم به هیچ عنوان و فقط بعد چندبار اجرای برنامتون و چندتا تست متوجه شدم کار جدیدی انجام ندادید
سوم اینکه شما کاملا حق داری هر اطلاعاتی که داری رو به دیگران بفروشی، شاید خود منم اگه با یک روش لوکال لاکی پچر رو متوقف میکردم به این راحتی اطلاعاتم رو در اختیار بقیه قرار نمیدادم. اما استفاده از API بازار کاریه که با یک روز وقت گذاشتن انجام میشه.
مشکل ما اینه که از اسم ها و روش های جدید میترسیم.
چهارم هم یک نصیحت از برادر کوچکترت بشنو، سخاوت چیز خوبیه. من دوست دارم همه بتونن برنامشون رو در مقابل لاکی پچر محافظت کنن، این یعنی حمایت از برنامه و برنامه نویس ایرانی و این یعنی حمایت از خودم.
وقتی این همه حجم برنامه های رایگان و کرک شده زیاد بشه مسلما کاربران دیگه به برنامه پولی من نگاه نمیکنن، دیگه دلشون نمیاد پول بدن. این روی کار منم تاثیر میذاره پس

داستان تله موش رو شاید شنیده باشید، خیلی جالبه :لبخندساده:
نباید حکایت ما این بشه


موش ازشكاف ديوار سرك كشيد تا ببيند اين همه سر و صدا براي چيست. مرد مزرعه دار تازه از شهر رسيده بود و بسته‌اي با خود آورده بود و زنش با خوشحالي مشغول باز كردن بسته بود .موش لب‌هايش را ليسيد و با خود گفت :«كاش يك غذاي حسابي باشد. اما همين كه بسته را باز كردند، از ترس تمام بدنش به لرزه افتاد چون صاحب مزرعه يك تله موش خريده بود. موش با سرعت به مزرعه برگشت تا اين خبر جديد را به همه حيوانات بدهد. او به هركسي كه مي‌رسيد، مي گفت: «توي مزرعه يك تله موش آورد‌ه‌اند، صاحب مزرعه يك تله موش خريده است . . .». مرغ با شنيدن اين خبر بال هايش را تكان داد و گفت: « آقاي موش، برايت متأسفم. از اين به بعد خيلي بايد مواظب خودت باشي، به هر حال من كاري به تله موش ندارم، تله موش هم ربطي به من ندارد». ميش وقتي خبر تله موش را شنيد ، صداي بلند سر داد و گفت: «آقاي موش من فقط مي‌توانم دعايت كنم كه توي تله نيفتي، چون خودت خوب مي‌داني كه تله موش به من ربطي ندارد. مطمئن باش كه دعاي من پشت و پناه تو خواهد بود. موش كه از حيوانات مزرعه انتظار همدردي داشت، به سراغ گاو رفت. اما گاو هم با شنيدن خبر، سري تكان داد و گفت: « من كه تا حالا نديده‌ام يك گاوي توي تله موش بيفتد!» او اين را گفت و زير لب خنده‌اي كرد و دوباره مشغول چريدن شد. سرانجام، موش نااميد از همه جا به سوراخ خودش برگشت و در اين فكر بود كه اگر روزي در تله موش بيفتد، چه مي شود؟

در نيمه‌هاي همان شب، صداي شديد به هم خوردن چيزي در خانه پيچيد. زن مزرعه دار بلافاصله بلند شد و به سوي انباري رفت تا موش را كه در تله افتاده بود، ببيند. او در تاريكي متوجه نشد كه آنچه در تله موش تقلا مي كرده، موش نبود بلكه مار خطرناكي بود كه دمش در تله گير كرده بود. همين كه زن به تله موش نزديك شد، مار پايش را نيش زد و صداي جيغ و فريادش به هوا بلند شد. صاحب مزرعه با شنيدن صداي جيغ از خواب پريد و به طرف صدا رفت. وقتي زنش را در اين حال ديد او را فوراً به بيمارستان رساند. بعد از چند روز، حال وي بهتر شد. اما روزي كه به خانه برگشت، هنوز تب داشت. زن همسايه كه به عيادت بيمار آمده بود، گفت: براي تقويت بيمار و قطع شدن تب او هيچ غذايي مثل سوپ مرغ نيست. مرد مزرعه دار كه زنش را خيلي دوست داشت فوراً به سراغ مرغ رفت و ساعتي بعد بوي خوش سوپ مرغ در خانه پيچيد. اما هرچه صبر كردند، تب بيمار قطع نشد. بستگان او شب و روز به خانه آنها رفت و آمد مي‌كردند تا جوياي سلامتي او شوند. براي همين مرد مزرعه دار مجبور شد، ميش را هم قرباني كند تا با گوشت آن براي ميهمانان عزيزش غذا بپزد .روزها مي‌گذشت و حال زن مزرعه دار هر روز بدتر مي شد تا اين كه يك روز صبح، در حالي كه از درد به خود مي پيچيد از دنيا رفت و خبر مردن او خيلي زود در روستا پيچيد. افراد زيادي در مراسم خاكسپاري او شركت كردند. بنابراين، مرد مزرعه دار مجبور شد از گاوش هم بگذرد و غذاي مفصلي براي ميهمانان دور و نزديك تدارك ببيند .حالا، موش به تنهايي در مزرعه مي گرديد و به حيوانان زبان بسته‌اي فكر مي كرد كه كاري به كار تله موش نداشتند!

golbafan
شنبه 02 اسفند 1393, 12:43 عصر
داستان تله موش رو شاید شنیده باشید، خیلی جالبه :لبخندساده:
نباید حکایت ما این بشه

بسیار آموزنده بود
تشکر

راستی من گوشیم ویندوز فونه و تاحالا این مسایل در ویندوز فون اتفاق نیافتاده
فکر کنم کلا امنیتش بیشتر از آندرویده

mrzzrm
شنبه 02 اسفند 1393, 12:50 عصر
دوست عزیز دوباره از شما تشکر میکنم
حرفتون راجع خودکفایی و حمایت از خودمون کاملا درسته
اما چند نکته رو دقت کنید:
اول اینکه کاری که شما کردید ایده جدید نبود، فقط پیاده سازی چیزی بود که هست

مث اینه که بگی من میتونم سیستم عامل بنویسم چون توی کتاب سیستم عامل همه چیز سیستم عامل توضیح داده شده ! پس من هم میتونم پیادش کنم ولی کو سیستم عاملت؟


دوم اینکه بنده از دسترنج شما استفاده ای نکردم به هیچ عنوان و فقط بعد چندبار اجرای برنامتون و چندتا تست متوجه شدم کار جدیدی انجام ندادید

خب شما هم می تونیستید این کار غیر جدید رو قبل از من به اشتراک بذارید منم روی حرفم با شما نبود !

سوم اینکه شما کاملا حق داری هر اطلاعاتی که داری رو به دیگران بفروشی، شاید خود منم اگه با یک روش لوکال لاکی پچر رو متوقف میکردم به این راحتی اطلاعاتم رو در اختیار بقیه قرار نمیدادم. اما استفاده از API بازار کاریه که با یک روز وقت گذاشتن انجام میشه.


من کتاب سیستم عامل رو سه روز خوندم و قبول شدم!!!


چهارم هم یک نصیحت از برادر کوچکترت بشنو، سخاوت چیز خوبیه. من دوست دارم همه بتونن برنامشون رو در مقابل لاکی پچر محافظت کنن، این یعنی حمایت از برنامه و برنامه نویس ایرانی و این یعنی حمایت از خودم.
وقتی این همه حجم برنامه های رایگان و کرک شده زیاد بشه مسلما کاربران دیگه به برنامه پولی من نگاه نمیکنن، دیگه دلشون نمیاد پول بدن. این روی کار منم تاثیر میذاره پس


این حرف درسته ولی قرار نیست که وقتی من یه چیزی نیاز دارم بقیه بیان زحمت بکشن و رایگان در اختیار من بذارن و من هم بگم که وظیفه شونه چون به نفع خودشم هست !
یعنی اینکه که همه باید رایگان برای من کار کنن ولی من خودم نخوام زحمتی که کشیدم رو رایگان در اختیار دیگران بذارم !
این خودخواهیه که از دیگران انتظار سخاوت داشته باشی و خودت سخی نباشی ! در این مورد هم روی سخنم با poorman نیست کلا گفتم

mrzzrm
شنبه 02 اسفند 1393, 13:11 عصر
این آخرین مسئله ای نیست که حل میشه و مسئله های دیگه ای هم هست که توسط غیر از خودمون حل میشه و این فرهنگ خودخواهانه باعث میشه کسی که مسئله رو حل کرده دیگه راه حل رو رو نکنه و شما بمونی و مسئله و استرس حل مسئله!
من جای شما بودم توی پیام خصوصی برای خودم مینوشتم:
"آقای mrzzrm من میتونم برنامه تون رو رسورس کنم و روشتونو بفهمم-تهدید!- ولی چون برای شما احترام قائلم و هزینه هم زیاد نمیتونم بکنم چون دستم تنگه!


روش جالبی رو در نظر گرفتید.ولی باز هم استفاده از API بازار هستش (خوبی اندروید اینه ک میشه راحت کل کدهارو درآورد).کاش رایگان بذاریدش.
هرچند اگه خودم فرصتش رو داشته باشم آموزش کاملش رو واسه دوستان می ذارم.

-البته اونایی که مشغله کاری دارن و فرصت ندارن معلومه که دستشون تنگ نیست-

لطفا خودتون روشتون رو برای من بفرستید."

با این چند جمله یک حس غروری در من ایجاد میشه که ببین چه آدمای با عزت نفسی داریم تو ایران ! و من هم با کمال میل کل آموزش رو در اختیارش میذاشتم

کلا بلد نیستیم این کا را رو و دوست داریم همه رو دور بزنیم مثل رانندگی تو خیابون!!!

doost_fu
شنبه 02 اسفند 1393, 22:28 عصر
ای بابا اینجام که دعوا شده !!!
من یه سوال فنی داشتم مثلا ما داخل برنامه یه boolean داریم حکم کلید کاربر ویژه داره یعنی با پرداخت درون برنامه اونو true میکنیم و وهر جا شرط true بودن برا کاربر گذاشته بودیم الان کاربر اجازه دسترسی داره
حالا این لاکی پچر چیکار میکنه ؟ مقدار تبدیل به true میکنه ؟
خب اگر ما گهگداری داخل برنامه به بازار وصل بشیم و این مقدار چک کنیم ببینیم داخل بازار خرید تایید میشه یا نه و مقدار تغییر بدیم میشه برنامه رو از هک در اورد ؟ اصلا بعد از استفاده از لاکی پچر دیگه برناممون میتونه خودش از بارار چک کنه ؟
ممنون

poorman
شنبه 02 اسفند 1393, 23:58 عصر
ای بابا اینجام که دعوا شده !!!
من یه سوال فنی داشتم مثلا ما داخل برنامه یه boolean داریم حکم کلید کاربر ویژه داره یعنی با پرداخت درون برنامه اونو true میکنیم و وهر جا شرط true بودن برا کاربر گذاشته بودیم الان کاربر اجازه دسترسی داره
حالا این لاکی پچر چیکار میکنه ؟ مقدار تبدیل به true میکنه ؟
خب اگر ما گهگداری داخل برنامه به بازار وصل بشیم و این مقدار چک کنیم ببینیم داخل بازار خرید تایید میشه یا نه و مقدار تغییر بدیم میشه برنامه رو از هک در اورد ؟ اصلا بعد از استفاده از لاکی پچر دیگه برناممون میتونه خودش از بارار چک کنه ؟
ممنون

وقتی برنامتون با لاکی پچر کرک بشه دیگه اصلا به بازار وصل نمیشه و اگر به صورت لوکال چک کنید همیشه گزارش درست برمیگردونه

فعلا تنها راه چک کردن از طریق وب سرویس های بازاره

badname
یک شنبه 03 اسفند 1393, 09:20 صبح
عالی بود. :تشویق:
فقط یه سوالی ، پس از پرداخت این رو چک کنیم که درست انجام شده ، بعد حالت رو ذخیره کنیم . یا اینکه هر سری چک کنیم :متفکر:

poorman
یک شنبه 03 اسفند 1393, 11:17 صبح
عالی بود. :تشویق:
فقط یه سوالی ، پس از پرداخت این رو چک کنیم که درست انجام شده ، بعد حالت رو ذخیره کنیم . یا اینکه هر سری چک کنیم :متفکر:

من به شخصه حالت رو ذخیره میکنم

اول اینکه کاربرای ما همیشه آنلاین نیستن و این باعث اذیت شدن کاربر میشه
و دوم اینکه اگر یک هکر بخواد برنامه رو هک کنه این کار براش خیلی سادست، مهم اینه که کاربرای عادی نتونن از برنامه رایگان استفاده کنن

وگرنه شما هرچی هم بخوای چک کنی، اگر محتوای برنامه دیتابیس باشه یا لوکال باشه بازم میشه دورش زد
مگر اینکه محتوا توی سرور باشه، اونجا چون کاربر همیشه آنلاینه خوب میشه چک کرد که آیا دسترسی داره یا نه

dasssnj
یک شنبه 03 اسفند 1393, 13:23 عصر
من به شخصه حالت رو ذخیره میکنم

اول اینکه کاربرای ما همیشه آنلاین نیستن و این باعث اذیت شدن کاربر میشه
و دوم اینکه اگر یک هکر بخواد برنامه رو هک کنه این کار براش خیلی سادست، مهم اینه که کاربرای عادی نتونن از برنامه رایگان استفاده کنن

وگرنه شما هرچی هم بخوای چک کنی، اگر محتوای برنامه دیتابیس باشه یا لوکال باشه بازم میشه دورش زد
مگر اینکه محتوا توی سرور باشه، اونجا چون کاربر همیشه آنلاینه خوب میشه چک کرد که آیا دسترسی داره یا نه

یا میشه قسمت های مربوط به چک کردن از طریق نت را از برنامه حذف کرد ، همون طور که میشه توی کرک کردن کد های اندروید بر خلاف PC هر کدی اضافه کرد . :قهقهه:
حذف کردن چک کردن لوکال هم که مثل آب خوردنه ، دور زدنش که دیگه خیلی خیلی راحت تر .

کلا امنیت در اندروید کار خیلی سختیه ، اما امکان پذیره .

متاسفانه خیلی ها خیلی چیزا بلدن و خیلی هاشون خیلی از دانششون را به اشتراک نمی زارن ! مثل خودم یا خیلی از افراد این انجمن یا افراد دیگر !!!!

doost_fu
یک شنبه 03 اسفند 1393, 15:45 عصر
وقتی برنامتون با لاکی پچر کرک بشه دیگه اصلا به بازار وصل نمیشه و اگر به صورت لوکال چک کنید همیشه گزارش درست برمیگردونه

فعلا تنها راه چک کردن از طریق وب سرویس های بازاره

راستش من مبتدی یه خورده گیج شدم
لاکی پچر کدهای پرداخت بازارو پیدا میکنه و مقدار دهی میکنه و برنامه فعال میشه !
اگه برنامه بعد از کرک شدن ازطریق لاکی پچر دیگه نمی تونه به بازار وصل بشه یعنی لاکی پچر بهش اجازه این کارو نمیده خب چه فرقی میکنه که ما چجوری اطلاعاتمون برا بازار و یا سرو خودمون و ... بفرستیم و بگیرم و ... از این حرفا !
حالا اگه کدها به حالت خاصی در بیان که لاکی پچر نتونه بفهمه کدهای بازار و پرداخت و ... کجاست و چجوریه ، مشکل حل نمیشه ؟ (یه جورایی obfuscate کردن )

اگه اشتباه میکنم یه خورده شفاف سازی کنید
ممنون

poorman
دوشنبه 04 اسفند 1393, 00:06 صبح
متاسفانه خیلی ها خیلی چیزا بلدن و خیلی هاشون خیلی از دانششون را به اشتراک نمی زارن ! مثل خودم یا خیلی از افراد این انجمن یا افراد دیگر !!!!

آخه بعضی از روش های امنیتی، امنیتشون به سکرت بودنشون هست
نمیشه توی این قضیه ایرادی گرفت
وقتی بحث پابلیک بشه خیلی راحت میشه دورش زد

poorman
دوشنبه 04 اسفند 1393, 00:11 صبح
راستش من مبتدی یه خورده گیج شدم
لاکی پچر کدهای پرداخت بازارو پیدا میکنه و مقدار دهی میکنه و برنامه فعال میشه !
اگه برنامه بعد از کرک شدن ازطریق لاکی پچر دیگه نمی تونه به بازار وصل بشه یعنی لاکی پچر بهش اجازه این کارو نمیده خب چه فرقی میکنه که ما چجوری اطلاعاتمون برا بازار و یا سرو خودمون و ... بفرستیم و بگیرم و ... از این حرفا !
حالا اگه کدها به حالت خاصی در بیان که لاکی پچر نتونه بفهمه کدهای بازار و پرداخت و ... کجاست و چجوریه ، مشکل حل نمیشه ؟ (یه جورایی obfuscate کردن )

اگه اشتباه میکنم یه خورده شفاف سازی کنید
ممنون

تا جایی که بنده میدونم، لاکی پچر کلا به intent پرداخت درون برنامه ای گوش میکنه
یعنی هر وقت درخواست میره به بازار یا گوگل پلی، این خودشو میندازه وسط

طوری که ما با استفاده از API توسعه دهنده از بازار گزارش میگیریم، دیگه لاکی پچر نمیتونه بفهمه
چون این کار از طریق وب سرویس انجام میشه

کدها رو به همون دلیلی که بالا گفتم نمیشه به حالت خاصی درآورد، چون لاکی پچر با کدهای ما عملا کاری نداره، فقط میاد نقش بازار رو ایفا میکنه

ehsanh22
دوشنبه 04 اسفند 1393, 01:12 صبح
poorman جان میشه بگی چجوری باید از api بازار استفاده کرد ؟ من یه برنامه دارم پرداخت درون برنامه ای که خودت کمکم کردی برا تکمیلش . میشه بگی چیکار بکنم :قلب:

poorman
دوشنبه 04 اسفند 1393, 02:29 صبح
poorman جان میشه بگی چجوری باید از api بازار استفاده کرد ؟ من یه برنامه دارم پرداخت درون برنامه ای که خودت کمکم کردی برا تکمیلش . میشه بگی چیکار بکنم :قلب:

سلام

من توی صفحه قبل یک سری توضیحات برای پیاده سازیش دادم، اونا رو بخونید یکم تلاش کنید میتونید استفاده کنید ازش

http://barnamenevis.org/showthread.php?482457-%D9%81%D8%B1%D8%A7%D8%B1-%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA-Lucky-Patcher&p=2177474&viewfull=1#post2177474

dasssnj
سه شنبه 05 اسفند 1393, 14:04 عصر
آخه بعضی از روش های امنیتی، امنیتشون به سکرت بودنشون هست
نمیشه توی این قضیه ایرادی گرفت
وقتی بحث پابلیک بشه خیلی راحت میشه دورش زد

بله . باهات موافقم . به نظرم هر کس باید بشینه و فکر کنه و روش مربوط به امنیت را خودش با تحقیق و تفکر و خلاقیت پیاده سازی کنه . من که تا الان کلی روش امتحان کردم و راه های زیادی را برای امنیت کد نویسی کردم و مطمئنم که در آینده هم برای پیدا کردن امنیت بیشتر ، روش های خیلی بیشتری را تست خواهم کرد .

warbler
جمعه 08 اسفند 1393, 12:32 عصر
این روش هم جواب نمیده وقتی
save for restore رو فعال کنید توی لاکی اونم جوواب نمیده:متفکر:

من هرچی گشتم save for restore رو پیدا نکردم دقیقا کجاست؟

ویرایش :
الان پیداش کردم .
من طبق روشی که amin_nez گفته بود یه فیلد به نام پرمیوم ساختم به صورت زیر :
premium = inventory.haspur.(sku_premium);


من تقریبا با تمام ورژن های lucky patcher تست کردم save for restore هم امتحان کردم رو چند تا گوشی . یه پرداخت الکی انجام میده ولی قسمت های پرمیوم برنامه (که تو برنامه من button لینک دانلوده) فعال نمیشه . تو گوشی های روت شده و نشده هم تست کردم . حالا نمیدونم کد شما چطوری بوده که جواب نداده

golbafan
جمعه 08 اسفند 1393, 19:51 عصر
بله . باهات موافقم . به نظرم هر کس باید بشینه و فکر کنه و روش مربوط به امنیت را خودش با تحقیق و تفکر و خلاقیت پیاده سازی کنه . من که تا الان کلی روش امتحان کردم و راه های زیادی را برای امنیت کد نویسی کردم و مطمئنم که در آینده هم برای پیدا کردن امنیت بیشتر ، روش های خیلی بیشتری را تست خواهم کرد .

آفرین آفرین... براش دست بزنین بچه ها :تشویق:

dasssnj
جمعه 08 اسفند 1393, 21:10 عصر
آفرین آفرین... براش دست بزنین بچه ها :تشویق:

من مسئله را با مدیران کل سایت در میون گذاشتم . همنچنین با مدیر محترم این بخش هم مشورت می کنم .

( هر جور بحثی هست توی پیام خصوصی یا یه تاپیک جدا مطرح بشه !!!!!!!! )

golbafan
جمعه 08 اسفند 1393, 22:03 عصر
من مسئله را با مدیران کل سایت در میون گذاشتم . همنچنین با مدیر محترم این بخش هم مشورت می کنم .

( هر جور بحثی هست توی پیام خصوصی یا یه تاپیک جدا مطرح بشه !!!!!!!! )

دوست عزیز چرا موضوع رو میپیچونید؟؟
اینجا تاپیک گزاشتن که هر کسی میتونه برای فرار از دست اون نرم افزار کمک کنه
اونوقت شما میای میگی من بلدم من بلدم اما به کسی نمیگم...

خب اگر میخواهید نگید اشکال نداره اما چرا کلاس میزارید؟ چرا :متفکر:

یک نصیحت برادرانه: انسان هرچی بیشتر بدونه متوجه میشه کمتر میدونه و هرچه کمتر بدونه فکر میکنه بیشتر میدونه

poorman
شنبه 09 اسفند 1393, 02:16 صبح
دوست عزیز چرا موضوع رو میپیچونید؟؟
اینجا تاپیک گزاشتن که هر کسی میتونه برای فرار از دست اون نرم افزار کمک کنه
اونوقت شما میای میگی من بلدم من بلدم اما به کسی نمیگم...

خب اگر میخواهید نگید اشکال نداره اما چرا کلاس میزارید؟ چرا :متفکر:

یک نصیحت برادرانه: انسان هرچی بیشتر بدونه متوجه میشه کمتر میدونه و هرچه کمتر بدونه فکر میکنه بیشتر میدونه

دوست عزیز آقای گل بافان، بنده فکر نمیکنم سن شما کم باشه
اما متاسفانه پست های اخیر شما بویی از بزرگسالی نداره

اینجا همه برای کسب علم و تجربه میایم، جایی برای این بحث های حاشیه ای نیست
دانش شما زیاده درست، اما لطفا به دنبال اثباتش با بحث های بچگونه نباشید

دانشتون رو به اشتراک بذارید، بقیه درک دارن متوجه سطح دانش شما میشن

بنده واقعا عذرخواهم از گذاشتن این پست، ولی اخیرا نظم انجمن خیلی بهم ریخته
تشکر از اینکه از حرف من برداشت بدی نمیکنید

dasssnj
شنبه 09 اسفند 1393, 05:11 صبح
دوست عزیز چرا موضوع رو میپیچونید؟؟
اینجا تاپیک گزاشتن که هر کسی میتونه برای فرار از دست اون نرم افزار کمک کنه
اونوقت شما میای میگی من بلدم من بلدم اما به کسی نمیگم...

خب اگر میخواهید نگید اشکال نداره اما چرا کلاس میزارید؟ چرا :متفکر:

یک نصیحت برادرانه: انسان هرچی بیشتر بدونه متوجه میشه کمتر میدونه و هرچه کمتر بدونه فکر میکنه بیشتر میدونه

من کی گفتم بلدم ؟ من تا قبل این تاپیک نمی دونستم اصلا با لاکی پچر میشه پرداخت بازار را دور زد !
این پستی هم که گذاشتم مربوط به لاکی پچر نبوده . مگه امنیت فقط در زمینه ی لاکی پچره ؟؟؟ :متفکر:من گفتم "مثل خودم و خیلی افراد دیگر" فقط اگه جمله ی قبل را بخونید مشخصه که مربوط به امنیته نه فقط لاکی پچر و دلیلش را هم توی تاپیک قبلی و همینجا گفتم ::: بهتره هر کس خودش بره سراغ امنیت و راه روش را پیدا کنه . چیزی که من برای کسی دیکته کنم نمیشه بهش گفت امنیت !!

اصلا به فرض که من می دونستم و نمی گفتم . این چه طرز رفتاره ؟ چرا توی تاپیک پربازدید به من بی احترامی می کنید ؟ دیگه حدی داره !

Rezaguitar
شنبه 09 اسفند 1393, 17:22 عصر
اصلا به فرض که من می دونستم و نمی گفتم . این چه طرز رفتاره ؟ چرا توی تاپیک پربازدید به من بی احترامی می کنید ؟ دیگه حدی داره !
شما توجه نکن,بهترین رفتار با آدمهای مشکل دار نادیده گرفتنشون هست!
ببینید چقدر از درون عذاب میکشن که پای کامپیوتر و اینترنت هم نمیتونن خودشون رو کنترل کنن و تو همه تاپیکها اثری از عقده ها به جا میذارن!

abbasi.naft
یک شنبه 10 اسفند 1393, 13:11 عصر
استاد گرانقدر ، جناب dasssnj (http://barnamenevis.org/member.php?262850-dasssnj)
عزیز:قلب:
من بارها و بارها از مطالب ارزشمند شما استفاده بردم.
این حق طبیعی هر انسانی هست که علمش را در پیش خودش محفوظ نگاه دارد.
از اینکه بدون هیچگونه چشمداشتی ، علمتون رو در اینجا به اشتراک میگذارید و به سوالات افرادی که نمیشناسیدشون پاسخ میدهید ، از شما کمال سپاسگذاری را دارم و به شخصه از اینکه این رفتار ناپسند در حق شما صورت گرفته ناراحت هستم.
ولی مطمئن باشید در قبال هر یک نفری که با شما ناپسند برخورد میکنند در مقابل صدها،بلکه هزاران نفر دیگه هستند که گره کارشون با مطالب ارزشمند شما و دیگر اساتید باز میشه و شما رو دعا میکنند.
خیلی خیلی ممنون استاد ، همچنان منتظر پستهای ارزشمند شما هستیم.

esideli
یک شنبه 10 اسفند 1393, 13:36 عصر
سلام،

دوستان بهتره از فروم php یاد بگیریم اینجا (http://barnamenevis.org/forumdisplay.php?207-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AF%D8%B1-PHP) کلی بحث امنیت و آموزش هست ولی متاسفانه اینجا نه و بعضیا مخالفن. هر کس به دلخواه خودش میاد نظر میده و کسی مجبور نیست بیاد آموزش بده. وقتی این بحث ها رو میبینم واقعا به فروم php حسرت می خورم. توی فروم php اینقدر اطلاعات درباره امنیت هست که بخوای بخونی نمی دونی از کجا شروع کنی و این قدر در مورد امنیت بحث شده که حتی هکر با دونستن اونها نمی تونه سایت رو هک کنه. ولی فروم آندروید چی؟ هیچی. از ترس هک شدن برنامه طرف حرفی نمی زنه تا روشش لو نره بجای اینکه با نقد دیگران روشِش رو کامل کنه.

golbafan
یک شنبه 10 اسفند 1393, 13:44 عصر
شما توجه نکن,بهترین رفتار با آدمهای مشکل دار نادیده گرفتنشون هست!
ببینید چقدر از درون عذاب میکشن که پای کامپیوتر و اینترنت هم نمیتونن خودشون رو کنترل کنن و تو همه تاپیکها اثری از عقده ها به جا میذارن!

:-$ :-$ :-$

dasssnj
یک شنبه 10 اسفند 1393, 15:32 عصر
سلام،

دوستان بهتره از فروم php یاد بگیریم اینجا (http://barnamenevis.org/forumdisplay.php?207-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AF%D8%B1-PHP) کلی بحث امنیت و آموزش هست ولی متاسفانه اینجا نه و بعضیا مخالفن. هر کس به دلخواه خودش میاد نظر میده و کسی مجبور نیست بیاد آموزش بده. وقتی این بحث ها رو میبینم واقعا به فروم php حسرت می خورم. توی فروم php اینقدر اطلاعات درباره امنیت هست که بخوای بخونی نمی دونی از کجا شروع کنی و این قدر در مورد امنیت بحث شده که حتی هکر با دونستن اونها نمی تونه سایت رو هک کنه. ولی فروم آندروید چی؟ هیچی. از ترس هک شدن برنامه طرف حرفی نمی زنه تا روشش لو نره بجای اینکه با نقد دیگران روشِش رو کامل کنه.

میگیم بحثو ادامه ندید باز ....

php سمت سروره و کسی بهش دسترسی نداره . اندروید برنامه نویسی لوکاله !!! این دو اصلا هیچ شباهت یا ربطی به هم ندارن که بخوان مقایسه بشن .

شما که تاپیک مورد علاقه تون داره داره ادامه پیدا می کنه . دیگه کسی مخالفش نیست . برای چی اینجا پست می زاری ؟ خب برو همونجا آموزشتو ببین و برنامه ات را امن کن دیگه ... .

خوبه پستی که اون بالا هست نشون میده از چه کسی می خواهید امنیت یاد بگیرید . من اگه همچین آدمی مهمترین علوم جهان را هم داشت حاضر نمیشدم چیزی یاد بگیرم

esideli
یک شنبه 10 اسفند 1393, 16:42 عصر
میگیم بحثو ادامه ندید باز ....

php سمت سروره و کسی بهش دسترسی نداره . اندروید برنامه نویسی لوکاله !!! این دو اصلا هیچ شباهت یا ربطی به هم ندارن که بخوان مقایسه بشن .

شما که تاپیک مورد علاقه تون داره داره ادامه پیدا می کنه . دیگه کسی مخالفش نیست . برای چی اینجا پست می زاری ؟ خب برو همونجا آموزشتو ببین و برنامه ات را امن کن دیگه ... .

خوبه پستی که اون بالا هست نشون میده از چه کسی می خواهید امنیت یاد بگیرید . من اگه همچین آدمی مهمترین علوم جهان را هم داشت حاضر نمیشدم چیزی یاد بگیرم

اگه منظورم رو بد رسوندم عضر می خوام. در ضمن من دنبال آموزش کسی یا دفاع از شخص یا پست خاصی نیستم. بله php سمت سرور هست آندروید نه این که واضحه یعنی چون آندروید سمت سرور نیست پس کسی نباید بحث امنیت کنه؟ خب این دلیل میشه ما از اخلاق خوب php کارها یاد نگیریم و درمورد امنیت بحث نکنیم یا تا کسی از امنیت صحبت کرد بزنیم تو ذوقش؟ حتما ماباید خودمون اشتباه کنیم که یاد بگیریم یا باید از تجربه دیگران هم استفاده کنیم؟ مثل اینکه شما هدف تالار رو متوجه نشدین. توی استک آور فلو هم برنامه نویسا بحث امنیت نمی کنن؟

در ضمن این طرز صحبت کردنتون اصلا جالب نیست. برادرانه میگم غرور رو کنار بزارید.

dasssnj
یک شنبه 10 اسفند 1393, 17:09 عصر
اگه منظورم رو بد رسوندم عضر می خوام. در ضمن من دنبال آموزش کسی یا دفاع از شخص یا پست خاصی نیستم. بله php سمت سرور هست آندروید نه این که واضحه یعنی چون آندروید سمت سرور نیست پس کسی نباید بحث امنیت کنه؟ خب این دلیل میشه ما از اخلاق خوب php کارها یاد نگیریم و درمورد امنیت بحث نکنیم یا تا کسی از امنیت صحبت کرد بزنیم تو ذوقش؟ حتما ماباید خودمون اشتباه کنیم که یاد بگیریم یا باید از تجربه دیگران هم استفاده کنیم؟ مثل اینکه شما هدف تالار رو متوجه نشدین. توی استک آور فلو هم برنامه نویسا بحث امنیت نمی کنن؟

در ضمن این طرز صحبت کردنتون اصلا جالب نیست. برادرانه میگم غرور رو کنار بزارید.

بحث در مورد امنیت خودش باید با امنیت صورت بگیره . به نظر من : هر سخن جایی و هر نکته مکانی دارد . در هر صورت نمی گم بحث در مورد امنیت کار اشتباهیه اما باید خیلی روش حساس بود . استفاده از نظرات و انتقاد های دیگران هم خیلی خیلی کار خوبیه اما باید با فرد مورد اعتماد مشورت کرد . مثلا من چند وقت پیش یه مشکلی داشتم در همین رابطه ها ، می دونستم شاید کسایی باشن که بتونن جواب بهتری بدن و بهتر راهنمایی کنن ، اما از دوستان مورد اعتماد خودم سوالم را پرسیدم و با خیال راحت تری به کارم ادامه دادم . در هر صورت شما خودتون صلاح کار خودتون را می دونید . منم عذر می خوام که نظرات منفی ای داشتم و شاید بر خلاف نظر خیلی از دوستان کاری کردم .

ضمنا حرف من برخاسته از پست بدی بود که توش بهم بی احترامی شده بود وگرنه غروری در کار نیست . اگه واقعا غرور داشتم از قدرت مدیریتم استفاده می کردم و ایشون را چون قبلا توی بخش جاوا پست گذاشتن راحت از سایت حذف می کردم . اما شاید پست های دیگه ایشون توی تاپیک های دیگه جواب بعضی سوالات را داده باشه و با حذف این نام کاربری ممکنه تاپیک هایی نا خواسته خراب بشه .

golbafan
یک شنبه 10 اسفند 1393, 18:00 عصر
شما که تاپیک مورد علاقه تون داره داره ادامه پیدا می کنه . دیگه کسی مخالفش نیست . برای چی اینجا پست می زاری ؟ خب برو همونجا آموزشتو ببین و برنامه ات را امن کن دیگه ... .
خوبه پستی که اون بالا هست نشون میده از چه کسی می خواهید امنیت یاد بگیرید . من اگه همچین آدمی مهمترین علوم جهان را هم داشت حاضر نمیشدم چیزی یاد بگیرم

آیا این مدل صحبت کردن توهین محسوب نمیشه؟ همزمان به دو نفر ؟


بحث در مورد امنیت خودش باید با امنیت صورت بگیره . به نظر من : هر سخن جایی و هر نکته مکانی دارد . در هر صورت نمی گم بحث در مورد امنیت کار اشتباهیه اما باید خیلی روش حساس بود . استفاده از نظرات و انتقاد های دیگران هم خیلی خیلی کار خوبیه اما باید با فرد مورد اعتماد مشورت کرد

ببخشید بنده هکر هستم یا شما؟؟؟ من از دیکامپایل صحبت کردم یا شما؟؟؟ جالبه :متفکر:




ضمنا حرف من برخاسته از پست بدی بود که توش بهم بی احترامی شده بود وگرنه غروری در کار نیست . اگه واقعا غرور داشتم از قدرت مدیریتم استفاده می کردم و ایشون را چون قبلا توی بخش جاوا پست گذاشتن راحت از سایت حذف می کردم . اما شاید پست های دیگه ایشون توی تاپیک های دیگه جواب بعضی سوالات را داده باشه و با حذف این نام کاربری ممکنه تاپیک هایی نا خواسته خراب بشه .


البته من از شما اصلا ناراحت نیستم:قلب: چون الان در سنی هستید که بهش میگن غرور جوانی...

لطفا اون پستی که میگید من در جاوا گزاشتم آدرسشو بزارید تا دوستان ببینند پستهام مشکلی داره یا نه
در ضمن اگر این کار رو بکنید(حذف من از برنامه نویس) من مشکلی ندارم...

128989

dasssnj
یک شنبه 10 اسفند 1393, 19:04 عصر
آیا این مدل صحبت کردن توهین محسوب نمیشه؟ همزمان به دو نفر ؟

من که تا کسی توهین نکنه توهین نمی کنم . بالا خره جواب های هویه !


ببخشید بنده هکر هستم یا شما؟؟؟ من از دیکامپایل صحبت کردم یا شما؟؟؟ جالبه :متفکر:

مگه من گفتم بیان با من مشورت کنن !! ؟؟ :قهقهه:


البته من از شما اصلا ناراحت نیستم:قلب: چون الان در سنی هستید که بهش میگن غرور جوانی...

بهتون حق میدم . منم اگه جواب دیگه ای نداشتم حتما این موضوع را پیش می کشیدم :لبخند:



لطفا اون پستی که میگید من در جاوا گزاشتم آدرسشو بزارید تا دوستان ببینند پستهام مشکلی داره یا نه
در ضمن اگر این کار رو بکنید(حذف من از برنامه نویس) من مشکلی ندارم...

من نگفتم اون پست مشکل داره . فقط گفتم با اعمال مدیریتی اون پست اجازه حذف یک کاربر هم وجود داره . این جریمه هم کمترین کاریه که مدیر می تونه نسبت به پست های فاقد محتوا و توهین آمیز بکنه .

حذف شما پیامد های خوبی نداره . خودتون هم خوب می دونید پس من را تشویق بهش نکنید چون بعدا خودتون میاید و ادعای بی گناهی می کنید . این گزینه فقط برای مواقع اضطراریه و خیلی باید با احتیاط ازش استفاده بشه . اما این به این معنی نیست که نمیشه کسی را حذف کرد . مطمئن باشید اگه خودم به خاطر موضوعی صلاح بدونم و با مدیران کل مشورت کنم حذف تون می کنم . اصلا از این بابت نگران نباشید .

dasssnj
یک شنبه 10 اسفند 1393, 19:23 عصر
توی پست های دیگه تون هم که دارید به من تیکه می اندازید . خارج از شوخی و این بحثا ، واقعا زشت نیست ؟؟؟:متفکر:

golbafan
یک شنبه 10 اسفند 1393, 20:20 عصر
توی پست های دیگه تون هم که دارید به من تیکه می اندازید . خارج از شوخی و این بحثا ، واقعا زشت نیست ؟؟؟:متفکر:

سلام
آخه من چه پدر کشتگی میتونم با شما داشته باشم دوست عزیز؟؟
من حتی نمیدونم کی هستی و اسمت چیه...

فقط از این ناراحت میشم که کسی بجای اینکه راهکار ارائه کنه از این صحبت کنه که امنیت سخته و این حرفا...
من و شما شاید نا امید نشیم و خودمون دنبال راهکار بریم اما همه اینجور نیستند
وقتی یه تازه کار میاد اینجا سوال میپرسه شما باید امیدوارش کنید تا بتونه کار کنه و تجربه کسب کنه نه اینکه طوری باشه که تصور کنه راه زیادی در پیش داره وگرنه ناامید میشه و دست میکشه. بهرحال هرکسی نقص ها و کمالاتی داره ولی خواهش من اینه که در مقوله امنیت بیشتر هوای بچه ها رو داشته باشین

برای مثال عرض میکنم :
کاش اونبار که گفتید پروتکت کردن اهمیت بالاتری داره (البته اعتقاد من هم همینه) روشهایی هرچند ابتدایی برای کمک به دوستان عنوان میکردید تا خودشون برن دنبال روشهای بهتر. ولی شما تنها به زیر سوال بردن بقیه روشها اکتفا کردید و حتی وقتی دوستان از شما خواستند هیچ کمکی نکردید و گفتید اینجا جای صحبت از امنیت نیست!!!
در ثانی همونطور که میدونید بخش دوم آموزشهام مربوط میشد به پروتکت کردن و بخش سوم مربوط میشد به روشهای امن پرداخت درون برنامه ... آیا نمیشد همکاری کنید تا قسمت دوم بخوبی و با کمک همدیگه پیش بره؟؟؟
الان خیلی ها بهم پیام خصوصی میزنن که بحث رو ادامه بدم ولی آیا دیگه دل و دماقی میمونه؟

با اینکه موضوع تاپیک افزایش امنیت بود و مطالب داخلش هم گواهی میده من هیچ روش دور زدن رو آموزش ندادم ولی طوری عنوان کردید که انگار تاپیک یک معدن طلا برای هکزهاست. پ
من خواهش میکنم اگر من در اون تاپیک مطلبی برای راهنمایی هکر ها گزاشتم لطفا آدرسش رو بزارید اینجا...

:بوس::بوس::بوس:

dasssnj
یک شنبه 10 اسفند 1393, 22:04 عصر
سلام
آخه من چه پدر کشتگی میتونم با شما داشته باشم دوست عزیز؟؟
من حتی نمیدونم کی هستی و اسمت چیه...

فقط از این ناراحت میشم که کسی بجای اینکه راهکار ارائه کنه از این صحبت کنه که امنیت سخته و این حرفا...
من و شما شاید نا امید نشیم و خودمون دنبال راهکار بریم اما همه اینجور نیستند
وقتی یه تازه کار میاد اینجا سوال میپرسه شما باید امیدوارش کنید تا بتونه کار کنه و تجربه کسب کنه نه اینکه طوری باشه که تصور کنه راه زیادی در پیش داره وگرنه ناامید میشه و دست میکشه. بهرحال هرکسی نقص ها و کمالاتی داره ولی خواهش من اینه که در مقوله امنیت بیشتر هوای بچه ها رو داشته باشین

سلام.
من نظرم روی این بود که خود امنیت را هم باید امن یاد گرفت اما خب انگار نظر خیلی ها متفاوت بود . من هر چی بلد باشم توی اون تاپیک مطرح می کنم شما بگید توی کدوم قسمت چه مبحثی را توضیح بدم تا برای دوستان کاملا توضیح بدم . بالاخره آدم یه وقتایی مجبور میشه روی علایق و نظراتش پا بزاره اما مشکلی نیست . اگه دوستان برای شروع مبحث امنیت نیاز به راهنمایی داشته باشن سعی می کنم تا جایی که میشه علمم را به اشتراک بزارم .


برای مثال عرض میکنم :
کاش اونبار که گفتید پروتکت کردن اهمیت بالاتری داره (البته اعتقاد من هم همینه) روشهایی هرچند ابتدایی برای کمک به دوستان عنوان میکردید تا خودشون برن دنبال روشهای بهتر. ولی شما تنها به زیر سوال بردن بقیه روشها اکتفا کردید و حتی وقتی دوستان از شما خواستند هیچ کمکی نکردید و گفتید اینجا جای صحبت از امنیت نیست!!!
در ثانی همونطور که میدونید بخش دوم آموزشهام مربوط میشد به پروتکت کردن و بخش سوم مربوط میشد به روشهای امن پرداخت درون برنامه ... آیا نمیشد همکاری کنید تا قسمت دوم بخوبی و با کمک همدیگه پیش بره؟؟؟
الان خیلی ها بهم پیام خصوصی میزنن که بحث رو ادامه بدم ولی آیا دیگه دل و دماقی میمونه؟

خب همونطور که گفتم نظر شخصی ام این بود که اونجا محل صحبت از امنیت واقعا نبود چون خیلی از کاربران مهمان در سایت هم اون تاپیک را می دیدند و از پست ها استفاده می کردن و هیچ ردی هم ازشون باقی نمی موند . خیلی ها پیام خصوصی زدن و بهشون توضیح دادم و سعی کردم براشون توی پیام خصوصی تا حدی کمک کنم و نه در تاپیک . اما این بار پا روی نظرم می زارم و سوالاتی که پرسیده بشه را اگه بلد باشم جواب میدم و به نظر بقیه احترام می زارم .
در مورد بخش دوم آموزش ها هم دوست داشتم کمک کنم اما با اون پست و انتقاد شما از نظر منفی من و ... دیگه علاقه به ادامه را از دست دادم . بهتر بود از اول با طرز بهتر و ملایم تری می پرسیدید که چرا با تاپیک مخالفم و چرا ازش انتقاد کردم .

از وقتی همین تاپیک لاکی پچر شروع شد هم برای اینکه سر از کار لاکی پچر در بیارم و بتونم راه های مقابله باهاش را بفهمم شروع کردم و یه برنامه ساده مثل لاکی پچر نوشتم که در صد کمی از برنامه ها را با موفقیت کرک می کنه . سعی می کنم هر چی تجربه از این برنامه کسب کردم را به اشتراک بزارم تا بقیه ی دوستان بتونن بهتر در مورد لاکی پچر فکر کنن و راه هایی برای مقابله پیدا کنن . ان شا الله یه فیلم هم از نحوه ی کار برنامه می زارم .



با اینکه موضوع تاپیک افزایش امنیت بود و مطالب داخلش هم گواهی میده من هیچ روش دور زدن رو آموزش ندادم ولی طوری عنوان کردید که انگار تاپیک یک معدن طلا برای هکزهاست. پ
من خواهش میکنم اگر من در اون تاپیک مطلبی برای راهنمایی هکر ها گزاشتم لطفا آدرسش رو بزارید اینجا...

نه منظورم روش هایی برای هک نبود که برای هکر ها معدن طلا باشه بلکه روش های جلوگیری از هک هم می تونه به نحوی هکر ها را از درون برنامه ها آگاه کنه و راه را براشون هموار کنه . در کل شاید توی ایران هکر زیاد نداشته باشیم و ان شالله اون ها هم این تاپیک ها را نبینن . :لبخند: .

امیدوارم دوستان از مباحث استفاده ی لازم را ببرن . من هر سوالی داشتید و اگه بلد باشم در خدمتم .

محمد آشتیانی
یک شنبه 10 اسفند 1393, 23:13 عصر
با سلام
دوستان عزیزم ، افرادی که در این سایت عضو میشن و فعالیت میکنن به دنبال افزایش مهارت ها و توانایی هاشون هستن و تواما به اشتراک گذاشتن تجارب و دانسته هاشون.
توی همچین محیطی چرا باید اینقدر مباحث حاشیه ای و فرعیات مطرح بشه؟ چرا باید به همدیگه بی احترامی کنیم؟

اگر نظری مخالف نظر دیگران داریم ، میتونیم محترمانه و با مستندات و بصورت فنی بحث کنیم و فقط اینجوریه که سایرین هم میتونن از دانسته های ما منتفع بشن ، مطمئنا با روش جاری در این تاپیک نه تنها نمیتونید طرف مقابل رو در مورد اشتباهش (از نظر شما) متقاعد کنید ، بلکه فقط باعث ایجاد ناراحتی و سوء تفاهم در طرف مقابل و البته ناراحتی سایر کاربران میشید.

حقیقتا در شان اعضای این سایت نیست که یک یا چند نفر دائما به دنبال تذکر دادن و جریمه کردن و ایجاد نظم باشن ، بنابراین امیدوارم بعد از این پست ، بحث حاشیه ای جدیدی مطرح نشه ، در غیر اینصورت به خاطر سایر کاربرانی که دنبال فعالیت مفید هستند ، با این افراد برخورد خواهد شد.




پیشاپیش از همکاری شما عزیزان تشکر میکنم

storm_saeed
یک شنبه 10 اسفند 1393, 23:15 عصر
نمیدونم چرا این بحث انقد ادامه پیدا کرده
این مساله خیلی وقت پیشا بحث شده مثل
http://stackoverflow.com/questions/13445598/lucky-patcher-how-can-i-protect-from-it
و
http://stackoverflow.com/questions/10585961/way-to-protect-from-lucky-patcher-play-licensing-android
و اینجا
http://forum.xda-developers.com/showthread.php?t=2279813

مبحث امنیت خیلی گسترده از این حرفاست .بهتر بود قبل ادامه بحث نحوه ی کار این برنامه و راه های پیشنهادی باهاش رو میخوندین که روش های معقول تر و جدیدتر برای جلوگیری ازش داده بشه نه اینکه یه سری کار رو بخواین انجام بدین که قبلا یه عده انجام دادن ( و بعضا روش های غلط برای مثال تو همین مبحث بعضی روش ها اشتباه بود).

پ.ن
۹۹ درصد سوالات این فروم با اولین جستجو در گوگل جوابتش بدست میاد .

golbafan
یک شنبه 10 اسفند 1393, 23:29 عصر
۹۹ درصد سوالات این فروم با اولین جستجو در گوگل جوابتش بدست میاد . الان این فروم شده دعوا و بحث های حاشیه و سوالات تکراری
بهتره کسی دیگه این پست رو ادامه نده

درست میفرمایید ولی مشکل اینه که اکثر کاربران این سایت زبان انگلیسیشون خوب نیست...
من شخصا عضو فعال stack exchanges و stack owerfolow هم هستم و اونجا خیلی بیشتر لذت میبرم چون خیلی علمی تره ولی بخاطر افزایش مهارت های دوستان ایرانی
سعی میکنم حد اقل همونقدر که به برنامه نویسهای خارجی کمک میکنم به ایرانی ها هم کمک کنم

atefeH.soveyzi
پنج شنبه 21 اسفند 1393, 16:00 عصر
سلام
من یک برنامه نویس نسبتا آماتورم
میخواستم ببینم چطور می تونم توی برنامه ام پرداخت درون برنامه ای با قیمت های متفاوتی داشته باشم؟
یه قطعه کد نمونه ندارید؟
این که میگن باید هرکدوم رو به عنوان محصول جدید معرفی کنیمو در جریانم اما این که چطور توی برنامه کد بنویسیم رو متاسفانه نمی دونم
لطفا کمکم کنید
مرسی
حالت emergency: نسبتا فوری

c0mmander
پنج شنبه 21 اسفند 1393, 17:35 عصر
سلام
من یک برنامه نویس نسبتا آماتورم
میخواستم ببینم چطور می تونم توی برنامه ام پرداخت درون برنامه ای با قیمت های متفاوتی داشته باشم؟
یه قطعه کد نمونه ندارید؟
این که میگن باید هرکدوم رو به عنوان محصول جدید معرفی کنیمو در جریانم اما این که چطور توی برنامه کد بنویسیم رو متاسفانه نمی دونم
لطفا کمکم کنید
مرسی
حالت emergency: نسبتا فوری

ضمن خیر مقدم به شما جهت عضویت در وب سایت یک توضیحی بدم تا بعدا دوستان قدیمی و حرفه ای ما داخل این جا هستند دیگه چیزی بهتون نگن اینجا معمولا اول باید کلمه کلیدی که دنبالش هستد رو جستجو کنید چون سوال های مشابه زیادی جواب داده شده و هر کسی که دوباره سوالی رو ببنیه که خودش به اون جواب داده شاکی میشه و این حالت بهش دست میده ->:متعجب:

دوم این تاپیک http://barnamenevis.org/showthread.php?429143-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA-%D8%AF%D8%B1%D9%88%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%DB%8C&highlight=%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA+%D8 %AF%D8%B1%D9%88%D9%86+%D8%A8%D8%B1%D9%86%D8%A7%D9% 85%D9%87

رو بررسی کنید و سوال های مربوط رو در بخش خودش بپرسید.

ehsanh22
پنج شنبه 21 اسفند 1393, 22:59 عصر
از دوست عزیزمون mrzzrm (http://barnamenevis.org/member.php?147166-mrzzrm) تشکر میکنم، برای اینکه وجودش به من انگیزه داد
اول اینکه من اعتقاد دارم اگر کسی تونسته کاری رو بکنه پس منم میتونم
دوم اینکه سطح فرهنگ ایشون انگیزه داد تا برای بقیه راه رو هموار تر کنم و یک توضیح کوچیک بدم

دوستان استفاده از API بازار به هیچ عنوان سخت نیست، شاید یکم پیچیدگی داشته باشه ولی سخت نیست
من اطلاعاتم از وب و PHP به شدت کمه و اکثر اطلاعاتم رو از آموزش خوب دوست عزیزمون harani (http://barnamenevis.org/member.php?256621-harani) گرفتم ( لینک آموزش (http://barnamenevis.org/showthread.php?457283-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&highlight=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%B3%D8 %B1%D9%88%D8%B1) )

برای اینکه از API بازار بتونید استفاده کنید نیاز به دانش حداقلی از سرور و PHP و متدهای GET و POST و همچنین JSON توی وب سرویس دارید
توی اندروید هم که AsyncTask رو بدونین و نحوه ارتباط با وب سرویس
همین آموزش رو بخونید این اطلاعات رو به دست میارید ( البته باید یکمم سرچ و جستجو بکنید )

به شخصه کار من با یک هاست رایگان و یک فایل php که کلا فکر کنم 20 خط داره درست شد

مستندات بازار خیلی گنگ و خلاصه توضیح داده اما میشه پیاده سازیش کرد

مستندات بازار رو تا جایی که refresh_code بگیرید به صورت دستی ادامه بدید، از اینجا به بعدش رو با سرور گزارش بگیرید
( لینک مستندات (http://pardakht.cafebazaar.ir/doc/developer-api/?l=fa) )

متاسفانه چون اطلاعاتم از وب کمه نمیتونم خوب توضیح بدم یا آموزش کامل و جامعی برای همه بذارم، اما این کد PHP منه که باهاش از بازار گزارش خرید رو میگیرم


<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'کدی که از بازار گرفتین - رفرش کد';

$url = 'http://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'آیدی کلاینت', 'client_secret' => 'رمز کلاینت', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = $jsonResponse['access_token'];

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>

به این فایل سه تا پارامتر باید بفرستید، یکی اسم پکیج، یکی آیدی محصول و دیگری توکنی که بعد از خرید به برنامه داده میشه همون purchase.getOrderId

داخل فایل باید refresh code رو که از بازار به صورت دستی گرفتید بذارید
آیدی کلاینت و رمزش رو هم وارد کنید

در جواب به شما یک رشته JSON داده میشه، اگر خالی بود یعنی پرداخت درست نیست، اگر که شامل استاتوس و سایر مشخصات خرید بود یعنی درسته

پاسخ درست به شکل زیره
{"consumptionState": 1, "purchaseState": 0, "kind": "androidpublisher#inappPurchase", "developerPayload": "hojjat", "purchaseTime": 1424267267085}

پاسخ غلط هم فقط {} فرستاده میشه

در صورتی که access code اشتباه باشه هم ارور 404 میگیرید

دوستمون به جای اینکه بیان از سرور استفاده کنن، دقیقا همین کد PHP رو توی اندروید نوشتن
ولی خب امنیتش زیاد تضمینی نیست، چون شما باید همه اطلاعات رو قرار بدید توی برنامه

دوست داشتم میتونستم کاملتر توضیح بدم، اما دانشم در این حد نیست متاسفانه

من تمامی مراحل رو انجام دادم ، فایل رو توی هاستم آپلود کردم حالا باید چیکار کنم با ایین فایل و چجوری به برنامم بگم چک کنه

poorman
جمعه 22 اسفند 1393, 23:29 عصر
من تمامی مراحل رو انجام دادم ، فایل رو توی هاستم آپلود کردم حالا باید چیکار کنم با ایین فایل و چجوری به برنامم بگم چک کنه

سلام

شما باید اسم پکیج برنامه، شناسه محصول و کد خرید کاربر رو بعد از خرید به سرورتون بفرستید و دیتای برگشتی رو چک کنید که آیا خرید درسته یا نه

برای انجام اینکار نیاز به آشنایی کار با وب سرویس ها و AsyncTask دارید. بعدش هم باید رشته JSON برگشتی رو بخونید.

Abbas Naghdi
شنبه 23 اسفند 1393, 19:25 عصر
سلام برنامه نویسا :)مشکل پرداخت درون برنامه ای هست اگه بازار میزاشت از پرداخت بانکی و ... استفاده کنیم و مثلا با پرداخت ماهیانه پولی به بازار و ... میدادیم مشکل حل میشد .من که برنامه دوتا رشته رو بره داخل سورو چک کنه اولین رشته token و رشته دوم device ID رو که هردوتاشون انحصارین ... اگه این دوتا بود که برنامه فعال بشه و اگه نبود که برنامه فعال نشه .حالا برای خرید : حالا اگه کاربرا شیطونی نکنن و برنامه پچ نشه و بازار به جای لوکی باز بشه که خرید انجام میشه و دوتا رشته بعد از خرید میره ذخیره میشه داخل سرور برای بعدا .اما اگه لوکی به جای بازار باز بشه که پرداختی انجام نمیشه و برنامه هم وقتی میره چک کنه رشته ها رو رشته ها رو پیدا نمیکنه و برنامه همچنان غیر فعاله !نظرتون چیه ؟ الگوریتم خوبیه یا نه ؟

abbasi.naft
یک شنبه 24 اسفند 1393, 08:48 صبح
سلام برنامه نویسا :)مشکل پرداخت درون برنامه ای هست اگه بازار میزاشت از پرداخت بانکی و ... استفاده کنیم و مثلا با پرداخت ماهیانه پولی به بازار و ... میدادیم مشکل حل میشد .من که برنامه دوتا رشته رو بره داخل سورو چک کنه اولین رشته token و رشته دوم device ID رو که هردوتاشون انحصارین ... اگه این دوتا بود که برنامه فعال بشه و اگه نبود که برنامه فعال نشه .حالا برای خرید : حالا اگه کاربرا شیطونی نکنن و برنامه پچ نشه و بازار به جای لوکی باز بشه که خرید انجام میشه و دوتا رشته بعد از خرید میره ذخیره میشه داخل سرور برای بعدا .اما اگه لوکی به جای بازار باز بشه که پرداختی انجام نمیشه و برنامه هم وقتی میره چک کنه رشته ها رو رشته ها رو پیدا نمیکنه و برنامه همچنان غیر فعاله !نظرتون چیه ؟ الگوریتم خوبیه یا نه ؟

سلام
در ظاهر که خوبه ، اما واقعیت با تصورات ما متاسفانه گاهی اوقات فرق میکنه.
برنامه ای که بدین ترتیب نوشتین رو با این لاکی ملعون تست کردید؟؟
مشتاقانه منتظر راهکارهای ابتکاری دوستان هستیم.

موفق باشید

amir.h.a.z
دوشنبه 03 فروردین 1394, 02:44 صبح
از دوست عزیزمون mrzzrm (http://barnamenevis.org/member.php?147166-mrzzrm) تشکر میکنم، برای اینکه وجودش به من انگیزه داد
اول اینکه من اعتقاد دارم اگر کسی تونسته کاری رو بکنه پس منم میتونم
دوم اینکه سطح فرهنگ ایشون انگیزه داد تا برای بقیه راه رو هموار تر کنم و یک توضیح کوچیک بدم

دوستان استفاده از API بازار به هیچ عنوان سخت نیست، شاید یکم پیچیدگی داشته باشه ولی سخت نیست
من اطلاعاتم از وب و PHP به شدت کمه و اکثر اطلاعاتم رو از آموزش خوب دوست عزیزمون harani (http://barnamenevis.org/member.php?256621-harani) گرفتم ( لینک آموزش (http://barnamenevis.org/showthread.php?457283-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&highlight=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%B3%D8 %B1%D9%88%D8%B1) )

برای اینکه از API بازار بتونید استفاده کنید نیاز به دانش حداقلی از سرور و PHP و متدهای GET و POST و همچنین JSON توی وب سرویس دارید
توی اندروید هم که AsyncTask رو بدونین و نحوه ارتباط با وب سرویس
همین آموزش رو بخونید این اطلاعات رو به دست میارید ( البته باید یکمم سرچ و جستجو بکنید )

به شخصه کار من با یک هاست رایگان و یک فایل php که کلا فکر کنم 20 خط داره درست شد

مستندات بازار خیلی گنگ و خلاصه توضیح داده اما میشه پیاده سازیش کرد

مستندات بازار رو تا جایی که refresh_code بگیرید به صورت دستی ادامه بدید، از اینجا به بعدش رو با سرور گزارش بگیرید
( لینک مستندات (http://pardakht.cafebazaar.ir/doc/developer-api/?l=fa) )

متاسفانه چون اطلاعاتم از وب کمه نمیتونم خوب توضیح بدم یا آموزش کامل و جامعی برای همه بذارم، اما این کد PHP منه که باهاش از بازار گزارش خرید رو میگیرم


<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'کدی که از بازار گرفتین - رفرش کد';

$url = 'http://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'آیدی کلاینت', 'client_secret' => 'رمز کلاینت', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = $jsonResponse['access_token'];

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>

به این فایل سه تا پارامتر باید بفرستید، یکی اسم پکیج، یکی آیدی محصول و دیگری توکنی که بعد از خرید به برنامه داده میشه همون purchase.getOrderId

داخل فایل باید refresh code رو که از بازار به صورت دستی گرفتید بذارید
آیدی کلاینت و رمزش رو هم وارد کنید

در جواب به شما یک رشته JSON داده میشه، اگر خالی بود یعنی پرداخت درست نیست، اگر که شامل استاتوس و سایر مشخصات خرید بود یعنی درسته

پاسخ درست به شکل زیره
{"consumptionState": 1, "purchaseState": 0, "kind": "androidpublisher#inappPurchase", "developerPayload": "hojjat", "purchaseTime": 1424267267085}

پاسخ غلط هم فقط {} فرستاده میشه

در صورتی که access code اشتباه باشه هم ارور 404 میگیرید

دوستمون به جای اینکه بیان از سرور استفاده کنن، دقیقا همین کد PHP رو توی اندروید نوشتن
ولی خب امنیتش زیاد تضمینی نیست، چون شما باید همه اطلاعات رو قرار بدید توی برنامه

دوست داشتم میتونستم کاملتر توضیح بدم، اما دانشم در این حد نیست متاسفانه












جناب پورمن من این روش رو پیاده کردم فقط یه مشکل هست اونم اکسس کد هستش که عمر ش کمه یعنه نمیشه به طور دایمی استفاده کرد :گریه: و نمیشه هی php رو تازه سازی کرد لطفا کم کنید
بازار هم برای هر اکسس کد تایید میخواد اگه بشه این تایید رو رد کردن میشه کاررو درست کرد

poorman
دوشنبه 03 فروردین 1394, 21:17 عصر
اکسس کد فقط یک بار مورد نیازه، شما باید توی کد php رفرش کد رو قرار بدید

بعد توسط رفرش کد میتونید اکسس کد جدید به صورت اتوماتیک بدست بیارید

djtrex
جمعه 07 فروردین 1394, 21:47 عصر
من برای php این پکیج رو نوشتم:
https://github.com/nikapps/bazaar-api-php

اگه از فریم ورک لاراول (نسخه ۴.۲) هم استفاده می کنید میتونید lز این پکیج استفاده کنید:
https://github.com/nikapps/bazaar-api-laravel

راهنمای کار نوشته شده.

برای پرداخت درون برنامه ای محصولات مصرف شدنی (Consumable) فرآیند هاتون به این صورت باشه مشکلتون حل میشه: (منابع مثل سکه و ... سمت سرور مصرف میشه)


129772

mohammad-de
شنبه 08 فروردین 1394, 14:01 عصر
سلام دوستان
جدیدا کافه بازار ایمیلی برای توسعه دهنده هاش ارسال کرده و اینطور نوشته:
"
روشـی کـامـلا متوال و شناخته شـده برای خـرید اقلام، ارتقا و یا ارائه خدماتی خاص توسط نرم افزار و بازی، از پرداخت درون برنامه ای استفاده می شود. حال برای انجام مراحل خرید می بایست کاربر یکی از مارکت های آندورید را بر روی دستگاه نصب داشته باشد، حتما و حتما شما از مراحل و روش انجام خرید های درون برنامه ای اطلاع دارید و ما قصد آموزش آن را نداریم.



همانطور که اطلاع دارید بوسیله نرم افزاری به نام Lucky Patcher می توان فرآیند خرید را جعل نموده و همانند یک خرید واقعی، فرآیند خرید را شبیه سازی نمود. به همین منظور برای امنیت بیشتر و اطمینان از پرداخت های درون برنامه، کتابخانه ای برای شما توسعه دهندگان نرم افزار و بازی آماده نموده ایم و بوسیله این کتابخانه می توانید 100 درصد خریدهای جعل شده توسط نرم افزار فوق را شناسایی کنید. تا کنون نسخه 5.5.3 این نرم افزار منتشر شده است و کتابخانه ی طراحی شده توسط ما تمامی خرید های جعل شده را شناسایی نموده است.



"

الان کتاب خونش کجاست؟ تو پنل کافه بازار که نتونستم پیداش کنم
اگه کسی لینکی داره ممنون میشم بدید

hedayatix
شنبه 08 فروردین 1394, 14:21 عصر
سلام دوستان
جدیدا کافه بازار ایمیلی برای توسعه دهنده هاش ارسال کرده و اینطور نوشته:
"
روشـی کـامـلا متوال و شناخته شـده برای خـرید اقلام، ارتقا و یا ارائه خدماتی خاص توسط نرم افزار و بازی، از پرداخت درون برنامه ای استفاده می شود. حال برای انجام مراحل خرید می بایست کاربر یکی از مارکت های آندورید را بر روی دستگاه نصب داشته باشد، حتما و حتما شما از مراحل و روش انجام خرید های درون برنامه ای اطلاع دارید و ما قصد آموزش آن را نداریم.



همانطور که اطلاع دارید بوسیله نرم افزاری به نام Lucky Patcher می توان فرآیند خرید را جعل نموده و همانند یک خرید واقعی، فرآیند خرید را شبیه سازی نمود. به همین منظور برای امنیت بیشتر و اطمینان از پرداخت های درون برنامه، کتابخانه ای برای شما توسعه دهندگان نرم افزار و بازی آماده نموده ایم و بوسیله این کتابخانه می توانید 100 درصد خریدهای جعل شده توسط نرم افزار فوق را شناسایی کنید. تا کنون نسخه 5.5.3 این نرم افزار منتشر شده است و کتابخانه ی طراحی شده توسط ما تمامی خرید های جعل شده را شناسایی نموده است.



"

الان کتاب خونش کجاست؟ تو پنل کافه بازار که نتونستم پیداش کنم
اگه کسی لینکی داره ممنون میشم بدید

دوست عزیز شما این ایمیل رو خودتون دریافت کردید؟ من چنین ایمیلی دریافت نکردم تا الان! شما کِی ایمیل رو دریافت کردید؟
یعنی به نظر شما اگر این ماجرا صحت داشته باشه مشکل جدیدی که توی پرداخت درون برنامه ای بوجود اومده و بعضی از کاربرا خرید رو انجام می دن اما عضویت اونها به نسخه ی کامل انجام نمی شه مرتبط با همین کتابخونه ی جدید هست؟
کسی نظری داره؟

mohammad-de
شنبه 08 فروردین 1394, 14:38 عصر
دوست عزیز شما این ایمیل رو خودتون دریافت کردید؟ من چنین ایمیلی دریافت نکردم تا الان! شما کِی ایمیل رو دریافت کردید؟
یعنی به نظر شما اگر این ماجرا صحت داشته باشه مشکل جدیدی که توی پرداخت درون برنامه ای بوجود اومده و بعضی از کاربرا خرید رو انجام می دن اما عضویت اونها به نسخه ی کامل انجام نمی شه مرتبط با همین کتابخونه ی جدید هست؟
کسی نظری داره؟

بله. امروز ظهر دریافت کردم از طرف کافه بازار.

virus2009
شنبه 08 فروردین 1394, 16:16 عصر
دوستان این مشکل یک راه حل خیلی ساده دارد

اگر با یک دیباگر جواب برگشتی lucky pathcer رو بعد از خرید چک می کردید و اون رو با جواب برگشتی بازار مقایسه می کردید راه حل میومد جلوی چشماتون.


به لطف عدم وجود کیف پول برای مارکت های ایرانی ( مثل Google wallet ) مقدار orderId در مارکت های ایرانی وجود ندارد و به جای آن Token قرار گرفته است.
حالا شما خیلی راحت می تونید مقدار orderId و توکن رو با هم مقایسه کنید، اگر مساوی بودن جواب برگشتی از بازار اومده و خرید انجام شده، ولی اگر برابر نبودند یعنی جواب رو lucky patcher فرستاده. ( نحوه استفاده پیوست شد )



اگر نرم افزارتون رو منتشر کردید از روش استفاده کنید و یک آپدیت جدید بدید ولی اگر تازه می خواهید نرم افزارتون رو منتشر کنید پیشنهاد میشه حتما راه حل ایمن تری اجرا کنید.

بهترین روش اینه که شما از API ـه توسعه دهنده بازار استفاده کنید چون خرید هایی که تو بازار ثبت شده رو می تونید بررسی کنید. ( من از این روش فعلا استفاده نکردم ولی یکی از دوستان آموزشش رو گذاشته تو این تاپیک)


یک روش دیگه هم هست که میتونید کلا تابع verifyPurchase که تو کلاس IabHelper هست رو تو سرور خودتون اجرا کنید و public key رو که فقط برای این تابع استفاده میشه در نرم افزار نذارید و امضای بازار رو تو سرور بررسی کنید.

نحوه عملکردش هم فکر می کنم به این صورته که بازار همون Json برگشتی خرید رو میاد با public key انکود می کنه و میفرسته برای شما، تو تابع verifyPurchase این جواب انکود شده توسط public key دیکود میشه و با جواب برگشتی مقایسه میشه، اگه برابر بودن یعنی درسته، حالا شما باید این جواب انکود شده ( همون signature در جواب برگشتی بازار ) رو به سرور خودتون بفرستید و توسط public key خودتون دیکودش کنید و در جواب بفرستید برای نرم افزار تا با جواب برگشتی از بازار مقایسش کنه. ( تو خیلی از سایت های خارجی این روش کامل توضیح داده شده و کدهاش هست، سرچ بزنید میاد )

hamedjj
یک شنبه 09 فروردین 1394, 16:00 عصر
بچه ها عجب سرعت عملی دارند
از سیستم شتاب هم سریعتر هستند.
http://securepayment.ir

پیاده سازی این api سخت نیست فقط کافیه یکم برنامه نویسی سمت سرور کار کنید
میتونید از parse هم استفاده کند که رایگان و پرقدرت هم هست

poorman
یک شنبه 09 فروردین 1394, 17:23 عصر
بعله کلا ما خوب بلدیم از شرایطی که به وجود میاد سوء استفاده کنیم :لبخند:
کلا شما برید یک سرور بگیرید سالی میشه 45 تومن

ایشون یک نفر هم بخره این سرویس رو پول سرورش در میاد بقیش سوده :قهقهه:

دوستان عزیز حتی اگه شده پول بدید یکی راه مقابله با لاکی پچر از طریق سرور رو بهتون آموزش بده اما به نظر بنده به کتابخونه هایی که داره تبلیغ میشه اعتماد نکنید.
شما از محتوای کتابخونه خبر ندارید، نمیدونید داره دقیقا چکار میکنه

c0mmander
یک شنبه 09 فروردین 1394, 19:21 عصر
بچه ها عجب سرعت عملی دارند
از سیستم شتاب هم سریعتر هستند.
http://securepayment.ir

پیاده سازی این api سخت نیست فقط کافیه یکم برنامه نویسی سمت سرور کار کنید
میتونید از parse هم استفاده کند که رایگان و پرقدرت هم هست

برای من دیروز اس ش اومد ...
کلا همه چیز ما به شیوه انگلیه ..
یکی یک کاری انجام میده همه چیزش رو رایگان مگذاره بعد از کلی توضیحات همون چیز رایگان , سر اخر یک فرد دیگه (وقتی جیگر فهم شد) بیاد همونو به خودشون بفروشه :|

storm_saeed
یک شنبه 09 فروردین 1394, 20:12 عصر
فقط میشه تاسف خورد به حال این مملکت :| همینه پیشرفت نمیکنیم :|

من نمیدونم چرا این تاپیک انقد طولانی شد دوستمون virus2009 (http://barnamenevis.org/member.php?344653-virus2009) راست میگن راه حل این کار خیلی ساده تر از این حرفاست . انقد این تاپیک ادامه پیدا کرد تا یکی اومد پرداخت امن :عصبانی++:رو راه اندازی کرد

hamedjj
سه شنبه 22 اردیبهشت 1394, 02:01 صبح
اشتباه شد
پاک شود

mnakhaeipoor
سه شنبه 19 خرداد 1394, 16:43 عصر
اگه کد های مربوط به پردازش پرداخت رو با C++ بنویسیم بازم Lucky Patcher میتونه پچ کنه؟؟

saeidpsl
پنج شنبه 21 خرداد 1394, 03:23 صبح
من بازی خروس جنگی رو هر کاری کردم هک شد بعد داخل سورسش نگاه کردم دیدم از این کتابخونه استفاده کرده

درباره و آموزش

http://tinyurl.com/o7lvzqv

git

https://github.com/IranApps/InAppBillingHelper

Ebrahimkh
پنج شنبه 21 خرداد 1394, 14:53 عصر
دوستان سورس کاملی در این باب سراغ ندارید
که این تاپیک اینقد کش نیاره ؟؟!!

hamedjj
پنج شنبه 21 خرداد 1394, 15:15 عصر
دوستان سورس کاملی در این باب سراغ ندارید
که این تاپیک اینقد کش نیاره ؟؟!!

این آموزش را ببینید :
http://answers.uncox.com/android/question/9631

این لینک هم برای پروژه محصولات مصرفی :
http://s6.picofile.com/file/8189626918/iab_masrafi.rar.html

ehsanh22
شنبه 06 تیر 1394, 21:57 عصر
کسی میتونه مشکل منو حل کنه ؟
http://barnamenevis.org/showthread.php?499916-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%DB%8C%D9%86-%D8%A7%DA%A9%D8%AA%DB%8C%D9%88%DB%8C%D8%AA%DB%8C-%D8%AF%D8%B1%D9%88%D9%86-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA-%D8%B1%D8%A7-%D8%A7%D8%B5%D9%84%D8%A7%D8%AD-%DA%A9%D9%86%D9%85

ehsanh22
دوشنبه 15 تیر 1394, 12:56 عصر
چرا هیچکس یه روش ساده نمیشه که همه بتونن استفاده کنن چرا همه دنبال پول هستن ای بابا

Ebrahimkh
سه شنبه 30 تیر 1394, 14:53 عصر
با تشکر از تمامی دوستانی که تو این تاپیک شرکت کردن

ولی آخرش سورس یه برنامه در این باب تو این تاپیک به این خوبی گذاشته نشد


دوستان خواهشن یه نمونه سورس از پرداخت درون برنامه ای رو اگه ممکنه تو این تاپیک بزاردید من تا رفرش کد رو رفتم ولی یه بعضی جاهاش رو نتونستم همش null بر میگردونه :گریه:

c0mmander
سه شنبه 30 تیر 1394, 16:32 عصر
با تشکر از تمامی دوستانی که تو این تاپیک شرکت کردن

ولی آخرش سورس یه برنامه در این باب تو این تاپیک به این خوبی گذاشته نشد


دوستان خواهشن یه نمونه سورس از پرداخت درون برنامه ای رو اگه ممکنه تو این تاپیک بزاردید من تا رفرش کد رو رفتم ولی یه بعضی جاهاش رو نتونستم همش null بر میگردونه :گریه:

http://barnamenevis.org/showthread.php?488813-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-api-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1&highlight=api+%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1
:|

dany323
یک شنبه 03 آبان 1394, 14:57 عصر
چطور عدد امضای برنامه خودمون رو پیدا کنیم؟

Behrooz_CS
سه شنبه 03 آذر 1394, 20:51 عصر
دوستان یه کتابخانه هست که ضد پچ هست و امنیت را تضمین می کنه. با c++ هم پیاده کردن:

http://antipatcher.ir (http://antipatcher.ir)

Abbas Naghdi
چهارشنبه 04 آذر 1394, 14:27 عصر
با سلام .

ما با چنتا از بچه ها گروه برنامه نویسان تلگرام رو راه اندازی کردیم . خوشحال میشیم دوستان دوست داشتند بپپیوندند .

قوانین :

برسی برنامه نویسی موبایل

برسی و تبادل اطلاعات و بازار یابی

برسی برنامه نویسی سیستم عامل های موبایل

لینک گروه : https://telegram.me/joinchat/CATI0wNWc7bmUEv7xg1E5Q

1371mamali
چهارشنبه 12 اسفند 1394, 18:05 عصر
دوستان این مشکل یک راه حل خیلی ساده دارد

اگر با یک دیباگر جواب برگشتی lucky pathcer رو بعد از خرید چک می کردید و اون رو با جواب برگشتی بازار مقایسه می کردید راه حل میومد جلوی چشماتون.


به لطف عدم وجود کیف پول برای مارکت های ایرانی ( مثل Google wallet ) مقدار orderId در مارکت های ایرانی وجود ندارد و به جای آن Token قرار گرفته است.
حالا شما خیلی راحت می تونید مقدار orderId و توکن رو با هم مقایسه کنید، اگر مساوی بودن جواب برگشتی از بازار اومده و خرید انجام شده، ولی اگر برابر نبودند یعنی جواب رو lucky patcher فرستاده. ( نحوه استفاده پیوست شد )



اگر نرم افزارتون رو منتشر کردید از روش استفاده کنید و یک آپدیت جدید بدید ولی اگر تازه می خواهید نرم افزارتون رو منتشر کنید پیشنهاد میشه حتما راه حل ایمن تری اجرا کنید.

بهترین روش اینه که شما از API ـه توسعه دهنده بازار استفاده کنید چون خرید هایی که تو بازار ثبت شده رو می تونید بررسی کنید. ( من از این روش فعلا استفاده نکردم ولی یکی از دوستان آموزشش رو گذاشته تو این تاپیک)


یک روش دیگه هم هست که میتونید کلا تابع verifyPurchase که تو کلاس IabHelper هست رو تو سرور خودتون اجرا کنید و public key رو که فقط برای این تابع استفاده میشه در نرم افزار نذارید و امضای بازار رو تو سرور بررسی کنید.

نحوه عملکردش هم فکر می کنم به این صورته که بازار همون Json برگشتی خرید رو میاد با public key انکود می کنه و میفرسته برای شما، تو تابع verifyPurchase این جواب انکود شده توسط public key دیکود میشه و با جواب برگشتی مقایسه میشه، اگه برابر بودن یعنی درسته، حالا شما باید این جواب انکود شده ( همون signature در جواب برگشتی بازار ) رو به سرور خودتون بفرستید و توسط public key خودتون دیکودش کنید و در جواب بفرستید برای نرم افزار تا با جواب برگشتی از بازار مقایسش کنه. ( تو خیلی از سایت های خارجی این روش کامل توضیح داده شده و کدهاش هست، سرچ بزنید میاد )

اگه میشه بیشتر راهنمایی کنید خیلی خلاصه هستش گفته هاتون

1371mamali
چهارشنبه 12 اسفند 1394, 18:52 عصر
راه حل اینجاست اگه کسی میفهمه یه توضیح بده ببینیم باید چی کار کنیم درکل اما اینطور که پیداست بخش اول مربوط به امضا و کلید میشه و بخش دوم مربوط به نصب بودن لاکی پچر اگه کسی میفهمه توضیح بده اگه تو کد مشکلی دیدید
ببخشید :

بخش اول

Code to check your certificate
(public void checkSignature(final Context context
}
try
Signature[] signatures = context.getPackageManager().getPackageInfo(context .getPackageName(),PackageManager.GET_SIGNATURES).s ignatures
;


( < if(signatures[0].toCharsString()!=<YOUR CERTIFICATE STRING GOES HERE
}
Kill the process without warning. If someone changed the certificate//

is better not to give a hint about why the app stopped working//

;( ()android.os.Process.killProcess(android.os.Proces s.myPid

{
{
(catch(NameNotFoundException ex
}
Must never fail, so if it does, means someone played with the apk, so kill the process//
;(() android.os.Process.killProcess(android.os.Process. myPid
{

{


And how to find which one is your certificate, simple too. You must produce an APK, in release mode, as the debug certificate is different from the release one always. Output your certificate string to a temporary textview to copy it, or to a text file with the next call, IMPORTANT: DO NOT output it the logcat, as the string is too large and the logcat will not show it all and cut the last char characters

;()signatures[0].toCharsString

;(()example:YourTextView.setText(signatures[0].toCharsStringNow, remember that when you are back to debug mode, the certificate is different again, and might be different sometimes on each build, so you will get a debug


hell. Then it is better to use next line to have it easier when developing, and place it right before calling the certificate testing

(if((context.getApplicationContext().getApplicatio nInfo().flags &=ApplicationInfo.FLAG_DEBUGGABLE)!=0
}
; return
{


So avoid calling this certification code if in debug mode


بخش دوم تست لاکی پچر
And now the lucky patcher checker
This code will check its existence. I decompiled all versions of Lucky Patcher, and i've found out that its creator used 2 package names between all realeases. So you only need to keep track of new versions and keep adding future lucky patcher package names to the checking functions.
Also a recommendation, encrypt the package names strings instead of just harcoding them as in the example, so lucky patcher does not come out with a new version which just replaces the strings patching them. Lets make it difficult for crackers


()private boolean checkLuckyPatcher
}
(("if(packageExists("com.dimonvideo.luckypatcher
}
;return true
{

(( "if(packageExists("com.chelpus.lackypatch
}
; return true
{

(("if(packageExists("com.android.vending.billing.InAppBillingService.LU CK
}
; return true
{

;return false
{

(private boolean packageExists(finalString packageName
}
try
}
;( ApplicationInfo info =this.getPackageManager().getApplicationInfo(packa geName,0

( if(info ==null
}
No need really to test for null, if the package does not//
exist it will really rise an exception. but in case Google//
changes the API in the future lets be safe and test it//
; return false
{

; return true
{
( catch(Exception ex
}
If we get here only means the Package does not exist//
{

; return false

{

منبع:

http://stackoverflow.com/questions/13445598/lucky-patcher-how-can-i-protect-from-it?answertab=votes#tab-top

mhmf1369
یک شنبه 12 آذر 1396, 12:20 عصر
سلام دوستان بنده راهش رو پیدا کردم بدون نیاز به سرور
شما باید لاکی پچر رو گول بزنید به این صورت که قبل از خرید اصلی یک درخواست با SKU جعلی که توی پنل بازار تعریف نکردید بفرستید حالا اگر پرداخت موفقیت آمیز بود یعنی لاکی پچر نصب هست و داره کار می کنه و اگر نبود یعنی لاکی پچر نصب نیست به همین راحتی

aydin321
پنج شنبه 03 اسفند 1396, 14:11 عصر
آره جواب داد. یعنی در برنامه ای که توسط لاکی پچ شده بود جواب داد. احتمالا در برنامه ای که پچ نشده دیگه حتما جواب بده. باز دوستان تست کنن

فقط جهت اطمینان باید در دستور if موارد بیشتری چک بشه، مثل Payload و INAPP_DATA_SIGNATURE و ...
یعنی قبل از دستور if باید یه همچین چیزی بنویسیم:
Purchase pu = inv.getPurchase(SKU_PREMIUM);
if (pu == null)
mypayload = "";
else
mypayload = pu.getDeveloperPayload();
بعد در دستور if چک کنیم که مقدار payload هم درست باشه.

یه نکته مهم دیگه؛ قبل از ورود به صفحه خریدتون، حتما چک کنید که کاربر در بازار لاگین کرده باشه -هر چند اگه چک نکنید، خود بازار چک می کنه- چون اگه این مساله چک نشه و کاربر در بازار لاگین نکرده باشه این کدی که دوستمون گذاشتن خطا میده
کدش رو هم به نظرم در یکی از پستها دوستان گذاشته بودن

با سلام بله درسته در این صورت با لاکی پچر پچ نمیشه و مشکلی نداره
;(Purchase pur = inventory.getPurchase(SKU_PREMIUM;((mIsPremium = (inventory.hasPurchase(SKU_PREMIUM) && pur.getDeveloperPayload().equals(paylod

jef313
شنبه 13 بهمن 1397, 15:26 عصر
از دوست عزیزمون mrzzrm (http://barnamenevis.org/member.php?147166-mrzzrm) تشکر میکنم، برای اینکه وجودش به من انگیزه داد
اول اینکه من اعتقاد دارم اگر کسی تونسته کاری رو بکنه پس منم میتونم
دوم اینکه سطح فرهنگ ایشون انگیزه داد تا برای بقیه راه رو هموار تر کنم و یک توضیح کوچیک بدم

دوستان استفاده از API بازار به هیچ عنوان سخت نیست، شاید یکم پیچیدگی داشته باشه ولی سخت نیست
من اطلاعاتم از وب و PHP به شدت کمه و اکثر اطلاعاتم رو از آموزش خوب دوست عزیزمون harani (http://barnamenevis.org/member.php?256621-harani) گرفتم ( لینک آموزش (http://barnamenevis.org/showthread.php?457283-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&highlight=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%B3%D8 %B1%D9%88%D8%B1) )

برای اینکه از API بازار بتونید استفاده کنید نیاز به دانش حداقلی از سرور و PHP و متدهای GET و POST و همچنین JSON توی وب سرویس دارید
توی اندروید هم که AsyncTask رو بدونین و نحوه ارتباط با وب سرویس
همین آموزش رو بخونید این اطلاعات رو به دست میارید ( البته باید یکمم سرچ و جستجو بکنید )

به شخصه کار من با یک هاست رایگان و یک فایل php که کلا فکر کنم 20 خط داره درست شد

مستندات بازار خیلی گنگ و خلاصه توضیح داده اما میشه پیاده سازیش کرد

مستندات بازار رو تا جایی که refresh_code بگیرید به صورت دستی ادامه بدید، از اینجا به بعدش رو با سرور گزارش بگیرید
( لینک مستندات (http://pardakht.cafebazaar.ir/doc/developer-api/?l=fa) )

متاسفانه چون اطلاعاتم از وب کمه نمیتونم خوب توضیح بدم یا آموزش کامل و جامعی برای همه بذارم، اما این کد PHP منه که باهاش از بازار گزارش خرید رو میگیرم


<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'کدی که از بازار گرفتین - رفرش کد';

$url = 'http://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'آیدی کلاینت', 'client_secret' => 'رمز کلاینت', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = $jsonResponse['access_token'];

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>

به این فایل سه تا پارامتر باید بفرستید، یکی اسم پکیج، یکی آیدی محصول و دیگری توکنی که بعد از خرید به برنامه داده میشه همون purchase.getOrderId

داخل فایل باید refresh code رو که از بازار به صورت دستی گرفتید بذارید
آیدی کلاینت و رمزش رو هم وارد کنید

در جواب به شما یک رشته JSON داده میشه، اگر خالی بود یعنی پرداخت درست نیست، اگر که شامل استاتوس و سایر مشخصات خرید بود یعنی درسته

پاسخ درست به شکل زیره
{"consumptionState": 1, "purchaseState": 0, "kind": "androidpublisher#inappPurchase", "developerPayload": "hojjat", "purchaseTime": 1424267267085}

پاسخ غلط هم فقط {} فرستاده میشه

در صورتی که access code اشتباه باشه هم ارور 404 میگیرید

دوستمون به جای اینکه بیان از سرور استفاده کنن، دقیقا همین کد PHP رو توی اندروید نوشتن
ولی خب امنیتش زیاد تضمینی نیست، چون شما باید همه اطلاعات رو قرار بدید توی برنامه

دوست داشتم میتونستم کاملتر توضیح بدم، اما دانشم در این حد نیست متاسفانه





تشکر میکنم از شما

ولی یک سوال دارم برای دریافت توکن خرید یا اعتبار خرید کاربر که برنامه را به صورت خرید فروشی دریافت کرده است یعنی قبل از دانلود برنامه پرداخت را انجام داده چگونه باید عمل کنیم ایا کسی راهی میشناسه

دارم یه اپ سفارشی مینویسم که حتما بایستی به صورت فروشی در اختیار کاربر قرار بگیره