Dr.Mobile
03-04-2010, 10:40 PM
*** آموزش نحوه کرک برنامه های سیمبیان ***
یه تایپیک رو از امروز شروع کرده ام که خیلی اولش اسون به نظر می رسه ولی الان که دارم آماده اش می کنم می بینم کار سختیه خداییش چون برای اولین باره که تو یه انجمن ایرانی این کار قراره بطور کامل انجام بشه و شاید در داخل ایران فعلا تو کار کرک برنامه های موبایل به اون صورت نشدن وتجربه ها در این زمینه پایینه فعلا.به هر حال امیدوارم بتونم یه کم این راه رو براتون آسونتر بکنم و ار همه دوستان هم می خوام که اگه بلدن چیزی من کمک بکنن.به امید روزی که بهترین کرکهای ایرانی برنامه های موبایل از این سایت باشه.
.با توجه به اینکه یه کم وقتم کمه و می خوام مطالب خوب باشن یه کم صبر داشته باشید و بزارید سر حوصله و نه عجله ای مطالب رو براتون بزارم.
سعی می کنم این مطالب مختصر باشن تا شما سردر گم نشید.من یک سیمیبیان کرکر نیستم
توجه کنید که شما با خوندن این مطالب یک سیمیبیان کرکر نمیشید .فقط این مطالب کمک می کنه تا استارت توبزنید بقیه راه به خودتون(دانش برنامه نویسی و پشتکارتون) بستگی داره.........
تعریف کرک
پروسه ای است که کرکر با استفاده از مهندسی معکوس فایل های اجرایی (در مورد برنامه های سیمیبیان
فایل های با پسوند APP)را معکوس می کنه و این فایل ها را برای دستیابی به اهداف شیطانی اش دستکاری می کند .
تعریف مهندسی معکوس
در این موردی که ما بحث می کنیم مهندسی معکوس یعنی تبدیل فایل های APP یا هر فایل اجرایی دیگر به زبان اسمبلی برای دستیابی به اهداف زیر:
1.فهم این فایل و برگرداندن آن به HHL(high level language -برنامه های سطح بالا مثل C++)
2.اصلا ح این فایل در سطح اسمبلی (این اصلاح بسته یه کار شما داره.اگه نویسنده برنامه هستید برای
برطرف کردن باگ ها و اگر شما کرکر هستیدبرای کرک کردن برنامه این کار رو انجام می دهید)
یه کم مقدمه
بعضی از کرکر ها یک راه بسیار ساده برای کرک فایل هایی که نیلز به ریجیستر شدن برای اجرا دارند استفاده می کنند که روش نووپینگ(NOOPing) نام دارد
نوپینگ(NOOPHNG-NO OPretion)
یک دستور العمل(instruction) به معنای انجام ندادن هیچ کاری می باشد که شما از آن برای جایگزینی بعضی از دستورالعمل ها (به زبان خلاصه برای جایگزینی دستور العملی که شما را به سمت بلوکی از کدها که به شما می گوید :
)استفاده خواهد کرد(زیاد عجله نکنید به مرور همه چیز براتون جا می افته).
برای فهم بیشتر من از یک مثال ساده(البته نه در زبان اسمبلی) برای فهم بیشتر این روش استفاده می کنم:
compare good_registration_number with input_registration_number
jump to nasty_block_of_code if they are not equal----
display you are great for buying this ugly software,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
exit program,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
------------------------------------------------------------------|
|
|--nasty_block_of_code:
display YOU HAVE ENTERED A NASTY REGISTRATION NUMBER
display you are nasty boy do not do it again
(من از علامت های ویرگول برای نشان دادن کدهایی که برای کرک مهم نیستن استفاده کرده ام)
حالا اون کاری که در ادامه باید انجام بدید:
compare good_registration_number with input_registration_number
NOOP (nothing remember???)
display you are great for buying this ugly software
.
.
.
exit program
nasty_block_of_code:
display YOU HAVE ENTERED A NASTY REGISTRATION NUMBER
display you are nasty boy do not do it again
خب به هر با این کار شما همیشه باید برید نرم افزار اصل و بخرید چون هیچ وقت به کد اصلی نمی رسید!!!!!!!!!
روش های دیگه ای هم هست که اگه می خواید بازم بزارمتون سر کار بگم؟؟؟؟؟؟؟؟؟؟؟؟
بله ...امبدوارم فهمیده باشید که کرک همچین هم کار ساده ای نیست و حسابی باید وقت و انرژی بزارید.
خب حالا بگذریم
وقتی می گم دستورالعمل منظورم یک خط از کدهای اسمبلی هستش (در HHL بهش statement می گن).
مهندسی معکوس یک ماشین وابسته است یعنی خودش وابسته به ماشین شما است(مخصوصا سی پی یو وسیله اتون)
برای بسیاری از وسایل شما اونها رو به دستورالعمل های سری اینتل تبدیل می کنید(تبدیل از زبان ماشین به زبان اسمبلی)ولی در مورد فایل های APP سیمیبیان اونهارو به دستورالعمل های سری ARM تبدیل می کنید.شما شباهت های بسیار زیادی در مورد این دو سری( یعنی اینتل و ARM) خواهید دید به خاطر اینکه اسمبلی به طور کلی با سخت افزار وسیله در ارتباط است.
برای تغییر دادن BAD Line در کدها یی که شما نمی خاهیدشان باید یک hex Editor داشته باشید.شما اول باید فایل رومجزا بکنید و سپس آدرسی رو که می خواهید تغییر بدهید پیدا بکنید و سپس ان را hex editor وارد کنید و تغییرات لازم را در آن بدهید.وقتی شما فایل های PC را کرک می کنید( کامپیوترتان نه موبایل تون) شما باید ازکارهای ضد کرکی روتینی که توسط سازنده در فایل بکار گرفته می شود اطلاع کافی داشته باشید.
کارهای محافظتی روتین بلوکی از کدها هستن که توسط سازنده برای جلوگیری از کرک برنامه شان توسط کرکرها نوشته می شود ودر برنامه قرار می گیرد.در کرک برنامه های موبایل شما روتین های محافظتی کمتری را برای مبارزه دارید چون سازندگان باید حا فظه و محدودیت ذخیره را باید در نظر بگیرند.
الزامات
خب حالا من قصد دارم اون چیزهایی رو که برای شروع کرک کردن نیاز دارید بهتون بگم.اگه این الزامات رو ندارید فعلا بی خیال شید برید این ها رو یاد بگیرید بعد ادامه بدید:
1.یه کم زبان برنامه نویسی سطح بالا مثل C++ رو یاد بگیرید بخصوص دستورات مربوط بهLOOPS وJUMPS
2.کار بعدی اینه که بدونید کامپیوترتون چطوری کار می کنه(CPUو و حافظه)
3.خب حالا باید در مورد نحوه ریجستر کردن یه سری چیزها رو یاد بگیرید(در مورد ریجستر کردن من چیزی فعلا نمی گم خودتون در موردش پیگیر بشید . فقط من یه نکته بهتون می در HHL متغیر=REgister)
4.شما باید آشنایی کافی با زبان اسمیلی داشته باشید(من سری اینتل رو پیشنهاد می کنم)
5. حالا که به اینجا رسیدید باید به دستورالعمل ها jump و movمسلط باشید و همچنینconversion (تا قادر به کانورت بین binary decimal hexdecimal باشید)
6.شما باید زبان اسمبلی سری ARM رو هم یاد بگیرید(اگه سری اینتل رو بلیدید این یکی مثل آب خوردن می مونه)
برنامه های مورد نیاز برای کرک
1.UnmakeSIS(برای آنپک کردن بسته های EPOC به فایل ها و دسترسی به فایل APP)
لینک داونلود UnMakeSIS
2.MakeSIS(ریپک کردن فایلها بعد از اصلاح فایل APP)
لینک داونلود MakeSIS
3.IDA PRO Disassenmbler (برای تبدیل کردن فایل های APP به زبان اسمبلی)
لینک داونلود IDA PRO DISASSEMBLER
(حجم 31 مکابایت)
4.HEX Editor(برای اعمال تغییرات در فایل APP)
لینک داونلود WINHEX
من شنیدم که ورژن جدید برنامه IDA PRO Disassembler اجازه ادیت کردن و اعمال تغییرات را هم میدهد پس به دیگر به مورد 4 دیگر نیازی ندارید
اگه یه کم وقت خالی و علا قه داشته باشید این راه که به نظر طولانی می یاد کوتاه خواهد شد.شاید بعضی از افراد بهتون بگن بعضی از این نیازمندیها که در بالا اشاره کردم نیاز نیست.ولی مطمئن باشید که بر اساس تجربه ام به تک تکشون نیاز پیدا خواهید کرد. خب فعلا این برنامه ها رو بگبرید و با هاشون یه کم ور برید
تا یه کم با هاشون راحت بشید. تو پست بعدی یه کم دیگه مقدمات رو توضیح می دم و بعدش هم سعی می کنم یکی دو مثال رو با هم دیگه کار کنیم تا همه چی براتون جا بیفته.(یعنی یکی دو برنامه رو کامل با هم کرک می کنیم!!!!!!!!)
یه تایپیک رو از امروز شروع کرده ام که خیلی اولش اسون به نظر می رسه ولی الان که دارم آماده اش می کنم می بینم کار سختیه خداییش چون برای اولین باره که تو یه انجمن ایرانی این کار قراره بطور کامل انجام بشه و شاید در داخل ایران فعلا تو کار کرک برنامه های موبایل به اون صورت نشدن وتجربه ها در این زمینه پایینه فعلا.به هر حال امیدوارم بتونم یه کم این راه رو براتون آسونتر بکنم و ار همه دوستان هم می خوام که اگه بلدن چیزی من کمک بکنن.به امید روزی که بهترین کرکهای ایرانی برنامه های موبایل از این سایت باشه.
.با توجه به اینکه یه کم وقتم کمه و می خوام مطالب خوب باشن یه کم صبر داشته باشید و بزارید سر حوصله و نه عجله ای مطالب رو براتون بزارم.
سعی می کنم این مطالب مختصر باشن تا شما سردر گم نشید.من یک سیمیبیان کرکر نیستم
توجه کنید که شما با خوندن این مطالب یک سیمیبیان کرکر نمیشید .فقط این مطالب کمک می کنه تا استارت توبزنید بقیه راه به خودتون(دانش برنامه نویسی و پشتکارتون) بستگی داره.........
تعریف کرک
پروسه ای است که کرکر با استفاده از مهندسی معکوس فایل های اجرایی (در مورد برنامه های سیمیبیان
فایل های با پسوند APP)را معکوس می کنه و این فایل ها را برای دستیابی به اهداف شیطانی اش دستکاری می کند .
تعریف مهندسی معکوس
در این موردی که ما بحث می کنیم مهندسی معکوس یعنی تبدیل فایل های APP یا هر فایل اجرایی دیگر به زبان اسمبلی برای دستیابی به اهداف زیر:
1.فهم این فایل و برگرداندن آن به HHL(high level language -برنامه های سطح بالا مثل C++)
2.اصلا ح این فایل در سطح اسمبلی (این اصلاح بسته یه کار شما داره.اگه نویسنده برنامه هستید برای
برطرف کردن باگ ها و اگر شما کرکر هستیدبرای کرک کردن برنامه این کار رو انجام می دهید)
یه کم مقدمه
بعضی از کرکر ها یک راه بسیار ساده برای کرک فایل هایی که نیلز به ریجیستر شدن برای اجرا دارند استفاده می کنند که روش نووپینگ(NOOPing) نام دارد
نوپینگ(NOOPHNG-NO OPretion)
یک دستور العمل(instruction) به معنای انجام ندادن هیچ کاری می باشد که شما از آن برای جایگزینی بعضی از دستورالعمل ها (به زبان خلاصه برای جایگزینی دستور العملی که شما را به سمت بلوکی از کدها که به شما می گوید :
)استفاده خواهد کرد(زیاد عجله نکنید به مرور همه چیز براتون جا می افته).
برای فهم بیشتر من از یک مثال ساده(البته نه در زبان اسمبلی) برای فهم بیشتر این روش استفاده می کنم:
compare good_registration_number with input_registration_number
jump to nasty_block_of_code if they are not equal----
display you are great for buying this ugly software,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
exit program,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
------------------------------------------------------------------|
|
|--nasty_block_of_code:
display YOU HAVE ENTERED A NASTY REGISTRATION NUMBER
display you are nasty boy do not do it again
(من از علامت های ویرگول برای نشان دادن کدهایی که برای کرک مهم نیستن استفاده کرده ام)
حالا اون کاری که در ادامه باید انجام بدید:
compare good_registration_number with input_registration_number
NOOP (nothing remember???)
display you are great for buying this ugly software
.
.
.
exit program
nasty_block_of_code:
display YOU HAVE ENTERED A NASTY REGISTRATION NUMBER
display you are nasty boy do not do it again
خب به هر با این کار شما همیشه باید برید نرم افزار اصل و بخرید چون هیچ وقت به کد اصلی نمی رسید!!!!!!!!!
روش های دیگه ای هم هست که اگه می خواید بازم بزارمتون سر کار بگم؟؟؟؟؟؟؟؟؟؟؟؟
بله ...امبدوارم فهمیده باشید که کرک همچین هم کار ساده ای نیست و حسابی باید وقت و انرژی بزارید.
خب حالا بگذریم
وقتی می گم دستورالعمل منظورم یک خط از کدهای اسمبلی هستش (در HHL بهش statement می گن).
مهندسی معکوس یک ماشین وابسته است یعنی خودش وابسته به ماشین شما است(مخصوصا سی پی یو وسیله اتون)
برای بسیاری از وسایل شما اونها رو به دستورالعمل های سری اینتل تبدیل می کنید(تبدیل از زبان ماشین به زبان اسمبلی)ولی در مورد فایل های APP سیمیبیان اونهارو به دستورالعمل های سری ARM تبدیل می کنید.شما شباهت های بسیار زیادی در مورد این دو سری( یعنی اینتل و ARM) خواهید دید به خاطر اینکه اسمبلی به طور کلی با سخت افزار وسیله در ارتباط است.
برای تغییر دادن BAD Line در کدها یی که شما نمی خاهیدشان باید یک hex Editor داشته باشید.شما اول باید فایل رومجزا بکنید و سپس آدرسی رو که می خواهید تغییر بدهید پیدا بکنید و سپس ان را hex editor وارد کنید و تغییرات لازم را در آن بدهید.وقتی شما فایل های PC را کرک می کنید( کامپیوترتان نه موبایل تون) شما باید ازکارهای ضد کرکی روتینی که توسط سازنده در فایل بکار گرفته می شود اطلاع کافی داشته باشید.
کارهای محافظتی روتین بلوکی از کدها هستن که توسط سازنده برای جلوگیری از کرک برنامه شان توسط کرکرها نوشته می شود ودر برنامه قرار می گیرد.در کرک برنامه های موبایل شما روتین های محافظتی کمتری را برای مبارزه دارید چون سازندگان باید حا فظه و محدودیت ذخیره را باید در نظر بگیرند.
الزامات
خب حالا من قصد دارم اون چیزهایی رو که برای شروع کرک کردن نیاز دارید بهتون بگم.اگه این الزامات رو ندارید فعلا بی خیال شید برید این ها رو یاد بگیرید بعد ادامه بدید:
1.یه کم زبان برنامه نویسی سطح بالا مثل C++ رو یاد بگیرید بخصوص دستورات مربوط بهLOOPS وJUMPS
2.کار بعدی اینه که بدونید کامپیوترتون چطوری کار می کنه(CPUو و حافظه)
3.خب حالا باید در مورد نحوه ریجستر کردن یه سری چیزها رو یاد بگیرید(در مورد ریجستر کردن من چیزی فعلا نمی گم خودتون در موردش پیگیر بشید . فقط من یه نکته بهتون می در HHL متغیر=REgister)
4.شما باید آشنایی کافی با زبان اسمیلی داشته باشید(من سری اینتل رو پیشنهاد می کنم)
5. حالا که به اینجا رسیدید باید به دستورالعمل ها jump و movمسلط باشید و همچنینconversion (تا قادر به کانورت بین binary decimal hexdecimal باشید)
6.شما باید زبان اسمبلی سری ARM رو هم یاد بگیرید(اگه سری اینتل رو بلیدید این یکی مثل آب خوردن می مونه)
برنامه های مورد نیاز برای کرک
1.UnmakeSIS(برای آنپک کردن بسته های EPOC به فایل ها و دسترسی به فایل APP)
لینک داونلود UnMakeSIS
2.MakeSIS(ریپک کردن فایلها بعد از اصلاح فایل APP)
لینک داونلود MakeSIS
3.IDA PRO Disassenmbler (برای تبدیل کردن فایل های APP به زبان اسمبلی)
لینک داونلود IDA PRO DISASSEMBLER
(حجم 31 مکابایت)
4.HEX Editor(برای اعمال تغییرات در فایل APP)
لینک داونلود WINHEX
من شنیدم که ورژن جدید برنامه IDA PRO Disassembler اجازه ادیت کردن و اعمال تغییرات را هم میدهد پس به دیگر به مورد 4 دیگر نیازی ندارید
اگه یه کم وقت خالی و علا قه داشته باشید این راه که به نظر طولانی می یاد کوتاه خواهد شد.شاید بعضی از افراد بهتون بگن بعضی از این نیازمندیها که در بالا اشاره کردم نیاز نیست.ولی مطمئن باشید که بر اساس تجربه ام به تک تکشون نیاز پیدا خواهید کرد. خب فعلا این برنامه ها رو بگبرید و با هاشون یه کم ور برید
تا یه کم با هاشون راحت بشید. تو پست بعدی یه کم دیگه مقدمات رو توضیح می دم و بعدش هم سعی می کنم یکی دو مثال رو با هم دیگه کار کنیم تا همه چی براتون جا بیفته.(یعنی یکی دو برنامه رو کامل با هم کرک می کنیم!!!!!!!!)