انجمن یوسی ایران

| |

انجمن تخصصی موبایل - انجمن یوسی ایران

 گذرواژه خود را فراموش کرده اید؟
 Register
دیدن: 1868|پاسخ: 17

[ ترفند ] بخش دوم-آموزش تخصصی کرک برنامه های اندروید

[کپی کردن لینک]
  United States
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
زمان پست: 16-12-20 13:49:45
| نمایش تمام پست ها |حالت خوانده شده
ویرایش  Shoghi در 16-12-20 12:54

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

تو این جلسه میخوام راجع به هش کدها(hash code)بحث کنم.

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

UCm14YKHandlerUI.apk

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



اینبار این کد رو جستجو کنید

Landroid/content/pm/Signature;->hashCode()I

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



روی اولین نتیجه جستجو کلیک کنید تا کد رو باهم بررسی کنیم
تو قسمت
new-instance
یه نمونه جدید از امضا ساخته میشه و مقدار
N
بهش اختصاص داده میشه.یعنی به زبان جاوا اینطوری میشه
(new Signature(N



حالا این n چیه؟
ان یه متغیر از نوع داده بایت هست که همون امضایی که ما تو جلسات قبل بدست آوردیم توسط
ykhandler
تبدیل به بایت شده.کد رو ببینید



البته این کد خیلی طولانیه من فقط از اولش عکس گرفتم حدودا ۱۲۰۰ سطر میشه.
این بایت کدها خروجیه این کد هستن

Landroid/content/pm/Signature;->toByteArray()[B


یعنی وقتی امضا از حالت رشته به بایت تبدیل میشه یه همچین چیزی میشه.
مثلا حالت تبدیل شده رشته
30820
به این شکل میشه

    0x33t --->3
    0x30t --->0
    0x38t --->8
    0x32t --->2
    0x30t --->0

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

توجه:این قسمت مربوط به کرک یوسی نیست
اگه یادتون باشه تو جلسه قبل گفتم یکی از سه راه خوندن کد امضا توسط برنامه این کده
Landroid/content/pm/Signature;->toByteArray()[B
به حرف B انتهای کد توجه کنید
این یعنی اینکه خروجی این کد از نوع داده
Byte
هست.این کد تو اکثر برنامه ها استفاده میشه
ما اگه بخوایم یه همچین کدی بنویسم خیلی وقت گیره کی حوصله داره ۱۲۰۰ سطر بایت کد بنویسه؟
یه راه ساده وجود داره که تو جاهای دیگه هم شاید به درد دوستان بخوره.
امضایی که تو مرحله قبل به حالت رشته کپی کردیمو باید اول به صورت هکس کد(spaced) یا (dashed) دربیاریم بعد توسط تکنیکهای
Regular expression
به صورت کد بالا دربیاریم.به این شکل توجه کنید



میدونم چیزی متوجه نشدین چون این حالت زیاد کاربردی نیست ازش صرف نظر میکنم اگه کسی توضیح بیشتر خواست پیام شخصی بده.بخوام آموزش بدم بحث طولانی میشه فقط همین قدر بدونید تنها برنامه ای که تو اندروید کدهای
Regular expression
رو به صورت کامل ساپورت میکنه فقط تکست ادیتور
Mt file manager
هست.هیچ برنامه ای به کاملی این نیست همه رو تست کردم.
خب برگردیم سر آموزش این بایتها داخل متغیر n ذخیره میشن بعد به امضا اضافه میشن.تو این قسمت کد هم امضای اصلی برنامه تو متغیر Q ذخیره میشه امضایی که از
packege info
به دست اومده.
به شکل توجه کنید



حالا مقدار هش کد این دو متغیر باهم مقایسه میشن.یکی هش کد امضای اصلی یکی هم هش کد امضای اصلی که به صورت بایت دراومده منظور همون متغیر ان.



عبارت
if-eq v0, v1, :cond_47
که تو شکل مشخص کردم دو ریجستر  v0 و v1 رو باهم مقایسه میکنه
if-eq
یعنی برابر است
equal with
با عملگر
==
خونده میشه.
اگه مقدارها باهم برابر بودن بقیه کد اجرا میشه اگه برابر نبود شرط
cond_47
اجرا میشه.یعنی اینجا



خب حالا ما باید کاری کنیم که این مقدارها مساوی باشن چون موقع ساین امضا عوض میشه عبارت شرطی if مقدار false رو برمیگردونه.
به آخر این کد توجه کنید
Landroid/content/pm/Signature;->hashCode()I
نوشته I یعنی مقدار خروجی این عبارت از نوع داده
Integer
یا عدد صحیح هست.یعنی ما باید امضا رو به هش کد تبدیل کنیم.حالا هش کد چیه و از کجا بدستش بیاریم؟؟
هش کد یه عدد دسیمال بر مبنای ‌۱۰ هست که بیشترین مقداری که فایل اسمالی میتونه تو خودش نگه داره عدد
0x7fffffff
هست.برای محاسبه این مقدار از امضای فایل apk حتما باید از پی سی استفاده کنیم.من برای گوشی برنامه ای پیدا نکردم که بتونه اینکار رو بکنه.این فایل رو دانلود کنید توضیحات هم به فایل ضمیمه شده.
فقط برای اجرا نیاز به محیط cmd ویندوز و جاوا ران تایم هست خیلی ساده و کم حجمه.

ApkVer.jar.zip

به اسکرین شات توجه کنید



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

ولی معمولا اعداد بزرگتر نیست.
عدد محاسبه شده برای من
0xca2da
هست.حالا خیلی ساده یه متغیر از نوع ثابت ایجاد میکنیم بعد این عدد رو به کدمون اضافه کنیم به این صورت
const v0, 0xca2da
به شکل توجه کنید



حالا اگه یه مقدار پایینتر بیاید دوباره دو تا از این کد وجود داره
Landroid/content/pm/Signature;->hashCode()I
دوباره اینجا امضای اصلی برنامه با که متغیر Q مشخص شده با امضای برگشت داده شده از تابع
()q
مقایسه میشه.تابع
()q
خیلی حرفه ای کار شده.یه فایل به اسم c
تو مسیر
assets/c
وجود داره که به طور حرفه ای رمزگذاری شده تابع q طبق الگوریتمی که براش تعریف شده این فایلو میخونه بعد مقدار هش به دست اومده با مقدار هش اصلی امضای برنامه مقایسه میشه.
در واقع این فایل همون امضای اصلیه برنامه ست که به این شکل دراومده ولی کدینگش  نامشخصه.
دوباره مثل مرحله قبل کد هش خودمون رو اضافه میکنیم.





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

CatLog.apk

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



همونطور که میبینید مسیر خطا رو مشخص کرده چون من عمدا یادم رفت مقدار هش کد این مسیر رو هم تغییر بدم
com/uc/browser/ir.smali
برنامه خطا میداد.
حالا این کلاسم مثل مراحل قبل میتونید مقدار هش کد بدید یا یه کار دیگه هم میشه کرد.به این قسمت از کد توجه کنید
if-eq v2, v3, :cond_4f
اگه ما شناسه دو تا ریجستر رو یکی کنیم مقدار برگشت داده شده همیشه برابر با true خواهد بود.
به عبارت دیگه مقایسه یه ریجیستر با خودش همیشه مقدار درست رو برمیگردونه.مثل این معادله ساده
1==1
پس کد ما این شکلی میشه
if-eq v2, v2, :cond_4f
یا اینطوری
if-eq v3, v3, :cond_4f
دیگه نیازی هم به مقدار هش نیست.
مراحل قبلی رو هم میتونید به این شکل امتحان کنید.
حتی چون اینجا از ما یه مقدار عدد صحیح میخواد حتما لازم نیست مقدار هش محاسبه شده درست باشه مهم برابر بودن این اعداده یه عدد چرت هم بزنید ولی دو تا عدد برابر باشه برنامه باز کار میکنه عدد درست زمانی به درد میخوره که مقدار هش فقط یه بار با مقدار اصلی امضا مقایسه بشه.امیدوارم متوجه شده باشین.



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

UCm14YKHandlerUI Cracked By Shoghi.apk

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

موفق باشین

Shoghi Education Centre

امتیاز دادن

Number of participants 2سکه +10 پول +70 Collapse دلیل
alieffe + 10 + 20 فدایی داری دادا :)
000 + 50 ULTRA

دیدن لاگ امتیاز

لیست اعضایی که تشکر کرده اند

tanha0914(16-12-21 02:06)  MASTER GOLD(16-12-20 16:33)  
  Europe
  • تشکر شده 211 بار
  • تشکر کرده 51 بار
زمان پست: 16-12-20 14:25:46 از گوشی موبایل
| نمایش تمام پست ها
دمتﮕرم داش حسين،يه آموزش هم راجبه برنامه هايي بزار كه به اجبار بايد از Google play نصب بشن،مثل Cloud V.P.N كه وصل نميشد و حتما بايد از Google play نصب ميشد،يا APK Editor Pro كه وقتي از Google Play نصب نميشه،يه توست نشون ميده كه نوشته

Please install it from google play

به نظرم يه كديه تو اكتيويتي Main كه تو متود onCreate كه زمان اجرا بررسي ميكنه كه برنامه از Google play نصب شده يا نه،من خودم ساين ش رو كرك كردم،توست ش رو هم برداشتم،ولي ظاهرا اون كد كه بررسي ميكنه كه از Google play نصب شده يا نه،اون هم بايد حذفش كرد،آخه موقع اجرا 2-3 ثانيه بعدش بدون ارور خارج ميشه،يا مثلا وارد ويرايش كردن ميشه،دوباره بعد 2-3 ثانيه مياد رو اكتيويتي Main بعدش كلا خارج ميشه،هرﭼي هم تو نت سرﭼ زدم نفهميدم كه اون كد ﭼيه

لیست اعضایی که تشکر کرده اند

Shoghi(16-12-21 04:51)  MASTER GOLD(16-12-20 16:33)  
  Europe
  • تشکر شده 76 بار
  • تشکر کرده 2 بار
زمان پست: 16-12-20 14:28:57 از گوشی موبایل
| نمایش تمام پست ها
داش ممنون
مثل همیشه عالی بود

لیست اعضایی که تشکر کرده اند

Shoghi(16-12-21 04:51)  
  United States
  • تشکر شده 8 بار
  • تشکر کرده 9 بار
زمان پست: 16-12-20 16:18:12 از گوشی موبایل
| نمایش تمام پست ها
سلام خسته نباشی یک پیشنهاد: اگه ممکنه  همه این آموزش ها را یک کتاب کن تا ماندگار وهمیشه قابل دسترس باشه

لیست اعضایی که تشکر کرده اند

Shoghi(16-12-21 04:52)  
  Norway
  • تشکر شده 121 بار
  • تشکر کرده 107 بار
زمان پست: 16-12-20 16:26:01 از گوشی موبایل
| نمایش تمام پست ها
خسته نباشید,فوق العاده بود ...

میشه از این به بعد روی فایل های ناتیوه .SO کار کنی تا راهی برای برداشتن محدودیتش پیدا کنی شاید تونستم اپرا مینی ناتیوه رو نامحدود کنم و مشکل ورود به سایت های https رو برطرف کنم اونوقت دیگه اپرا اصله !!!

لیست اعضایی که تشکر کرده اند

Shoghi(16-12-21 04:52)  
  Europe
  • تشکر شده 211 بار
  • تشکر کرده 51 بار
زمان پست: 16-12-20 17:15:54 از گوشی موبایل
| نمایش تمام پست ها
MASTER GOLD 16-12-20 15:26
خسته نباشید,فوق العاده بود ...

میشه از این به بعد روی فای ...

بدون PC اصلا نميشه،دوما هروقت نسخه هاي زير 8 رو تونستي نامحدود كن)حداقل ش اينه كه با جاوا فقط نوشته شده(،اين فايل so هم كه با C/C++ نوشته شده و بلد نباشي نميشه كاري كرد و خلاصه سخت تر از اين حرفاس،نهايتا بشه با برداشتن محدوديت يه فرونت توش ﮕذاشت و اينطوري نامحدود و مشكل HTTPS رو حل كرد

لیست اعضایی که تشکر کرده اند

MASTER GOLD(16-12-21 09:00)  
  Europe
  • تشکر شده 34 بار
  • تشکر کرده 0 بار
زمان پست: 16-12-20 22:03:09 از گوشی موبایل
| نمایش تمام پست ها
تشکر حسین جان یه سری برنامه های درون پرداخت کلا هک نمیشن لطفا اموزش هکشون رو بذار دمت گرم دوست عزیزم

لیست اعضایی که تشکر کرده اند

Shoghi(16-12-21 04:51)  
  Europe
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
 نویسنده| زمان پست: 16-12-21 04:45:41 از گوشی موبایل
| نمایش تمام پست ها
Mahdi_Hack 16-12-20 13:25
دمتﮕرم داش حسين،يه آموزش هم راجبه برنامه هايي بزار كه ب ...

قربونت داداش تو بخش سوم توضیح دادم ولی باز چک میکنم
  Europe
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
 نویسنده| زمان پست: 16-12-21 04:47:11 از گوشی موبایل
| نمایش تمام پست ها
hassanhg 16-12-20 15:18
سلام خسته نباشی یک پیشنهاد: اگه ممکنه  همه این آموزش ها  ...

سلام.تشکر واسه کتاب نیاز به پی سی درست و حسابی هست که من ندارم متاسفانه
  Europe
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
 نویسنده| زمان پست: 16-12-21 04:48:03 از گوشی موبایل
| نمایش تمام پست ها
MASTER GOLD 16-12-20 15:26
خسته نباشید,فوق العاده بود ...

میشه از این به بعد روی فای ...

مرررسی.تو بخش سوم توضیح دادم

لیست اعضایی که تشکر کرده اند

MASTER GOLD(16-12-21 09:02)  
  Europe
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
 نویسنده| زمان پست: 16-12-21 04:50:14 از گوشی موبایل
| نمایش تمام پست ها
ahoura 16-12-20 21:03
تشکر حسین جان یه سری برنامه های درون پرداخت کلا هک نمیشن لطفا اموزش هکشون رو بذار دمت گرم دوست عزیزم

تا حالا رو اینجور برنامه ها کار نکردم نمیدونم طرز کارشون چه شکلیه همونطور که اول تاپیک گفتم هنوز اطلاعاتم ناقصه فعلا در حد امضا بلدم
  Europe
  • تشکر شده 82 بار
  • تشکر کرده 145 بار
 نویسنده| زمان پست: 16-12-21 04:50:43 از گوشی موبایل
| نمایش تمام پست ها
سپاس ویژه از همه دوستان
  Europe
  • تشکر شده 34 بار
  • تشکر کرده 0 بار
زمان پست: 16-12-21 23:52:35 از گوشی موبایل
| نمایش تمام پست ها
Shoghi 16-12-21 03:50
تا حالا رو اینجور برنامه ها کار نکردم نمیدونم طرز کارش ...

اپرا مینی هات عالی هستن میشه بدون فرونت محدودیت دانلود از سایتهای شیلتر رو برداشت؟
You have to log in before you can reply ورود | Register

قوانین امتیازات

QQ|موبایل|آرشیو|اخراجی ها|انجمن تخصصی موبایل - انجمن یوسی ایران

17-09-22 12:26 GMT+4.5 , Processed in 0.108168 sec., 65 queries .

Powered by Discuz! X3

Release 20130801, © 2001-2017 Comsenz Inc.

All rights reserved for UCIRAN Forums © 2013-2017

پاسخ سریع به بالا بازگشت به لیست