درود
در این جلسه آموزشی ما به نحوه دیکد برنامه های اندرویدی میپردازیم. دیکد یک برنامه به معنای باز کردن یک برنامه و دسترسی به منابع و کدهای آن برنامه میباشد. حتما پیش اومده که در بعضی برنامه ها ابزار یا روشی رو میبینید که دوست دارید توی برنامه خودتون از اون ابزار یا روش استفاده کنید ولی هیچ اظلاعاتی از نحوه برنامه نویسی و ساخت اون ندارید اینجاست که میتونید با دیکد کردن اون برنامه محتوا ، منابع و کدهای برنامه رو مشاهده کنید و ستفاده کنید.
یک برنامه از دو قسمت اصلی تشکیل شده است:
قسمت اول که مربوط به منابع برنامه است مثل فایلها ، عکسها ، دیتابیس ها ، لایه ها ، و سایر فایل های xml . برای بازیابی این موارد از ابزاری به نام apktool استفاده میکنیم.
قسمت دوم مربوط به سورس برنامه ، کدها و کلاسهای برنامه است. برای بازیابی این قسمت نیز از برنامه dex2jar استفاده میکنیم.
نکته اول: دو برنامه ذکر شده در بالا در فایل زیپ کنار آموزش قرار داره.
نکته دوم : قبل از دانلود jdk ابتدا فیلم آموزش رو ببنید (شاید اصلا لازم نباشه دانلود کنید)
در صورت نیاز:
دانلود JDK برای ویندوز های ۳۲ بیتی
دانلود JDK برای ویندوز های ۶۴ بیتی
—————————————————————————-
hamid
آبان ۱۹, ۱۳۹۳ at ۶:۴۰ ب.ظ
پوریا جان ممنون… فکر کنم به نوعی جواب منم داده باشی با این اموزش
پزهام
آبان ۱۹, ۱۳۹۳ at ۷:۲۸ ب.ظ
میشه سورس کدها رو تو eclipse باز کرد??
مدیر-پوریا انجمنی
آبان ۲۰, ۱۳۹۳ at ۹:۰۷ ق.ظ
خیر فقط میتونید کدها رو ببینید.
ابی
آبان ۲۲, ۱۳۹۳ at ۱۰:۰۲ ب.ظ
سلام اقای انجمنی
تخفیفات اینده کی شروع میشه
مدیر-پوریا انجمنی
آبان ۲۳, ۱۳۹۳ at ۱:۳۹ ب.ظ
انشالا برای ولادت امام موسی کاظم ع میزاریم.
ابی
آبان ۲۳, ۱۳۹۳ at ۵:۰۸ ب.ظ
ان شاءالله منتظریم
محمد
آبان ۲۳, ۱۳۹۳ at ۹:۴۲ ب.ظ
سلام
من یک مشکلی دارم اونم این که هروقت می خوام با findViewById ابجکتی رو تعریف کنم هر وقت R.id رومی زنم نام شی رو نمیاره.
مدیر-پوریا انجمنی
آبان ۲۵, ۱۳۹۳ at ۷:۳۰ ب.ظ
سلام
به احتمال زیاد فایل R ساخته نشده. یکبار دیگه پروژه جدید ایجاد کنید . اگه باز هم فایل R ساخته نشد یعنی ADT ناقص نصب شده
نظام طاهری
آذر ۲, ۱۳۹۳ at ۱:۴۸ ب.ظ
به نظر من ایشون وقتی کنترلری روی صفحه قرار میدهند ذخیره نمی کنند و سریع سراغ کدنویسی میروند. دوست عزیز ابتدا SaveAll کنید سپس کد بنویسید.
ابی
آبان ۲۷, ۱۳۹۳ at ۵:۳۸ ب.ظ
سلا با استفاده از این اوزش به فایل های جاوای داخل پکیج نیز درسترسی خواهیم داشت مثل فایل های اکتیویتی یا فقط به پوشه resدسترسی داریم
مدیر-پوریا انجمنی
آبان ۲۷, ۱۳۹۳ at ۷:۲۳ ب.ظ
سلام
به همه چیز دسترسی پیدا میکنید
فایل های جاوا ، تصاویر ، لایه ها ، منابع ، دیتابیس و ….
سامان
آذر ۱۰, ۱۳۹۳ at ۹:۰۳ ب.ظ
با عرض سلام و خسته نباشید و تشکر از آموزش های خوبتون
لطفاً آموزش های کار با pro gurd و dex gurd جهت ایمن کردن برنامه در مقابل دیکد شدن رو هم بگذارید.
تشکر.
مدیر-پوریا انجمنی
آذر ۱۱, ۱۳۹۳ at ۲:۵۹ ب.ظ
سلام
ممنون از لطفتون. چشم حتما جز سرفصلهای آموزشیمون قرار میدیم.
سامان
آذر ۱۱, ۱۳۹۳ at ۳:۵۳ ب.ظ
تشکر، منتظر هستیم.
majid
بهمن ۱۳, ۱۳۹۳ at ۵:۵۰ ب.ظ
سلام ببخشید تمام محصولات سایت باتخفیف ۵۰درصد شامل آموزش دیکد نمیشه ؟
مدیر-پوریا انجمنی
بهمن ۱۳, ۱۳۹۳ at ۸:۰۵ ب.ظ
سلام
بله آموزش دیکد نیز در پکیج تخفیفی دهه فجر موجود میباشد.
مجید
بهمن ۱۴, ۱۳۹۳ at ۵:۲۱ ب.ظ
اقای انجمنی پس چطور دانلود کنیم اینکه همون قیمته
جایی برای کد تخفیف ندارد؟
مدیر-پوریا انجمنی
بهمن ۱۵, ۱۳۹۳ at ۵:۳۹ ب.ظ
از لینک زیر میتونید با ۶۰ درصد تخفیف دریافت کنید
http://nikandroid.com/%d8%af%d9%87%d9%87-%d9%81%d8%ac%d8%b1-%da%af%d8%b1%d8%a7%d9%85%db%8c-%d8%a8%d8%a7%d8%af-%d8%aa%d8%a7-60-%d8%af%d8%b1%d8%b5%d8%af-%d8%aa%d8%ae%d9%81%db%8c%d9%81-%d8%a8%d8%b1%d8%a7%db%8c-%d9%87%d9%85/
محمد
فروردین ۱۱, ۱۳۹۴ at ۱۱:۱۸ ق.ظ
سلام خسته نباشید برنامه واموزش فوق العاده بود ممنون دستتون درد نکنه میخواستم بدونم ایا میشه یه برنامه ی کاربردی مثلا سنتور رو دیکد کنم وایا اون برنامه هم با اکلیپس ساخته شده؟؟؟
مدیر-پوریا انجمنی
فروردین ۱۲, ۱۳۹۴ at ۱۲:۴۰ ب.ظ
سلام
والا برنامهای که میگید رو من ندیدم و اطلاعی از نحوه ساختش ندارم
نوید
فروردین ۲۲, ۱۳۹۴ at ۷:۳۲ ب.ظ
سلام
میشه یعنی اون برنامه هارو دقیقا مثل سورس کد توی اکلیپس بالا بیاریم؟
مدیر پوریا انجمنی
فروردین ۲۳, ۱۳۹۴ at ۴:۳۹ ب.ظ
سلام
نه ولی میتونید کدها رو ببینید و دستی بیاریدشون تو پروژتون
fable
فروردین ۲۸, ۱۳۹۴ at ۱۲:۱۶ ب.ظ
سلام من هرکاری میکنم نمیشه اون path درست کرد تو سیستم من قبلش با آدرس پوشه کارت گرافیک شروع شده میشه لطف کنید آدرس کامل path اینجا بنویسید!خیلی ممنون
مدیر پوریا انجمنی
فروردین ۳۰, ۱۳۹۴ at ۴:۴۴ ب.ظ
اون ادرس توی هر سیستم فرق میکنه. موارد رو به ریشه یکی از درایو ها انتقال بدید سپس اقدام به انجام عملیات دیکد کنید.
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 کلا درست شد و بدون هیچ مشکلی داره کارمیکنه
fable
اردیبهشت ۱, ۱۳۹۴ at ۸:۵۸ ق.ظ
آقای انجمنی بعد ریسورس کردن چطوری بفهمم به کدوم برنامه نوشته شده(eclipse یا bs4)؟؟؟
مدیر پوریا انجمنی
اردیبهشت ۱, ۱۳۹۴ at ۱۰:۰۶ ق.ظ
سلام
بعد از دیکد، کدها بهتون نشون داده میشه. زبان جاوا و زبان ویژال بیسیک به راحتی از هم تشخیص داده میشن
fable
اردیبهشت ۱, ۱۳۹۴ at ۱۱:۳۸ ق.ظ
خیلی ممنون و سوال دیگه من یه برنامه را دیکد کردم اما متن های برنامه نیست و فایلهایی هستن با پسوند file فکر کنم اونا متن های برنامه باشن و با هیچ برنامه ای باز نمیشن چطوری به مطالبش دسترسی پیدا کنم؟؟خیل نیاز دارم
مدیر پوریا انجمنی
اردیبهشت ۲, ۱۳۹۴ at ۵:۴۵ ب.ظ
ببینیدخیلی از برنامه ها با الگوریتمهایی تونستن جلوی این روش دیکد کردن رو بگیرن. شما نباید انتظار داشته باشید همه برنامه ها بدون مشکل دیکد بشن. همیشه مهندسی معکوس ۱۰۰ درصد کار نمیکنه.
کیمیا قاسمی
اردیبهشت ۸, ۱۳۹۴ at ۵:۱۲ ب.ظ
ایا میشه با این روش سورس برنامه ها رو در eclipse پیاده کرد
و ایا میشه یه فایلapkرو به eclipse داد
مدیر پوریا انجمنی
اردیبهشت ۹, ۱۳۹۴ at ۱۰:۵۲ ق.ظ
خیر. شما با این آموزش فقط میتونید کدها رو ببینید و در برنامتون استفاده کنید. نمیتونید مستقیما برنامه رو تبدیل به سورس کنید و در ایکلیپس ایمپورت کنید
ارش رضا پور
اردیبهشت ۸, ۱۳۹۴ at ۶:۰۱ ب.ظ
سلام
من تمام مراحلو با موفقیت رفتم اما یه سوال بحث برانگیز
یه نرم افزاری که اخبارشو کاربرا بهش میدن رو
منابع و کد ها شو دارم
اگه در نرم افزار خودم استفاده کنم نیازی به تغیر در کد نیست ،یکی خبر برام بفرسته واسه سرور اونا ارسال بشه چون مال اوناس
شما نگفتید این موردو منتظر بودم که در اموزش بگید
استاد لطفا راهنمایی کنید چطور از اون کد جاوا که به دست اوردم استفاده کنم
اون ماژول ارسال خبر بود که میخوام تو برنامه خودم استفاده کنم ترسم از اینه که کاربرای من اخبار بفرستن اما به منبع سازنده ارسال بشه
مدیر پوریا انجمنی
اردیبهشت ۹, ۱۳۹۴ at ۱۰:۵۴ ق.ظ
سلام
ببینید خودتون باید کد رو ببنید . اگه جایی ادرس دهی شده باشه به مسیر خاصی رو اینترنت خوب اون مسیر رو باید تغییر بدید.
مجتبی
مرداد ۱۵, ۱۳۹۴ at ۵:۴۱ ب.ظ
سلام ببخشید این فیلم نحوه ریکامپایل کردن فایل های بعد ویرایش رو هم انجام میده
مدیر پوریا انجمنی
مرداد ۱۸, ۱۳۹۴ at ۱:۰۷ ب.ظ
سلام
خیر
ارش رضا پور
اردیبهشت ۸, ۱۳۹۴ at ۶:۰۷ ب.ظ
استاد سلام
یه سوال داشتم
اگه یه کد رو به دست بیارم و دستی استفاده کنم
ایا اون کد مختص یه سرور هست یا ترسی از این بابت نداشته باشم
از این جهت میگم شاید اختصاصی باشه و فقط بر روی سرور خودش استفاده بشه
اون کد اینه:
ارسال خبر به نرم افزار
ممکنه کد های سرور جاوا استفاده شدخ باشه یا ن
مدیر پوریا انجمنی
شهریور ۱۷, ۱۳۹۴ at ۱۰:۳۸ ق.ظ
سلام
برای بعضی از برنامه ها که در زمان کامپایل مبهم سازی نشده باشن بله میشه
mrb
دی ۱۴, ۱۳۹۴ at ۵:۰۸ ب.ظ
سلام.خیلی ممنون بابت آموزش .بسیار عالی توضیح دادین.بنده فایل مورد نظرم رو دیکامپایل کردم و به منابع و سورس های اون هم دست پیدا کردم .اما الان میخوام بدونم چطور میشه تغییرات توی سورس های یک فایل apk انجام داد طوری که مشکلی پیش نیاد.چون من فایل class مورد نظرم روبا وینرار وقتی تغییر مید م و جایگزینش میکنم با فایل class قبلی گویا مشکلی بوجود میاد.چون وقتی با جاوا بازش میکنم همون فایل class رو خالی نشون داده میشه و بعضی وقتا هم توی اون فایل نوشته error .اگر میشه راهنمایی کنید چطور فایل ها رو میتونم ویرایش کنم ؟مرسی
مدیر رجبیان
دی ۱۶, ۱۳۹۴ at ۱:۱۲ ب.ظ
سلام
شما با این روش فقط میتونین سورس رو ببینین و تمیتونین تغییری ایجاد کنین
محمد
دی ۲۹, ۱۳۹۴ at ۷:۴۸ ب.ظ
با سلام
یه سوال اینکه برنامه های نوشته شده در اکلیپس و اندروید استدیو،چه تفاوتی تو دیکد کردن دارن؟
مدیر رجبیان
دی ۳۰, ۱۳۹۴ at ۱:۰۵ ب.ظ
سلام
درصد دیکد شدن برنامه هایی که با اندروید استودیو نوشته میشن کمتره
احسان
بهمن ۲۸, ۱۳۹۴ at ۱۰:۲۶ ق.ظ
وقتی دستور رو مینویسم و اینتر میزنم این ارور برای من ظاهر میشه مشکل از کجاست؟
لینک عکس >>> http://rozup.ir/view/1279999/error.png
مدیر فنی
اسفند ۱, ۱۳۹۴ at ۱:۴۲ ب.ظ
سلام jre و jdk رو آپدیت کنید
محمد
بهمن ۲۹, ۱۳۹۴ at ۹:۲۹ ب.ظ
با سلام
من با این روشی که گفتید،برنامه مد نظرم رو دیکد کردم و در حین انجام کار،دقیقا کارایی انجام شد که توضیح داده بودین و بدون ارور انجام شد.محتویات و سورس رو استخراج کردم
سوالم اینکه،در بخش دوم که سورس رو دیکد میکنیم،همون سورس اصلی برنامس؟چیزی غیر اینا هست تو برنامه؟
منظورم اینه که هرچی کد نوشته شده در برنامه رو استخراج میکنه؟
مدیر فنی
اسفند ۱, ۱۳۹۴ at ۱۲:۲۲ ب.ظ
سلام فقط کدهای اصلی برنامه استخراج میشن
امیر
اسفند ۱۰, ۱۳۹۴ at ۱۰:۲۷ ب.ظ
سلام و عرض خسته نباشید
ما حالا یه برنامه رو دیکامبایل کردیم و تمام سورس کدشم استخراج کردیم
سوال من این هست که ما از کجا باید بدونیم که کدها مربوط به کدام بخش از نرم افزار هست
من قبلا با نرم افزار Androchef ;کدهای مربوط به java رو استخراج کرده بودم ولی انقدر تعداد کلاس ها زیاد بود که نمیدونستم کدام کدها مربوط به کدام بخش از نرم افزار هستند
حالا سوالم اینه چطور باید اون کدارو تشخیص بدیم
ایا راه حل یا اموزشی درباره این موضوع دادید؟
مدیر فنی
اسفند ۱۲, ۱۳۹۴ at ۱۲:۱۷ ب.ظ
سلام هر برنامه نویس روش مخصوص به خودش رو داره و باید به قدر کافی به کدنویسی مسلط بشین تا متوجه بشید هر کدی مربوط به چه قسمتی هست
رضا
فروردین ۹, ۱۳۹۵ at ۴:۴۶ ب.ظ
سلام بنده با این روش خواستم یکی از برنامه های خودم رو دیکد کنم ولی خطای زیر رو داد:
Error: Unable to access jarfile apktool.jar.
من مسیر jdk رو هم مشخص کردم ولی باز هم همین خطا رو میده لطفا بگین چیکار کنم با تشکر
مدیر فنی
فروردین ۱۰, ۱۳۹۵ at ۹:۴۳ ق.ظ
سلام برای اینه که اون برنامه قفل شده
سروش
فروردین ۱۲, ۱۳۹۵ at ۲:۵۸ ق.ظ
سلام ببخشید من طبق آموزش پیش رفتم ولی این ارور رو میده
http://s7.picofile.com/file/8245294926/scrin.png
البته وقتی ارور میده پوشه هم میسازه با اسم فایل apk اما اصلا شبیه فولدر توی آموزش نیست! داخل پوشه ای که هم اسم ای پی کی هست یه فولدر به اسم smali وجود داره و فرمت تمام فایلاشم smali هست!باید چیکار کنم؟!
مدیر پوریا انجمنی
فروردین ۱۲, ۱۳۹۵ at ۶:۰۴ ب.ظ
سلام
متاسفانه برنامه شما امکان دیکد شدن رو نداره
alireza
مهر ۴, ۱۳۹۵ at ۷:۲۳ ب.ظ
سلام ، می تونم بسته آموزشی رو حضوری بخرم؟؟
مدیر فنی
مهر ۵, ۱۳۹۵ at ۹:۰۲ ق.ظ
بله آدرس شرکت خراسان جنوبی بیرجند مدرس ۱۷ پلاک ۵ هست
mahdi3751
مهر ۱۴, ۱۳۹۵ at ۱۰:۵۹ ق.ظ
سلام
من برنامه ای رو که با اندروید استودیو نوشتم ، نتونستم که دیکد کنم ولی برنامه رو که با ایکلیپس نوشته بودم تونستم که دیکد کنم . آیا مشکل از کار من است یا کلا برنامه های نوشته شده توسط اندوید استودیو دیکد نمیشن ؟؟؟
مدیر پوریا انجمنی
مهر ۱۹, ۱۳۹۵ at ۱۰:۰۷ ق.ظ
سلام
برنامه های ساخته شده با اندروید استدیو دارای سطح امنیتی بالاتری هستن و به راحتی دیکد نمیشن