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

1- اشکال در دانلود منیجر .
2- مشکل در پراکسی سرور
3- مشکل در وب سرور
4- مشکلاتی که ناشی از خود کامپیوتر شما میشه



دانلود دوباره فایل ها مخصوصا اگر (برای ما ایرانی ها) بیشتر از 5 مگابایت باشد بسیار دردناک است و در اینجا هیچ نوع گارانتی هم وجود ندارد که فایلی که دوباره دانلود میکنیم سالم باشد !
در چنین شرایطی بهترین کار تعمیر دستی فایل ناقص با دانلود بایتهای خراب شده هست که در این آموزش شما آن را یاد میگیرد .


ابزارهای مورد نیاز:
WinHex




 

Code:

http://www.winhex.com/winhex.zip

CURL





 

Code:

http://curl.haxx.se/latest.cgi?curl=win32-nossl-sspi

مراحل کار بشرح زیر است
1- از فایل دانلود شده خود بک آپ تهیه کرده آن را با WinHex باز کنید
2-سگمنتهای معیوب را پیدا کنید . سگمنت هایی که ما مجبور به پیدا کردن آن هستیم و احتمال زیاد سگمنت های معیوب هستند را میتوان با این نشان پیدا کرد " تعداد زیاد 0 های پشت سر هم "
3-سگمنت معیوب را دوباره دانلود کنید .با استفاده از نرم افزار CURL
4-سگمنت های معیوب را با سگمنت های سالم پر کنید و فایل را سیو کنید


برای اینکه مطالب کاملا برای شما روشن شود مثالی میزنم.

یک فایل ناقص داریم با اسم corrupted.rar .آن را با نرم افزار WinHex باز میکنیم و مراحل زیر را طی میکنیم

1- با کلیک بر ناحیه Offset نحوه نمایش این قسمت را از Hex به decimal تغییر دهید

2- دنبال سگمنتهای معیوب بگردید . نشانه قسمتهای معیوب فایل "تعدادی صفر پشت سر هم " است و ما میتونیم این قسمت ها رو از بایت اول فایل پیدا کنیم .
فایلهایی که از اینترنت میگیریم غالبا فشرده هستند .فایلهای فشرده خالی از تکرار متاوالی صفر و یا هر کاراکتری دیگری میباشند و این کار ما رو راحت میکنه .(یعنی تکرار کاراکتری پشت سر هم مبنی بر خراب بودن آن قسمت میباشد)
میتوانیم با زدن کلید ترکیبی CTRL+ALT+F شروع به سرچ کردن کنیم . میتوانید برای سزچ کردن از زدن چند صفر متوالی پشت سر هم استفاده کنید اگر جایی چند صفر یا کاراکتری تکرار شده بود شک نکنید که این قسمت معیوب است ! آدرس Offset ابتدا و انتهای قسمت خراب را یادداشت کنید

3- حالا ما باید با استفاده از نرم افزار CURL قسمت های خراب فایل را دوباره دانلود کنیم .
این بهترین راه دریافت قسمت های خراب یک فایل است . در این مثال ما درخواست دریافت مجدد قسمت معیوب از آدرس 01094304 را تا آدرس 01094512 داریم .
در یک شرایط عادی و واقعی این مقدار میتونه بیشتر و یا کمتر هم باشه .
Commandprompt را باز کرده تایپ میکنیم :

"curl -r 1094304-1094512 _http://badserver.com/mygoodfile.rar -o 01094304.bin"

این دستور باعث میشه بایتهای ارجینال فایل از آفست 1094304 تا 1094512 فایل اصلی دانلود بشه و در فایلی به نام 01094304.bin و در پوشه برنامه curl ذخیره بشه .حالا ما سگمنت دانلود شده را با Winhex باز میکنیم و با زدن کلید های ترکیبی CTRL+A -> CTRL+C تمامی این سگمنت رو به حافظه کلیب بورد کپی میکنیم
برمیگردیم به فایل ناقص و همون شروع قسمت ناقص فایل در این مثال : 01094304 ....حالا باید با زدن کلیدهای ترکیبی CTRL+B بایت های اورجینال رو در این فایل overwrite کنیم . این قسمت خیلی مهمه یک offset چپ و راست کردن یعنی خراب شدن همه چیز!
بعد از پایان این کار میتونیم فایل رو با زدن کلیدهای ترکیبی CTRL+S سیو کنیم . (برای فایلهای در مقیاس بزرگ بهتره از حالت edit mode به حالت place mode برویم ...با زدن کلید F6 )

مشاهده میکنید که قسمت های خراب فایل با بایت های اورجینال پر شده و فایل سالم شده . البته اون هم با دانلود کردن چند کیلوبایت ناقابل...!
پایان .
و چند مطلب....
1-در این مثال فقط یک سگمنت خراب داشتیم ولی معمولا در موارد واقعی سگمنت های خراب بیش از یکیست . پس برای تعمیر هر قسمت باید تمامی مراحل بالا را انجام بدین
2-توجه داشته باشید طول صفرها که شما باید پیدا کنید میتونه کوچکتر یا بزرگتر از این مثال یکه در اینجا زدیم باشه .
3- از این آموزش میشه فقط در سرورهایی که Resume Support هستند استفاده کرد . در سروری مثل سرورهای رایگان سایت راپیدشر این عمل غیرممکن است .