برنامه ها و ترفندهای تجاری

بازدید: 1814 بازدید

برنامه ها و ترفندهای تجاری

 

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

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

– محتویات بردارهای وقفه

– وضعیت نواحی داده های BIOS که با آدرس ۴٠:٠ شروع میشوند.

– ساختار داخلی در سیستم DOS مثل زنجیره MCB زنجیره SFT (جدول فایل سیستم)، زنجیره نرم افزار درایورز (Drivers) دستگاه نصب شده، PSP ها و اختصاص حافظه کامپیوتر مربوط به TSR های نصب شده.

– آمار و ارقام مربوط به اختصاص حافظه کامپیوتر، حاصل از نرم افزارهای درایورز(EMS (Drivers وقتیکه جستجو میکنید تا به مفهوم بخش مبوط به کد ناآشنا پی ببرید، باید برای جستجوی مفهوم واقعی کد، دقت خاصی داشته باشید. همچنین، استفاده از پروفیلر (Profiler) بر آنالیز برنامه ناآشنا ارجحیت دارد.

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

 

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

اشکال زدای (عیب یاب) شما: برنامه مورد علاقه شما اولین و مهمترین نکته این است که، اشکال زدای شما باید بدین منظور طراحی شده باشد که با مدولهای مقیم قابل استفاده باشد (یا اینکه خودش یک مدول مقیم باشد).

کراک کردن با [debug.com] ساده ترین و مطمئن ترین روش است.

ما فایل softice.exe بنابراین تکنولوژی های NU-Mega را به شما توصیه میکنیم (مدل ۲.۶  [S-Ice.exe ] بوسیله MARQUIS DE SOIREE کراک شده روی شبکه web موجود است).

 

چگونگی استفاده از YAHOO و یافتن آنها را یاد بگیرید. در موارد اضطراری، میتوانید با استفاده   از [debug] یا [Symdeb] ، سریعا کراک کنید، اما همانگونه که قبلا عنوان شد، اکثر اوقات، این اشکال زداهای قدیمی کار نمیکنند. با وجود این، من همیشه در مرحله نهایی کراک کردن برای [debug.com] به شما کمک کرده ام، و به تمام استفاده کنندگان اجازه داده ام تا برنامه های کراک کردن را انجام دهند.

 

برنامه ها و ترفندهای تجاری
برنامه ها و ترفندهای تجاری

 

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

 

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

استفاده عاقلانه از نقاط توقف، این جزییات را بصورت قابل فهمی درمی آورد.

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

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

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

 

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

 

کد و داده

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

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

 

بردارهای قلابدار

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

برای مطالعه فعالیت های برداری وقفه یک دستورالعمل، برنامه سودمند نقشه روبرداری (رونوشت) برداری، بی فایده است. این برنامه را میتوان ضمن اجرای دستورالعملی که میخواهید کراک کنید،
اجرا کرد . یک راه حل اینست که برنامه را تحت یک اشکال زدا اجرا نموده و منتظر فراخوانی  های سیستم برای فرآیندهای ۲۵h (تعیین بردار وقفه) و ۳۵h (بدست آوردن بردار وقفه) INT 21  باشید، اما در مواردی که برنامه، بردارهای وقفه را مستقیما میخواند و مینویسد، این متد تصویر کاملی به شما ارائه نخواهد داد. معمولا باید از برنامه های جاسوسی، ردیابی یا برنامه سودمند “STEP” استفاده کنید.

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

دقت کنید که برخی از انواع نوشتن مستقیم برداری، در صورتی انجام میشود که تغییر برداری، بین فراخوانی های سیستم، مشخص شود.

اگر تغییر برداری در طی فراخوانی سیتسم، مشخص شده اما فرآیند ۲۵h از INT 21 نیست، شک داشته باشید که کنترل کننده IRQ روی این تغییر، تأثیر گذارد.

 

 

در ادامه با ما همراه باشید…