درود

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

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

قسمت اول که مربوط به منابع برنامه است مثل فایلها ، عکسها ، دیتابیس ها ، لایه ها ، و سایر فایل های xml . برای بازیابی این موارد از ابزاری به نام apktool استفاده میکنیم.

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

نکته اول: دو برنامه ذکر شده در بالا در فایل زیپ کنار آموزش قرار داره.

نکته دوم : قبل از دانلود jdk ابتدا فیلم آموزش رو ببنید (شاید اصلا لازم نباشه دانلود کنید)

 

 

در صورت نیاز:

دانلود  JDK برای ویندوز های ۳۲ بیتی

دانلود JDK برای ویندوز های ۶۴ بیتی

—————————————————————————-

 

مدت زمان آموزش : ۲۰ دقیقه

حجم کل: ۶۲ مگابایت

رمز فایل فشرده: www.nikandroid.com

قیمت : ۵ هزار تومان

بارگذاری بیشتر مطالب مرتبط
بارگذاری توسط مدیر پوریا انجمنی

۵۷ نظرات

  1. hamid

    آبان ۱۹, ۱۳۹۳ at ۶:۴۰ ب.ظ

    پوریا جان ممنون… فکر کنم به نوعی جواب منم داده باشی با این اموزش

    پاسخ

  2. پزهام

    آبان ۱۹, ۱۳۹۳ at ۷:۲۸ ب.ظ

    میشه سورس کدها رو تو eclipse باز کرد??

    پاسخ

  3. ابی

    آبان ۲۲, ۱۳۹۳ at ۱۰:۰۲ ب.ظ

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

    پاسخ

  4. محمد

    آبان ۲۳, ۱۳۹۳ at ۹:۴۲ ب.ظ

    سلام
    من یک مشکلی دارم اونم این که هروقت می خوام با findViewById ابجکتی رو تعریف کنم هر وقت R.id رومی زنم نام شی رو نمیاره.

    پاسخ

    • مدیر-پوریا انجمنی

      آبان ۲۵, ۱۳۹۳ at ۷:۳۰ ب.ظ

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

      پاسخ

      • نظام طاهری

        آذر ۲, ۱۳۹۳ at ۱:۴۸ ب.ظ

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

        پاسخ

  5. ابی

    آبان ۲۷, ۱۳۹۳ at ۵:۳۸ ب.ظ

    سلا با استفاده از این اوزش به فایل های جاوای داخل پکیج نیز درسترسی خواهیم داشت مثل فایل های اکتیویتی یا فقط به پوشه resدسترسی داریم

    پاسخ

    • مدیر-پوریا انجمنی

      آبان ۲۷, ۱۳۹۳ at ۷:۲۳ ب.ظ

      سلام
      به همه چیز دسترسی پیدا میکنید
      فایل های جاوا ، تصاویر ، لایه ها ، منابع ، دیتابیس و ….

      پاسخ

  6. سامان

    آذر ۱۰, ۱۳۹۳ at ۹:۰۳ ب.ظ

    با عرض سلام و خسته نباشید و تشکر از آموزش های خوبتون
    لطفاً آموزش های کار با pro gurd و dex gurd جهت ایمن کردن برنامه در مقابل دیکد شدن رو هم بگذارید.
    تشکر.

    پاسخ

    • مدیر-پوریا انجمنی

      آذر ۱۱, ۱۳۹۳ at ۲:۵۹ ب.ظ

      سلام
      ممنون از لطفتون. چشم حتما جز سرفصلهای آموزشیمون قرار میدیم.

      پاسخ

      • سامان

        آذر ۱۱, ۱۳۹۳ at ۳:۵۳ ب.ظ

        تشکر، منتظر هستیم.

        پاسخ

  7. majid

    بهمن ۱۳, ۱۳۹۳ at ۵:۵۰ ب.ظ

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

    پاسخ

  8. مجید

    بهمن ۱۴, ۱۳۹۳ at ۵:۲۱ ب.ظ

    اقای انجمنی پس چطور دانلود کنیم اینکه همون قیمته
    جایی برای کد تخفیف ندارد؟

    پاسخ

  9. محمد

    فروردین ۱۱, ۱۳۹۴ at ۱۱:۱۸ ق.ظ

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

    پاسخ

    • مدیر-پوریا انجمنی

      فروردین ۱۲, ۱۳۹۴ at ۱۲:۴۰ ب.ظ

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

      پاسخ

  10. نوید

    فروردین ۲۲, ۱۳۹۴ at ۷:۳۲ ب.ظ

    سلام
    میشه یعنی اون برنامه هارو دقیقا مثل سورس کد توی اکلیپس بالا بیاریم؟

    پاسخ

  11. fable

    فروردین ۲۸, ۱۳۹۴ at ۱۲:۱۶ ب.ظ

    سلام من هرکاری میکنم نمیشه اون path درست کرد تو سیستم من قبلش با آدرس پوشه کارت گرافیک شروع شده میشه لطف کنید آدرس کامل path اینجا بنویسید!خیلی ممنون

    پاسخ

    • مدیر پوریا انجمنی

      فروردین ۳۰, ۱۳۹۴ at ۴:۴۴ ب.ظ

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

      پاسخ

  12. fable

    فروردین ۲۸, ۱۳۹۴ at ۱۲:۵۹ ب.ظ

    اونو درست کردم اما در مرحله دیکامپایل کرذن s6.dex این پیغام میده
    C:\ZAPK\dex2jar>d2j-dex2jar.bat s6.dex
    Error occurred during initialization of VM
    Could not reserve enough space for object
    Could not create the Java virtual machine.

    مشکل از کجاست؟؟!!؟؟

    پاسخ

    • مدیر پوریا انجمنی

      فروردین ۳۰, ۱۳۹۴ at ۴:۳۸ ب.ظ

      مشکل شما از کتابخونه های جاوای .
      اخرین نسخه جاوا رو دانلود و نصب کنید

      پاسخ

      • حمزه

        فروردین ۳۱, ۱۳۹۴ at ۸:۵۱ ق.ظ

        آخرین نسخه کتاب خانه ی جاوا را هم نصب کردم اما نشد!!! بعدش ویندوز عوض کردم به ۸٫۱ pro کلا درست شد و بدون هیچ مشکلی داره کارمیکنه

        پاسخ

  13. fable

    اردیبهشت ۱, ۱۳۹۴ at ۸:۵۸ ق.ظ

    آقای انجمنی بعد ریسورس کردن چطوری بفهمم به کدوم برنامه نوشته شده(eclipse یا bs4)؟؟؟

    پاسخ

    • مدیر پوریا انجمنی

      اردیبهشت ۱, ۱۳۹۴ at ۱۰:۰۶ ق.ظ

      سلام
      بعد از دیکد، کدها بهتون نشون داده میشه. زبان جاوا و زبان ویژال بیسیک به راحتی از هم تشخیص داده میشن

      پاسخ

      • fable

        اردیبهشت ۱, ۱۳۹۴ at ۱۱:۳۸ ق.ظ

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

        پاسخ

        • مدیر پوریا انجمنی

          اردیبهشت ۲, ۱۳۹۴ at ۵:۴۵ ب.ظ

          ببینیدخیلی از برنامه ها با الگوریتمهایی تونستن جلوی این روش دیکد کردن رو بگیرن. شما نباید انتظار داشته باشید همه برنامه ها بدون مشکل دیکد بشن. همیشه مهندسی معکوس ۱۰۰ درصد کار نمیکنه.

          پاسخ

  14. کیمیا قاسمی

    اردیبهشت ۸, ۱۳۹۴ at ۵:۱۲ ب.ظ

    ایا میشه با این روش سورس برنامه ها رو در eclipse پیاده کرد
    و ایا میشه یه فایلapkرو به eclipse داد

    پاسخ

    • مدیر پوریا انجمنی

      اردیبهشت ۹, ۱۳۹۴ at ۱۰:۵۲ ق.ظ

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

      پاسخ

  15. ارش رضا پور

    اردیبهشت ۸, ۱۳۹۴ at ۶:۰۱ ب.ظ

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

    پاسخ

    • مدیر پوریا انجمنی

      اردیبهشت ۹, ۱۳۹۴ at ۱۰:۵۴ ق.ظ

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

      پاسخ

      • مجتبی

        مرداد ۱۵, ۱۳۹۴ at ۵:۴۱ ب.ظ

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

        پاسخ

  16. ارش رضا پور

    اردیبهشت ۸, ۱۳۹۴ at ۶:۰۷ ب.ظ

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

    پاسخ

  17. مدیر پوریا انجمنی

    شهریور ۱۷, ۱۳۹۴ at ۱۰:۳۸ ق.ظ

    سلام
    برای بعضی از برنامه ها که در زمان کامپایل مبهم سازی نشده باشن بله میشه

    پاسخ

  18. mrb

    دی ۱۴, ۱۳۹۴ at ۵:۰۸ ب.ظ

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

    پاسخ

    • مدیر رجبیان

      دی ۱۶, ۱۳۹۴ at ۱:۱۲ ب.ظ

      سلام
      شما با این روش فقط میتونین سورس رو ببینین و تمیتونین تغییری ایجاد کنین

      پاسخ

  19. محمد

    دی ۲۹, ۱۳۹۴ at ۷:۴۸ ب.ظ

    با سلام
    یه سوال اینکه برنامه های نوشته شده در اکلیپس و اندروید استدیو،چه تفاوتی تو دیکد کردن دارن؟

    پاسخ

    • مدیر رجبیان

      دی ۳۰, ۱۳۹۴ at ۱:۰۵ ب.ظ

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

      پاسخ

  20. احسان

    بهمن ۲۸, ۱۳۹۴ at ۱۰:۲۶ ق.ظ

    وقتی دستور رو مینویسم و اینتر میزنم این ارور برای من ظاهر میشه مشکل از کجاست؟
    لینک عکس >>> http://rozup.ir/view/1279999/error.png

    پاسخ

    • مدیر فنی

      اسفند ۱, ۱۳۹۴ at ۱:۴۲ ب.ظ

      سلام jre و jdk رو آپدیت کنید

      پاسخ

  21. محمد

    بهمن ۲۹, ۱۳۹۴ at ۹:۲۹ ب.ظ

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

    پاسخ

    • مدیر فنی

      اسفند ۱, ۱۳۹۴ at ۱۲:۲۲ ب.ظ

      سلام فقط کدهای اصلی برنامه استخراج میشن

      پاسخ

  22. امیر

    اسفند ۱۰, ۱۳۹۴ at ۱۰:۲۷ ب.ظ

    سلام و عرض خسته نباشید
    ما حالا یه برنامه رو دیکامبایل کردیم و تمام سورس کدشم استخراج کردیم
    سوال من این هست که ما از کجا باید بدونیم که کدها مربوط به کدام بخش از نرم افزار هست
    من قبلا با نرم افزار Androchef ;کدهای مربوط به java رو استخراج کرده بودم ولی انقدر تعداد کلاس ها زیاد بود که نمیدونستم کدام کدها مربوط به کدام بخش از نرم افزار هستند
    حالا سوالم اینه چطور باید اون کدارو تشخیص بدیم
    ایا راه حل یا اموزشی درباره این موضوع دادید؟

    پاسخ

    • مدیر فنی

      اسفند ۱۲, ۱۳۹۴ at ۱۲:۱۷ ب.ظ

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

      پاسخ

  23. رضا

    فروردین ۹, ۱۳۹۵ at ۴:۴۶ ب.ظ

    سلام بنده با این روش خواستم یکی از برنامه های خودم رو دیکد کنم ولی خطای زیر رو داد:
    Error: Unable to access jarfile apktool.jar.
    من مسیر jdk رو هم مشخص کردم ولی باز هم همین خطا رو میده لطفا بگین چیکار کنم با تشکر

    پاسخ

    • مدیر فنی

      فروردین ۱۰, ۱۳۹۵ at ۹:۴۳ ق.ظ

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

      پاسخ

  24. سروش

    فروردین ۱۲, ۱۳۹۵ at ۲:۵۸ ق.ظ

    سلام ببخشید من طبق آموزش پیش رفتم ولی این ارور رو میده
    http://s7.picofile.com/file/8245294926/scrin.png
    البته وقتی ارور میده پوشه هم میسازه با اسم فایل apk اما اصلا شبیه فولدر توی آموزش نیست! داخل پوشه ای که هم اسم ای پی کی هست یه فولدر به اسم smali وجود داره و فرمت تمام فایلاشم smali هست!باید چیکار کنم؟!

    پاسخ

  25. alireza

    مهر ۴, ۱۳۹۵ at ۷:۲۳ ب.ظ

    سلام ، می تونم بسته آموزشی رو حضوری بخرم؟؟

    پاسخ

    • مدیر فنی

      مهر ۵, ۱۳۹۵ at ۹:۰۲ ق.ظ

      بله آدرس شرکت خراسان جنوبی بیرجند مدرس ۱۷ پلاک ۵ هست

      پاسخ

  26. mahdi3751

    مهر ۱۴, ۱۳۹۵ at ۱۰:۵۹ ق.ظ

    سلام
    من برنامه ای رو که با اندروید استودیو نوشتم ، نتونستم که دیکد کنم ولی برنامه رو که با ایکلیپس نوشته بودم تونستم که دیکد کنم . آیا مشکل از کار من است یا کلا برنامه های نوشته شده توسط اندوید استودیو دیکد نمیشن ؟؟؟

    پاسخ

    • مدیر پوریا انجمنی

      مهر ۱۹, ۱۳۹۵ at ۱۰:۰۷ ق.ظ

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

      پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.

3 + یک =