برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

اعداد اول و سیستمهای رمز

در اکثر قریب به اتفاق الگوریتمهای رمز مدرن (متقارن و نامتقارن) بر خلاف سیستمهای رمز ساده (جانشینی و جایگشتی) از اعمال ریاضی فراتر از 4 عمل اصلی استفاده شده است. نقطه قوت و امنیت عملی این الگوریتمها دقیقاً ناشی از همین پیچیدگی محاسبات ریاضی لازم برای تحلیل کردن (شکستن) آنهاست. اساسی ترین عمل ریاضی در رمز های مدرن ، محاسبات پیمانه ای یا همنهشتی است. در اینجا هدف پرداختن به جزئیات عملیات همنهشتی (4 عمل اصلی در یک مبنای دلخواه مثل n) نیست، فقط مایلم به نقش کلیدی و استثنایی اعداد اول  در اینگونه محاسبات اشاره کنم. علم رمز مدرن بدون شک مدیون خواص بی مانند و جادویی اعداد اول است. در بسیاری از الگوریتمهای رمز مدرن از دیفی هلمن گرفته تا RSA ، Elgamal و ... از اعداد اول (و یا حاصلضرب چند عدد اول) به عنوان پیمانه محاسبات تولید کلید، رمز کردن و ترجمه رمز استفاده می­شود. همین خواص است که در کنار پیچیدگی مسایلی مثل لگاریتم گسسته، فاکتورگیری و ... امکان شکستن رمز را از تحلیل گر (که کلید را در اختیار ندارد) سلب می­کند. تولید اعداد اول بزرگ، بسیار مشکل است و در حالت کلی الگوریتمی برای آن وجود ندارد، اما از آن پیچیده تر، مساله فاکتورگیری است، یعنی تجزیه یک عدد بسیار بزرگ به حاصلضرب فاکتورهای اول. برای مثال، متن زیر تحت الگوریتم RSA با کلید عمومی e = 5 و عامل N (که حاصلضرب دو عدد اول مخفی است) رمز شده:

 

2436895187740522149300895060339985
9633578287983910705162536071404480
55114932771201027350325,32391566613
3187777174633743307665741495158513
5873876216674428451506590312184584
1724822236676

 

N = 51920810450204744019132202403246112
884629925425640897326550851544998255968235697331455544257

 

کلید عمومی e و عامل N علنی و در اختیار تحلیل گر قرار دارد. با توجه به اینکه تحلیل گر کلید خصوصی را در اختیار ندارد، برای شکستن متن رمز شده باید N را فاکتورگیری کند، که این کار برای قدرتمندترین کامپیوترهای موجود هم در زمان مناسب عملاً غیر ممکن است. به همین خاطر است که RSA و بسیاری دیگر از الگوریتمها در برابر تحلیل مقاومند

++ استراق سمع در هنگام تعیین هویت ویندوز !!

شرح کار :

 

کار بسیار ساده است اول میروید به Ntsecurity.nu و دو ابزار  kerbcrack و kerbsniff را دریافت می نمایید . ابزار kerbsniff شبکه را تحت نظر می گیرد و به دنبال اطلاعات تعیین هویت حوزه Kerberos و ، ویندوز میگردد و نتایج را در فایلی که شما برایش مشخص میکنید ذخیره میکند !! بعد با استفاده از ابزار  ورود به زور و با استفاده از یک فرهنگ لغت ابزار kerbcrack را راه اندازی میکنیم تا به هدف خود که همان کلمات عبور باشد دست پیدا کنیم .

 

+ مراحل استفاده از ابزار kerbsniff به شرح زیر است :

 

  1. خود ابزار را راه اندازی میکنیم  ، ابزار شبکه های فعال را تشخیص میدهد و آنها را به ما نمایش میدهد . شما باید یکی از آن ها را انتخاب کنید که من شماره 1  انتخاب کردم !!

 

D:> KerbSniff.exe zxo003.txt

KerbSniff 1.3d3 - (c) 2002-2005, Arne Vidstrom

                      - http://ntsecurity.nu/toolbox/kerbcrack/

 

Available network adapters:

 

0-      192.168.234.34

1-      192.168.234.33

2-      192.168.208.1

4-   192.168.223.1

 

Select the network adapter to sniff on: 1

 

 

  1. حال بر نامه فعال شده و همینجور نیز فعال می ماند ، بعد از مدتی شما بهتر است که ترکیب دو کلید Ctrl+C را استفاده کنید تا برنامه ناکام بماند و شما بتوانید از نتایج بدست آماده حداکثر سوء استفاده را بکنید ، البته اگر چیزی به دست بی آورد !! حالا ما دیگه کاری با این ابزار نداریم

 

++ مراحل استفاده از ابزار kerbcrack به شرح زیر است :

 

  1. این  ابزار مثل بقیه ابزار های از این دست است و بر پایه متد ورود به زور کار میکند ، شیوه استفاده به این صورت زیر است .

 

D:> Kerbcrack.exe zxo003.txt –d dicitionary.txt

KerbCrack 1.3d3 - (c) 2002-2005, Arne Vidstrom

                       - http://ntsecurity.nu/toolbox/kerbcrack/

 

Loaded capture file.

 

Currently working on :

 

Account name                -administrator

From domain                 -VEGAS2

Trying password            -admin

Trying password            -guest

Trying password            -root

 

  1. قابل ذکر است که آخرین کلمه که نمایش میدهد و دیگر تلاش نمی کند آن کلمه ، همان کلمه عبور است .

 

  1. این برنامه یک سری ریزه کاری های دارد خود شما باید آن یاد بگیرید !!

 

چند ویژگی شبکه های بیسیم

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

الف: فقدان زیرساخت (Infrastructureless) : در شبکه های بیسیم ساختارهای متمرکز و مجتمع مثل سرورها، روترها و ... لزوماً موجود نیستند (مثلاً در شبکه های Ad hoc)، به همین خاطر راه حلهای امنیتی آنها هم معمولاً غیر متمرکز، توزیع شده و مبتنی بر همکاری همه نودهای شبکه است.

ب: استفاده از لینک بیسیم: در شبکه بیسیم، خطوط دفاعی معمول در شبکه های wired (مثلاً فایروال به عنوان خط مقدم دفاع) وجود ندارد. نفوذگر از تمام جهت ها و بدون نیاز به دسترسی فیزیکی به لینک، می­تواند هر نودی را هدف قرار دهد.

ج: Multi hop بودن: در اغلب پروتکلهای مسیریابی بیسیم، خود نودها نقش روتر را ایفا می­کنند (به خصوص در شبکه های Ad hoc)، و بسته ها دارای چند hop مختلف هستند. طبیعتاً به هر نودی نمی­توان اعتماد داشت آن هم برای وظیفه ای همچون مسیریابی!

د: خودمختاری نودها در تغییر مکان: نودهای سیار در شبکه بیسیم به دلیل تغییر محل به خصوص در شبکه های بزرگ به سختی قابل ردیابی هستند.

از دیگر ویژگیهای طبیعی شبکه بیسیم که منبع مشکلات امنیتی آن است می­توان به فقدان توپولوژی ثابت و محدودیتهای منابعی مثل Power ، CPU و حافظه اشاره کرد.

امنیت بیشتر در IIS 7

در سال جاری شاهد نسخه های Beta  ، از انواع مختلف محصولات Microsoft بودیم محصولاتی همانند : office 2007  ،  Internet Explorer 7 و هم چنین Windows Vista و ...

اما در  بین این محصولات که به تازگی انتشار یافته اند ، محصولی به چشم می خورد که به آن کمتر توجه شده است !!! باوجود آنکه آن هسته بسیاری از محصولات Microsoft را تشکیل می دهد : Internet Information Services 7.

 

زمانی که IIS 6 همراه با Windows Server 2003 انتشار یافت ، اشاره به آن داشت که Microsoft  به امنیت بیشتری در سرورهای خود دست پیدا کرده است . زیرا نسخه های پیشین IIS 6 هدف اصلی بسیاری از حمله ها و کرمها و ویروسهایی مانند Nimda  بودند . با IIS 6 ، Microsoft وب سرورش را به امنیت بیشتری نسبت به نسخه های پیشین رساند .

با این بهبودهای امنیتی که Microsoft  در وب سرورهای خود به وجود آورد دیگر بعید به نظر می رسدد که دیگر آن مشکلات امنیتی را که در گذشته موجود بود در گر بار وجود داشته باشد.

IIS 7  دارای امنیت بسیار بیشتری نسبت به نسخه های پیشین در نصب پیش فرض خود است و هم چنین از کیفیت بسیار بهتری  در security management است .

اما به مراتب بیشترین تغییرات در configuration و  management ایجاد شده است .

از بسیاری جهات ، این نسخه از IIS می تواند تهیدی برای رقیب دیرینه IIS و یکه تاز وب سرورها یعنی Apache  باشد .ظاهر  IIS جدید از قبیل : طراحی کامل پیمانه ای انجام شده ( modular design ) و افزایش اعتماد پذیری بر تنظیمات پایه ای انجام شده روی فایل ها می باشد .

گرچه بصورت پیش فرض ، Beta 1 این وب سرور با نصب از پیش تعیین شده Vista نصب نخواهد شد ولی آن را به راحتی می توانید به عنوان برنامه های اختیاری آن را دوباره نصب کنید .

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

دیگر تغییر آشکاری که در این نسخه از IIS انجام شده است در web.config file است ، یک فایل XML-based که تمامی هسته پیکر بندی را برای وب سرور فراهم می کند و به سادگی می تواند به دیگر سرورها منتقل شود . این فایل در7 IIS برای پیکر بندی ASP.NET بکار رفته شده است . IIS 7 همچنین بطور کامل واسط administration  خود را در مدیریت کنسول دچار دگرگونی کرده است  .  هم چنین Remote administration از طریق ارتباط استاندارد HTTP بهبود یافته است ، که این امکان مدیریت remote را بسیار آسان تر می کند . البته این مدیریت Remote بطور بیش فرض فعال نیست ، زیرا بسیاری از شرکت ها آن را یک مشکل امنیتی بالقوه می دانند .

اسمبل کردن کامپیوتر

اسمبل

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

بیشتر قطعات کامپیوتری در آمریکا اختراع می شوند ولی تولید آنها در سراسر جهان صورت می گیرد و این گستردگی از هیچ قاعده ای پیروی نمی کند. کشورهای مختلف هر کدام یکسری قطعات خاص را تولید می کنند کمپانی های آمریکایی cpu را می سازند ( Intel, AMD ) مادربردها از تایوان می آیند. هارد دیسکها در سنگاپور یا هندوستان ساخته می شوند. حافطه های RAM معمولاً در کره ساخته می شوند و یک دو جین کارخانه چینی به تولید کیس مشغول هستند.

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

ساخت یک کارگاه ساخت چیپ ست برای اینتل یک میلیارد دلار خرج بر می دارد و از پیشرفته ترین تکنولوژیها استفاده می شود سپس این چیپ ست ( که ممکن است CPU پنتیوم 4 باشد ) داخل سلفون بسته بندی می شود و به فروشگاه هها ارسال می شود. برای نصب یک CPU روی مادربرد اهرم کنار سوکت CPU را روی مادربرد بلند کنید و CPU را جا بزنید قسمت مارک شده روی CPU را با قسمت مشابه روی سوکت مطابقت دهید و اهرم سوکت را ببندید.

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

راههای ارتباطی بین قطعات اگر سرعت تغییر نکند به همان شکل باقی می مانند باس ارتباطی PCI  برای یک دهه است که بدون تغییر باقی مانده است کی برد از زمانیکه کامپیوتر اختراع شده است عملاً تغییری نکرده است، هر چند اجزایی که در سرعت نقش اساسی را ایفا می کنند تغییر کرده اند.

از آن جمله می توان به موارد زیر اشاره کرد:

  • هر چه CPU ها سریعتر می شوند ولتاژ کارشان کمتر، سرعت کلاک آنها بیشتر و احتمالاً تعداد پینهای بیشتری خواهند داشت و احتیاج به سوکتهای جدید دارند.
  • چیپ های حافطه سریعتر می شوند تا بسته های اطلاعاتی را با سرعت بیشتری به مادربرد انتقال دهند. همانند CPUها آنها با هر تولید جدید ولتاژ کمتری احتیاج دارند سرعت کلاک بیشتری دارند و تعداد پینهای بیشتری دارند.
  • کارتهای ویدیویی یک اسلات AGP مخصوص خود دارند هر چند استانداردهای AGP با 3 استاندارد آمده اند در هر محصول جدید حداکثر سرعت دو برابر شده است اما ولتاژ از 3.3 ولت تا 1.5 ولت و بالاخره 0.8 ولت رسیده است سه ساختار مختلف برای این سوکتها موجود است اگر شما یک کارت گرافیک 1.5 ولتی را به یک سوکت 3.3 ولتی متصل کنید کارت و مادربرد هر دو را خواهید سوزاند البته بعضی از مادربردها بیش از یک استاندارد را قبول می کنند.
  • هارد دیسکهای جدید سرعت بالا ( Ultra DMA ) را ساپورت می کنند. یک هارد دیسک جدید مادربرد قدیمی را حس می کند و یک مادربرد جدید یک هارد قدیمی را می شناسد و انتقال اطلاعات در هر یک از این شرایط در سرعت پایینی که هر دو بتوانند ساپورت کنند انجام می گیرند.

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

 

آموزش کامل نصب PHP بر روی Windows

مقدمات نصب PHP (مشترک در تمامی حالات) آخرین نسخهء PHP را از سایت رسمی PHP به آدرس http://www.php.net می گیریم. (توجه کنید که نسخهء installer را نگیرید.) فایل فشرده را باز کرده و در شاخهء دلخواه (در اینجا c:php) می ریزیم. به شاخهء c:php رفته و شاخه ای با نام tmp و شاخه ای با نام uptmp بسازید. (این نام ها اختیاری هستند) فایل php.ini-recommended که در شاخهء c:php وجود دارد را با notepade باز کرده، register_globals را پیدا کرده و مقدار جلوی آن را on کنید. سپس متغیر upload_tmp_dir را پیدا کرده و مقدار c:phpuptmp را در جلوی آن قرار دهید و متغیر session.save_path را نیز پیدا کرده و مقدار c:php mp را جلوی آن بنویسید. نصب PHP 4 روی IIS به صورت CGI فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpextensions تغییر دهید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی آن را حذف کنید و مقدار آن را برابر با صفر قرار دهید. فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید. در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید. در قسمت App Mapping مقادیر زیر را وارد کنید: Executable : C:phpphp.exe Extension : .php سرور را دوباره راه اندازی کنید. نصب PHP 5 روی IIS به صورت CGI فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpext تغییر دهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی آن را حذف کنید و مقدار آن را برابر با صفر قرار دهید. فایل libmysql.dll که در شاخهء c:php وجود دارد را در شاخهء ویندوز خود کپی کنید. فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید. در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید. در قسمت App Mapping مقادیر زیر را وارد کنید: Executable : C:phpphp-cgi.exe Extension : .php سرور را دوباره راه اندازی کنید. نصب PHP 4 روی IIS به صورت ISAPI فایل‌هاى c:phpphp4ts.dll و c:phpsapiphp4isapi.dll و c:phpdlls*.dll را در شاخه system ویندوز خود ذخیره کنید. فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpextensions تغییر دهید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی آن را حذف کنید و مقدار آن را برابر با صفر قرار دهید. فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید. در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید. در قسمت App Mapping مقادیر زیر را وارد کنید: Executable : C:{WIN_DIR}systemphp4isapi.dll Extension : .php سپس به برگهء ISAPI رفته و مقادیر زیر را وارد کنید: Filter Name : php Executable : C:{WIN_DIR}systemphp4isapi.dll سرور را دوباره راه اندازی کنید. نصب PHP 5 روی IIS به صورت ISAPI فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpext تغییر دهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی آن را حذف کنید و مقدار آن را برابر با صفر قرار دهید. فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید. فایل های php5isapi.dll و php5ts.dll که در شاخهء c:php وجود دارد را در شاخهء system ویندوز خود کپی کنید. فایل libmysql.dll که در شاخهء c:php وجود دارد را در شاخهء ویندوز خود کپی کنید. در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید. در قسمت App Mapping مقادیر زیر را وارد کنید: Executable : C:{WIN_DIR}systemphp5isapi.dll Extension : .php سپس به برگهء ISAPI رفته و مقادیر زیر را وارد کنید: Filter Name : php Executable : C:{WIN_DIR}systemphp5isapi.dll سرور را دوباره راه اندازی کنید. نصب PHP 4 روی Apache به صورت CGI فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpextensions تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید. در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام conf وجود دارد که در آن می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید. در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم: ScriptAlias /php/ "c:/php/" به قسمت AddType application رفته و سطر زیر را می نویسیم: AddType application/x-httpd-php .php در بخش Action application هم این خط اضافه می ‌شود: Action application/x-httpd-php "/php/php.exe" در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو قرار می دهیم، خط شما چیزی مشابه زیر خواهد شد: DirectoryIndex index.html index.htm index.html.var index.php سرور را دوباره راه اندازی کنید. نصب PHP 5 روی Apache به صورت CGI فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpext تغییر بدهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید. فایل libmysql.dll که در شاخهء c:php وجود دارد را در شاخهء ویندوز خود کپی کنید. در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام conf وجود دارد که در آن می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید. در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم: ScriptAlias /php/ "c:/php/" به قسمت AddType application رفته و سطر زیر را می نویسیم: AddType application/x-httpd-php .php در بخش Action application هم این خط اضافه می ‌شود: Action application/x-httpd-php "/php/php-cgi.exe" در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو قرار می دهیم، خط شما چیزی مشابه زیر خواهد شد: DirectoryIndex index.html index.htm index.html.var index.php سرور را دوباره راه اندازی کنید. نصب PHP 4 روی Apache2 به صورت Module فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpextensions تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید. فایل‌هاى c:phpphp4ts.dll و c:phpsapiphp4isapi.dll را در شاخه modules در شاخهء نصب Apache ذخیره کنید. در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام conf وجود دارد که در آن می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید. در بخشی که LoadModule ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم: LoadModule php4_module modules/php4apache2.dll به قسمت AddType application رفته و سطر زیر را می نویسیم: AddType application/x-httpd-php .php در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو قرار می دهیم، خط شما چیزی مشابه زیر خواهد شد: DirectoryIndex index.html index.htm index.html.var index.php سرور را دوباره راه اندازی کنید. نصب PHP 5 روی Apache2 به صورت Module فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی آن را به c:phpext تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید. فایل‌هاى c:phpphp5ts.dll و c:phpphp5isapi.dll را در شاخه modules در شاخهء نصب Apache ذخیره کنید. در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام conf وجود دارد که در آن می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید. در بخشی که LoadModule ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم: LoadModule php5_module modules/php5apache2.dll به قسمت AddType application رفته و سطر زیر را می نویسیم: AddType application/x-httpd-php .php در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو قرار می دهیم، خط شما چیزی مشابه زیر خواهد شد: DirectoryIndex index.html index.htm index.html.var index.php سرور را دوباره راه اندازی کنید.

7دلیل برای اینکه استفاده از PHP بهتر از Asp

مقدمه :

به دلیل سٶالات زیادی که در مورد این موضوع شده بود تصمیم گرفتم که کمی در مورد این موضوع تحقیق و نتیجه برای
استفاده همان در سایت IranPHP.net برای استفاده همگان قرار دهم . قبلا گفته باشم که اینها تنها برداشت های شخصی
من در این تحقیق می باشد و خوشحال می شوم که بقیه ایرادات من را در این تحقیق برایم ارسال کنند به دلیل اینکه من
تجربه کار با ASP را ندارم و همچنین بعضی اطلاعات من مربوط به ASP است و NET. را شامل نمی شود .

۱- سرعت ، سرعت ، سرعت
اولین باری که یک کد به زبان PHP نوشتم بر روی یک کامپیوتر Pentium 166Mhz بود بر روی سیستم عامل Linux و به
همراه Apache Web Server . بسیار برایم جالب بود که چقدر کد های من سریع اجرا می شوند . یعنی در آن موقع با
اگر شما یک Windows NT بر روی آن می توانستید سوار کنید و به فرض که IIS هم بر روی آن بالا می آمد فکر کنم
اصلا وقت Serve کردن صفحات عادی html را نداشت چه برسد به اینکه بخواهد ASP را هم اجرا کند . علتش این است
که Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم به
استفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine های
خارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیار
ادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود که
این را شما به خوبی می توانید در استفاده از MSSQL به طرق مختلف احساس کنید . مثلا اگر شما خود MSSQL Extentions
برای استفاده از MSSQL استفاده کنید برای یک Query مشترک ۱.۸۸ ثانیه زمان تلف می شود و اگر همان را با استفاده
از ODBC اجرا نماﺋید زمانی در حدود ۹.۵۴ ثانیه تلف می شود که این خود نشان می دهد که ASP اینها را به تنهاﺋی اجراء
نمی کند و از Engine های ویندوز استفاده می کند .


۲- استفاده بهینه از Memory
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و در
حقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . البته شنیدم که این مشکل در ویندوز ۲۰۰۰ و IIS5 حل شده است
اما بازهم برای کسانی که ASP را مینویسند و می خواهند آنرا بر روی سرور های Hosting که دارای سیستم عامل NT
هستند اجرا کنند مشکل زا است و باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .
این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده است
که صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .


۳- خرج اضافی ندارید !
مثلا در ASP اگر بخواهید از امکاناتی نظیر Encryption یا File Uploading یا ارسال نامه توسط کد برنامه استفاده کنید
باید امکانات اضافی برای این کار خریداری کنید و نصب کنید تا این امکانات به IIS شما اضافه گردد . این در حالیست که
در PHP همه اینها در هنگام Compile در نظر گرفته می شوند و همگی از امکانات Standard این زبان هستند و هیچ نصب
یا خرج اضافی در کار نیست .

۴- MySQL بهترین انتخاب، بیشترین سرعت
در اینجا قصد ندارد به مقایسه MySQL و MSSQL بپردازم . اما به خاطر قدرت خارق العاده MySQL و سازگار بودن این
DBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیاز
به نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است که شاید بعدا در
مورد MySQL مقاله ای نوشتم .

۵- نزدیک بودن Syntax به ++C/C و Java
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax های
این دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیری
دوباره Syntax دستورات دچار مشکل نشوید که مسلما Microsoft اصلا برایش این مساﺋل مشکل حساب نمی شود .

۶- رفع ایرادات ، سریع ، بی دردسر
تا حالا از Microsoft خواسته اید که ایرادی را در سیستمهای خود رفع کند ؟ مسلما اگر شرکت بزرگی مانند Boeing
نباشید حرف شما خیلی خریدار ندارد یا لااقل به این زودی ها به نتیجه نمی رسید .
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید و آنرا برای دستندرکاران PHP
ارسال کنید و یا اینکه در Mailing List های عمومی PHP موضوع را مطرح کنید و خواهید دید که از سراسر دنیا برای
رفع ایراد شما Patch ارسال می گردد .


۷- اجرا بر روی Platform های مختلف
درست است که خیلی از این ایرادات را Microsoft رفع خواهد کرد و Technology های جدیدتر اراﺋه خواهد کرد ( چه
بسا این Net. که الان آمده همه را درست کرده باشد ) اما یک مشکل اساسی برای ASP وجود دارد و آن این است که
ASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که در
سیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است .
اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاص
هیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعدا زیادی از OS ها را داراست که این یک
مزیت برای برنامه نویس ها محسوب می شود

آشنایی با فناوری DVD

آشنایی با فناوری DVD

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

DVD چیست ؟
DVD دیسک هایی هستند همانند CD با این تفاوت که می توانند اطلاعات بسیار بیشتری را نسبت به انها ذخیره کنند. یک DVD با فرمت معمولی می تواند تقریبا هفت برابر بیشتر از یک CD اطلاعات را در خود ذخیره کند. برخی از اطلاعاتی که بطور معمول در DVD قرار میگیرد بصورت زیر است :
- بیش از 133 دقیقه از فایل ویدیویی با کیفیت بالا که معمولا دارای فرمت MPEG2 است.
- فایل های صوتی به چندین زبان مختلف که به صورت دالبی ضبط شده اند.
- 8 ساعت موسیقی با کیفیت بسیار بالای CD -

- ساختار داخلی DVD
شعاع و ضخامت DVD همانند CD است و به روش مشابهی نیز تولید می شود اما انچه که حجم ذخیره سازی بالا را در یک DVD سبب می شود فشرده بودن طراحی آن است .
اطلاعات در DVD بصورت برامدگی هایی در سطح دیسک ذخیره می شوند . یک دیسک DVD از چندین لایه پلاستیک پلی کربنیت تشکیل شده است که با روش INJECTION بر روی هم قرار می گیرند . با این روش می توان دیسکی ساخت که برامدگی های موجود در سطح ان بر مارپیچی قرار گیرد که از مرکز اغاز شده و تا شعاع بیرونی دیسک ادامه میابد.
بعد از مرحله INJECTION لایه شفافی بر روی برامدگی های دیسک قرار می گیرد و بر روی ان یک لایه طلایی نیز قرار داده میشود که همانند یک عدسی لیزر DVD Player را بر برامدگی های دیسک متمرکز می کند . بعد از ان در پشت برامدگی ها یک لایه الومینیومی نیز قرار می گیرد . 

در پایان لایه ای لاکی شکل بر روی لایه های بیرونی قرار داده می شود و پس از فشرده سازی در زیر نور مادون قرمز قرار می گیرد تا پس از ان بر لایه پشت برامدگی ها برچسب DVD قرار داده شود. بدین ترتیب مراحل طراحی یک DVD یک طرفه کامل می شود.
رمز ذخیره سازی بالای DVD در فاصله بسیار کوچکی است که هنگام طراحی مارپیچ برامدگی های ان میان دور های متوالی در نظر گرفته می شود که به 740 نانومتر میرسد. علاوه بر ان برامدگی های روی سطح DVD نیز بسیار کوچک اند و ابعادی حدود 320 در 400 نانومتر دارند. 



DVD های صوتی
DVD هائی که برای داده های صوتی استفاده می شوند ، از قالب کاملاً متفاوتی نسبت به DVD های تصویری برخوردار هستند . تفاوت این نوع از داده های صوتی با انواع قبلی مثلاً در CD ها ، به خاطر کیفیت صدای ذخیره شده در آنهاست . این تفاوت در کیفیت کاملاً برای شنونده محسوس است . پخش کننده یا Player این نوع از فایلهای صوتی باید دارای این قابلیت باشد که 192khz/24-bit اطلاعات دیجیتال را به آنالوگ تبدیل کند . و این در حالیست که Player های رایج فقط قادر به تبدیل 96kHz/24-bit اطلاعات دیجیتال به آنالوگ هستند . در جدول زیر بین دقت و صحت اطعلات ذخیره شده در DVD ها و CD ها مقایسه ای انجام شده است 


DVD ها هم مانند CD ها می توانند در نهایت صخت و دقت خود 74 دقیقه صوت را ذخره کنند ولی این تفاوت وجود دارد که میزان کیفیت و نمونه برداری در DVD بسیار بالاتر از CD است . با دقت پائین تر یعنی حدود 96 khz/24-bit ، DVD می تواند حدود 7 ساعت صوت را در خود ذخیره کند .
هنگامی که CD یا DVD می خواهند اطلاعات صوتی را در خود ذخیره کنند ، یک سری نمونه برداری بیتی صورت می گیرد که هرچه تعداد این نمونه ها در واحد زمان بیشتر باشد ، کیفیت صدا به صدای اصلی نزدیکتر است . و هنگامی که Player هم در حال خواندن CD یا DVD است ، همان قسمتی که در بالا توضیح داده شد و وظیفه تبدیل اطلاعات دیجیتال به آنالوگ را بر عهده دارد ، مشخص می کند که چه ولتاژی باید در خروجی قرار بگیرد تا صوت مربوطه تولید شود . 

پخش کنندهDVD یا DVD Player :
عملکرد player ِ DVD همانند عملکرد Player CD می باشد . این هم باید با استفاده از یک دستگاه اشعه های لیزری به روی صفحه Disk می تاباند و بر اساس چاله هائی که روی صفحه موجود است می توان اطلاعات روی آن را بخواند . اطلاعات تصویری در DVD با فرمت MPEG-2 ذخیره شده است و پس از خواند این اطلاعات Player آنها را به صورت سیگنالهای تصویری تبدیل می کند . به همین ترتیب برای داده های صوتی که با استفاده از یک Decoder آن را می خواند و سپس تقویت می کند .
تجهیزاتی که برای خواندن داده ها بر روی DVD استفاده می شوند از سه قسمت اصلی تشکیل شده اند :
• یک موتور برای چرخاندن دیسک ، این موتور بسته به اینکه در حال خواندن کدام شیار است بین 200 تا 500 دور در دقیقه می چرخد .
• سیستم لیزر و لنز مربوطه برای اینکه تبتواند روی چاله ها تمرکز کرده و اطلاعات را بخواند . طول موج لیزر در DVD بسیار کمتر از سول موج آن در CD می باشد ، و به همین دلیل است که می تواند اطلاعات بیتری رادر خود ذخیره کند و بخواند . طول موج لیزر در DVD 640 نانومتر است در حالی که در CD 780 نانومتر می باشد. و این دلیل عمده برتری DVD بر CD است .
• سیستم پیگیری یا Tracking که می تواند لیزر را به شیآر مورد نظر برساند و قادر است با دقت میکرون حرکت کند .
Player لیزر را به سمت صفحه دیسک می تاباند و منعکس می شود ، سیستم پخش کننده قادر به تفکیک دو نوع بازگشت نور یعنی نوری که از چاله ها بازگشته و نوری که از صفحه اصلی بازگشته است را می تواند بوسیله یک وسیله نوری – الکتریکی تفکیک کند .
مشکل ترین قسمت در خواند اطلاعات از روی DVD ثابت نگه داشتن اشعه روی یک شیار مشخص است که این وظیفه سیستم پیگیری است . این سیستم باید همانیور که پخش کننده در حال خوانده اطلاعات است لیزر را به سمت بیرون هدایت کند و حرکت دهد . از آنجائی که با حرکت لیزر به سمت بیرون تعداد چاله هایئ که در واحد زمان از زیر لیزر رد می شوند بیشتر هستند ، موتور حرکت دهنده باید سرعت دیسک را کاهش دهد تا همواره نرخ ثابتی از چاله ها از زیر لیزر رد شوند .
نکته جالب توجه اینجاست که اگر DVD دارای دو لایه باشد ، شروع شیار لایه دوم در انتهای دیسک قرار می گیرد تا هد برای خواندن از لایه دوم لازم نباشد که ی: بار دیگر به اتدا بازگردد . این عمل خود باعث ایجاد سرعت در خواندن اطلاعات می شود .

قابلیتهای یک DVD :
• تماشای فیلمهای با کیفیت بالا به همراه صدای با کیفیت . اکثر فیلمهائی که به صورت DVD عرضه می شوند دارای صدای Dolby هستند و همان کیفیتی که شما در سینما می شنوید را به شما عرضه می کنند .
• کسی که فیلم DVD را طراحی این قابلیت را داراست که برای برخی قسمتهای فیلم لیبل قرار دهد و شما می توانید به راحتی به قسمت مورد نظر پرش کنید .
• Player ها ی DVD این قابلیت را دارا هستند که CD های صوتی را نیز پخش کنند.
• شما میتوانید فرمت نمایش تصویر را مشخص کنید .
• بسیاری از فیلمهائی که با DVD ذخیره شده اند برای زبانهای مختلفی زیرتویس دارند ، شما می توانید در حالی که در حال مشاهده فیلم هستید ، زیرنویس مورد نظر خود را انتخاب کنید ، تا در زیر فیلم به نمایش در آورده شود .

برخی دیگر از ویژگیهای DVD Player ها :
• دیکودر دیجیتال دالبی : این قابلیت برای تبدیْ اطلاعات صوتی در DVD به 6 کانال صوتی مجزا می باشد .
• دیکودر DTS : (Digital Surround Audio) این دیکودر این قابلیت را دارد که صدا را به صورت فراگیر به 6 کانال خروجی بفرستد .
• صدای شبیه سازی شده : اگر شما بخواهید که DVD Player را به یک سیستم با تنها دو بلندگو متصل کنید ، پخش کننده می تواند صدا را به روی دو بلندگو شبیه سازی کند و شما نیازی به 6 بلندگو نداشته باشید .
• کنترل از راه دور یا Remote : DVD Player ها می توانند سه نوع مختلف از کنترل را دارا باشند :
1. کنترلی که تنها خود DVD Player را کنترل می کند .
2. کنترلی که می تواند برخی از ساخته های کارحانچات دیگر را هم کنترل کند .
3. کنترلی با قابلیت یادگیری ، به این معنی که سیگنالهای بقیه کنترلها را می توان به کلید خاصی در این کنترل نسبت داد .

فهرست منابع و مراجع
DVD Demystified: The Guidebook for DVD-Video and DVD-ROM, by Jim Taylor
DVD Player Fundamentals, by Andrew Yoder
DVD Production, by Mark Ely

بررسی سیستم عامل Windows Server 2003

بررسی سیستم عامل Windows Server 2003

29 اردیبهشت 82 – بخش مقاله ITiran - همانطور که میدانید نسخه بعدی سیستم عامل سرور مایکروسافت که Windows Server 2003 نام دارد تولید و به بازار عرضه شده است. خیلی از کاربران از نسخه بتای این سیستم عامل با نام Windows .NET Server 2003 استفاده کرده بودند. مایکروسافت از چندی پیش نسخه نهایی را برای تست، در اختیار شرکتهای معتبر قرار داده بود. مایکروسافت در دو زمینه سیستم عامل های سرور و خانگی فعالیت دارد و پروژه ویندوز Longhorn (برای استفاده خانگی) به قوت خود باقیست. گویا انتخاب نام برای این سیستم عامل از طریف مایکروسافت بسیار دشوار بود زیرا ابتدا به اسم Whilstler معرفی شد و سپس به Windows 2002 Server تغییر نام داده شد ولی با ایجاد تکنولوژی .NET مایکروسافت به فکر استفاده از این نام تجاری در سیستم عامل خود افتاد و نام آن به Windows .NET Server 2003 تغییر یافت، که نسخه بتا نیز به همین نام به بازار عرضه شد، ولی در نهایت با تغییر نام به Windows Server 2003 به زودی به بازار جهانی ارائه خواهد شد. البته مایکروسافت اعلام کرده که با تغییر مکرر نام این محصول، هیچ تغییری در ساختار آن ایجاد نشده است.

حداقل سیستم مورد نیاز برای نصب:
سیستم عامل Windows Server 2003 در 4 نسخه به نامهای Standard – Enterprise – DataCenter و Web ارائه خواهد شد. در ادامه به بررسی خصوصیات و حداقل سخت افزار مورد نیاز برای هر نسخه از این سیستم عامل میپردازیم، در ضمن توجه داشته باشید که هیچگاه به حداقل ها بسنده نکنید و همیشه برای کارایی بهتر سیستم از قطعات مناسب تر و قویتری استفاده نمایید.

نسخه Web :
این نسخه برای مصارف سرورهای کوچک و همچنین خانگی به کار میرود و هدف اصلی آن فراهم نمودن Web Hosting برای وب سایتها و سرویس های وب با استفاده از IIS 6 میباشد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 133 MHz میباشد ولی پیشنهاد میشود از 550 MHz کمتر نباشد.
2- حداقل Ram مورد نیاز 128 MB میباشد ولی پیشنهاد برای کارایی بهتر 256 MB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 2 GB است.
3- مقدار فضای خالی لازم بر روی هارددیسک 1.5 GB است.
4- قابلیت پشتیبانی تا 2 عدد CPU بطور همزمان بصورت (Multi Processor).
نسخه Web این سیستم عامل 32 بیتی میباشد و قیمت آن 397$ است.

نسخه Standard :
این نسخه نیز 32 بیتی میباشد. برای استفاده از Client ها در این سیستم عامل Lincense های مختلفی وجود دارد. در صورتی که مایل به نصب 5 کامپیوتر Client در شبکه ای باشید که Server آن، این نسخه است میبایست نسخه ای به مبلغ 999$ پرداخت نمایید. مبلغ برای 10 عدد License نیز 1199$ میباشد. برای دریافت License بالاتر از این مقدار برای هر 5 عدد میبایست مبلغ 199$ پرداخت شود. در نظر داشته باشید که ممکن است کسی در کشور ما مبالغی برای License این سیستم عامل پرداخت نکند ولی توجه داشته باشید که سرورهای معتبر روی اینترنت در کشورهای صنعتی قرار دارند و قانون Copy Right برای همه آنها به دقت رعایت میشود. حداقل قطعات مورد نیاز برای نصب نسخه Standard ، دقیقا شبیه نسخه Web میباشد، با این تفاوت که در این نسخه قادر به استفاده از 4 عدد CPU بطور همزمان میباشید.

نسخه Enterprise :
این نسخه حرفه ای، برای سرورهای بزرگ در نظر گرفته شده که قیمت آن 3999$ و دارای 25 عدد License میباشد که به آن CALs (Client Access Lincences) نیز گفته میشود. این نسخه در دو سری 32 و 64 بیتی عرضه میشود و نکته مهم این است که نسخه 64 بیتی این سیستم عامل فقط با CPU های Intel Itanium و Athlon 64 (که به زودی ارائه خواهد شد) سازگار است و در سیستمهایی با CPU های 32 بیتی بطور کامل نصب نخواهند شد و کاربران را دچار مشکل خواهد کرد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 133 MHz در نسخه 32 بیتی و 733 MHz در نسخه 64 بیتی میباشد.
2- حداقل Ram مورد نیاز 128 MB میباشد ولی پیشنهاد برای کارایی بهتر 256 MB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 32 بیتی 32 GB و در نسخه 64 بیتی 64 GB است.
3- مقدار فضای خالی لازم بر روی هارددیسک در نسخه 32 بیتی 1.5 GB و در نسخه 64 بیتی 2.0 GB است.
4- قابلیت پشتیبانی تا 8 عدد CPU بطور همزمان.

نسخه DataCenter :
این نسخه کارآمدترین و پرقدرت ترین نسخه این سیستم عامل میباشد که مانند Enterprise دارای 2 سری 32 بیتی و 64 بیتی میباشد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 400 MHz در نسخه 32 بیتی و 733 MHz در نسخه 64 بیتی میباشد.
2- حداقل Ram مورد نیاز 512 MB میباشد ولی پیشنهاد برای کارایی بهتر 1 GB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 32 بیتی 64 GB و در نسخه 64 بیتی 128 GBاست.
3- مقدار فضای خالی مانند نسخه Enterprise میباشد.
4- برای استفاده از این نسخه حداقل میبایست از 8 عدد CPU بطور همزمان استفاده شود و حداکثر تا 32 عدد CPU را نیز پشتیبانی میکند.

مشکلاتی در پشتیبانی Multi Processer :
طبق گزارش شرکتهای تست کننده این سیستم عامل ، سیستمهایی که بصورت Multi Processor باشند و یکی از CPU های این سیستمها از نوع Pentium II یا Pentium Pro باشد، سیستم دچار مشکلاتی خواهد شد و تنها قادر به استفاده از یک CPU میباشد.
مایکروسافت با تایید این مشکل اعلام کرد که تنها راه حل در جهت رفع آن ارتقای CPU میباشد. پس بهتر است قبل و بعد از نصب این سیستم عامل، تمامی قطعات سیستم را مورد بررسی قرار دهید. هنگام نصب در اولین صفحه Setup ، گزینه ای با عنوان Check System Compatibility وجود دارد که با انتخاب این گزینه و سپس گزینه Check my system automaticaly میتوانید قبل از نصب، سیستم خود را از نظر حداقل سخت افزار مورد نیاز مورد بررسی قرار دهید.

بررسی اجزای داخلی :
مراحل نصب این سیستم عامل شبیه Windows 2000 میباشد، البته گزینه های کاربردی زیادی از جمله Dynamic Update که قادر است Update این ویندوز و Driver های مورد نیاز را بصورت Online از سایت مایکروسافت دریافت کند وجود دارد. بر روی تمام نسخه های این سیستم عامل .NET Framework نسخه 1.1 و همچنین وب سرور IIS 6.0 که ASP .NET را بطور کامل پشتیبانی میکند قرار دارد (در ادامه همین مقاله به بررسی بیشتر IIS خواهیم پرداخت). با رشد Web Service ها در دنیای امروزه و نیاز شدید به آنها در آینده ای نه چندان دور، مایکروسافت ابزارهای مختلفی برای گسترش دادن این سرویس ها در Windows Server 2003 قرار داده است. سرویسهای وب در محصولات مایکروسافت با ایجاد .NET گسترش یافته و بطور کل از طریق پروتوکول SOAP ارتباط برقرار میکنند. از جمله ابزار اضافه شده به این سیستم عامل Enterprise UDDI Services میباشد که در نسخه Web این سیستم عامل قرار داده نشده است. این ابزار مربوط به گسترش دادن Web Service های مختلف میباشد و تعامل بین آنها را فراهم میکند.
امکان دیگری با عنوان VPN (Virtual Private Network) نیز در تمامی نسخه های این سیستم عامل قرار دارد، البته در نسخه Web بصورت ناقص پشتیبانی میشود، این امکان قبلا در ویندوز XP ارائه شده بود. از دیگر تغییراتی که در این سیستم عامل قرار گرفته، آمادگی برای تغییر نسخه IP از 4 به 6 میباشد که در ادامه همین مقاله به بررسی نسخه های IP و تفاوت این دو خواهیم پرداخت. برای بررسی امنیت کاربران از راه دور نیز، Microsoft Passport در داخل سیستم عامل قرار گرفته است. Firewall یکی از ابزارهای الزامی در ارتباطات اینترنتی امروزه میباشد. برای امنیت داده ها ابزاری با نام ICF (Internet Connection Firewall) در تمامی نسخه های این سیستم عامل به غیر نسخه DataCenter قرار داده شده که این ابزار در Windows XP نیز وجود داشت که البته از کارایی چندانی برخوردار نبود ولی در ICF موجود در Windows Server 2003 تمامی مشکلات مربوط به این ابزار رفع شده و از کارایی بالایی برخوردار است. همانطور که میدانید Active Directory که یکی از اصلی ترین قسمتهای ویندوز سرور میباشد که در این نسخه از ویندوز تغییرات زیادی داشته که در ادامه همین مقاله بطور مختصر به بررسی مزایا و قسمتهای اضافی جدید آن خواهیم پرداخت. از جمله امکانات دیگر اضافه شده به Windows Server 2003 میتوان به این موارد اشاره کرد: پشتیبانی از استاندار 802.1x که مربوط به شبکه های بی سیم و یکی اس استانداردهای IEEE میباشد. تنظیمات خودکار در ارتباط چندین شبکه و همچنین پشتیبانی از Kerberos نسخه 5 و قابلیتی برای نصب سیستم عامل از راه دور.

تفاوت IP 4 و IP 6 :
ساختار اینترنت در حال تغییر است. اینترنتی که ما امروزه مصرف میکنیم Internet 1 میباشد ولی به زودی نسل جدید اینترنت که Internet 2 یا Grid Technology نام دارد جای آن را خواهد گرفت. پروژه اینترنت 2 در اختیار چندین کشور و شرکتهای بزرگی میباشد. اولین تغییری که در این دو نسل اینترنت مشاهده میشود تغییر ساختار IP است. همانطور که میدانید نسخه IP های فعلی در اینترنت 4 است و از نوع 32 بیتی (4 عدد 8 بیتی) میباشد، ولی IP های نسل جدید نسخه 6 (IPv6) میباشند که در حال حاضر Windows Server 2003 در تمام نسخه های خود آن را پشتیبانی میکند. همانطور که میدانید هر کامپیوتر در اینترنت میبایست دارای یک IP یکتا و منحصر بفرد باشد که در حال حاضر با رشد اینترنت تعداد IP هایی که IP نسخه 4 پشتیبانی میکند رو به اتمام است، از طرف دیگر Ipv4 تمام مقاصد امنیتی مورد نیاز را پوشش نمیدهد از این رو IPv6 که 128 بیتی میباشد به زودی جای IPv4 را خواهد گرفت.

مشکلاتی در استفاده از SQL Server :
نکته قابل توجه در استفاده از بانک اطلاعاتی SQL Server وجود دارد. هنگام Upgrade ویندوز 2000 به Windows Server 2003 در نظر داشته باشید که حتما میبایست SQL Server 2000 و همچنین MSDE 2000 به همراه Service Pack 3 قبلا نصب شده باشد و سپس اقدام به Upgrade سیستم عامل نمایید، در غیر اینصورت SQL Server دچار مشکل خواهد شد.
همچنین SQL Server 7 و MSDE 1.0 در این سیستم عامل پشتیبانی نمیشود. توجه داشته باشید که MSDE 2000 به همراه نرم افزارهای بسته Visual Studio و حتی خود SQL Server 2000 قابل نصب میباشد. اگر از سیستم عامل ویندوز 2000 که دارای SQL Server میباشد ولی SP3 به روی آن نصب نشده است اقدام به Upgrade ننمایید.

مزایای Active Directory در Windwos Server 2003 :
Active Directory در نسخه جدید ویندوز، 2 هدف اصلی را به شرح زیر دنبال میکند :

1- مدیریت و گسترش راحتتر :
2- در نسخه جدید ویندوز ، قابلیت و مدیریت Administrator ها حتی در محیطهای خیلی بزرگ توزیع شده با درختها ، دامنه ها و سایتهای فراوان، آسان شده است. یکی از ابزارهای مفید در این بخش، ADMT 2.0 (Active Directory Migration Tool) نام دارد که اجازه انتقال پسوردها از ویندوز NT یا 2000 به Windows Server 2003 را به شما میدهد. همچنین مدیران سرور قادر به تغییراتی در درختها ، دامنه ها و همچنین NetBios و DNS میباشند. مدیران سیستم به راحتی میتوانند ساختار Active Directory را که گسترش داده اند به دلخواه خود و بدون بروز مشکلی تغییر دهند.

3- امنیت بالاتر :
4- امنیت Active Directory نیز به مراتب، از ویندوز 2000 قویتر شده است. در نسخه جدید، مدیریت آسان بر اعتماد چندین درخت به یکدیگر به راحتی فراهم میشود که با استفاده از آن عمل Authentication به راحتی انجام خواهد شد. در این روش کاربران به راحتی و بدون نگرانی از عمل Login و وارد کردن ID و پسورد، قادر به استفاده از منابع درختهای دیگر در یک ساختار درختی Active Directory میباشند. این کار از طریق Kerberos و یا NTLM انجام میگیرد. همچنین نرم افزار Restriction Policies در بخش امنیت Active Directory وجود دارد که Admin را قادر میسازد که از نصب نرم افزارهای ناشناخته و غیراعتماد جلوگیری به عمل آورد و فقط برنامه های خاصی به روی سرور قابل نصب و اجرا باشند.

Windows Server Catalog چیست ؟
با استفاده از این ابزار در Windows Server 2003 ، کاربران با متصل شدن از طریق اینترنت به سایت مایکروسافت، قادر به ارسال مشخصات قطعات سخت افزاری دستگاه خود و همچنین نرم افزارهایی که به خوبی با ویندوز سازگار است میباشند. این ابزار شباهت زیادی به Windows XP Catalog دارد. این عمل دارای مزایای زیادی میباشد که به بررسی آن میپردازیم.
همانطور که میدانید خیلی از نرم افزارها و سخت افزارهای مختلف در دنیا با سیستم عاملهای گوناگون سازگار نیست. با این حرکت هر زمان که مشکلی در ویندوز و یا نرم افزار خاصی به وجود آید، مایکروسافت تمامی اطلاعات مربوط به دلایل Crash شدن را در فایلی ذخیره میکند و به محض اولین تماس با اینترنت به سایت خود ارسال خواهد کرد. شما با نصب Windows Server Catalog قادر به ملاحظه لیستی از تمامی گزارشها و مشکلات ویندوز خواهید شد.
این لیست توسط افراد مختلف در سراسر جهان به سایت مایکروسافت ارسال شده است. مایکروسافت نیز برای رضایت مشتری، مشکل مورد نظر را بررسی کرده و در Service Pack ها و یا نسخه های بعدی ویندوز رفع خواهد کرد، زیرا مایکروسافت به تنهایی نمیتواند تمام نرم افزارها و سخت افزارهای دنیا را در محصولاتش تست نماید و این عمل باعث رشد کیفیت سیستم عاملهای این شرکت خواهد شد. برای دستیابی به لیست نرم افزارها و سخت افزارهای ناسازگار با ویندوز XP و Windows Server 2003 یا میتوانید مستقیما به سایت مایکروسافت مراجعه نمایید و یا از طریق منو Start در خود ویندوز به این ابزار دسترسی داشته باشید.

کار با رجیستری در ویژوال بیسیک 6.0

رجیستری چیست ؟

سیستم عامل ویندوز تنظیمات سخت افزاری و نرم افزاری خود را بطور مرکزی در یک بانک اطلاعاتی با ساختار سلسله مراتبی ذخیره می کند که رجیستری نام دارد . رجیستری جایگزینی برای بسیاری از فایلهای پیکربندی INI ، SYS و COM است که در نسخه های اولیه ویندوز موجود بود . رجیستری ، سیستم عامل را با مهیا کردن اطلاعات موردنیز برای اجرای برنامه ها و load شدن component ها ، کنترل می کند .

رجیستری شامل انواع مختلفی از اطلاعات می باشد مثل :

- اطلاعات سخت افزارهای نصب شده روی سیستم
- اطلاعات درایورهای نصب شده روی سیستم
- اطلاعات برنامه های نصب شده روی سیستم
- اطلاعات پروتکلهای شبکه ای مورد استفاده در سیستم

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

اجزای رجیستری

اجزای تشکیل دهنده رجیستری عبارتند از :

1 – subtree : Subtree ها همانند folder های موجود در ریشه یک درایو هارد هستند . رجستری ویندوز دارای پنج subtree می باشد :
- HKEY_LOCAL_MACHINE : شامل تمام داده های پیکربندی برای کامپیوتر می باشد و شامل 5 key است :Hardware ، SAM ، Security ، Software و System
- HKEY_USERS : شامل داده های مربوط به تنظیمات سیستم عامل برای هر user است مثل تنظیمات desktop و محیط ویندوز
- HKEY_CURRENT_USER : شامل داده های کاربر فعلی سیستم
- HKEY_CLASSES_ROOT : شامل اطلاعات پیکربندی نرم افزار است مثل داده های OLE و داده های کلاسهای متناظر با فایل
- HKEY_CURRENT_CONFIG : شامل اطلاعات مورد نیاز برای تنظیمات داریورهای سخت افزاری و غیره
2 – Key : key ها همانند folder ها و subfolder های روی هارد هستند . هر key متناظر با object های نرم افزاری یا سخت افزاری می باشد . subkey ها key هایی هستند که درون یکسری key قراردارند .

3 – Entry : هر key دارای یک یا چند entry است . هر entry دارای سه بخش می باشد :
- نام Name
- نوع داده ای Data Type : مقدار هر entry یکی از انواع داده های زیر است :

 

REG_DWORD ، REG_SZ ، REG_EXPAND_SZ ، REG_BINARY ،
REG_MULTI_SZ ، REG_FULL_RESOURCE_DESCRIPTOT

- مقدار Value


نکته 1 : برای مشاهده رجیستری و اعمال تغییرات در آن ( لطفاً اگر هیچ تجربه ای در تنظیم کردن رجیستری ندارید اطلاعات آنرا تغییر ندهید ) ، می توانید از برنامه regedit.exe و یا regedt32.exe موجود در ویندوز استفاده کنید . برای اینکار کافیست نام برنامه را در کادر Run وارد کنید .

برای کار با رجیستری در ویژوال بیسیک کلاس Registery.bas را مطابق مطالب زیر ایجاد کرده و در پروژه های خود از آن استفاده کنید :

1 - تعریف ثابتهای مورد نیاز : برای نوشتن این کلاس نیاز به تعریف چهار دسته ثابت داریم :

- ثابتهای مربوط به تعریف data type های entry های رجیستری :

Global Const REG_SZ As Long = 1
Global Const REG_DWORD As Long = 4


- ثابتهای مربوط به تعریف key های رجیستری

Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003


- ثابتهای مربوط به خطاهای کار با رجیستری

 

Global Const ERROR_NONE = 0

Global Const ERROR_BADDB = 1
Global Const ERROR_BADKEY = 2
Global Const ERROR_CANTOPEN = 3
Global Const ERROR_CANTREAD = 4
Global Const ERROR_CANTWRITE = 5
Global Const ERROR_OUTOFMEMORY = 6
Global Const ERROR_INVALID_PARAMETER = 7
Global Const ERROR_ACCESS_DENIED = 8
Global Const ERROR_INVALID_PARAMETERS = 87
Global Const ERROR_NO_MORE_ITEMS = 259

 
- ثابتهای متفرقه
 

Global Const KEY_ALL_ACCESS = &H3F
Global Const REG_OPTION_NON_VOLATILE = 0

 
2 - Declare کردن Api های مورد نیاز : برای کار با رجیستری از توابع کتابخانه Advapi32.dll استفاده می کنیم . این توابع عبارتند از :


- تابع RegCloseKey : آزاد کردن handle مربوط به یک key
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
- تابع RegCreateKeyEx : ساخت یک key در رجیستری ( اگر key قبلاً وجود داشته باشد ، این تابع آنرا باز می کند ) :

 

Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long


- تابع RegOpenKeyEx : باز کردن یک key

 

Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long


- تابع RegQueryValueExLong : استخراج type و data ی یک نام متناظر با یک key باز شده

 

Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long
Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long


- تابع RegSetValueEx : ذخیره یک مقدار در فیلد value یک کلید باز

 

Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long


- تابع RegDeleteKey : پاک کردن یک کلید و کلیه اطلاعات مرتبط با آن

 

Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String)


- تابع RegDeleteValue : حذف مقدار یک key

Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String)


3 - توابع کمکی : برای نوشتن توابع اصلی کار با رجیستری نیاز به نوشتن توابع کمکی زیر است :
- تابع SetValueEx : با توجه به نوع داده یک کلید ، مقدار موجود در آنرا در یک متغیر ذخیره می کند :

 

Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
Dim lValue As Long
Dim sValue As String
Select Case lType
Case REG_SZ ' type of value is string
sValue = vValue
SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))x
Case REG_DWORD ' type of value is Double word
lValue = vValue
SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)x
End Select
End Function


- تابع QueryValueEx : سایز و نوع داده ای یک داده را که باید خوانده شود مشخص می کند .

Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As String, vValue As Variant) As Long
Dim cch As Long
Dim lrc As Long
Dim lType As Long
Dim lValue As Long
Dim sValue As String
lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch)x
Select Case lType
' For strings
Case REG_SZ:
sValue = String(cch, 0)x
lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, sValue, cch)x
If lrc = ERROR_NONE Then
vValue = Left$(sValue, cch)x
Else
vValue = Empty
End If
' For DWORDS
Case REG_DWORD:
lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, lValue, cch)x
If lrc = ERROR_NONE Then vValue = lValue
Case Else
'all other data types not supported
lrc = -1
End Select
QueryValueExExit:
QueryValueEx = lrc
Exit Function
QueryValueExError:
Resume QueryValueExExit
End Function


4 - توابع اصلی : توابع مربوط به پاک کردن یک کلید از رجیستری ، ساخت یک کلید جدید در رجیستری و مقداردهی به یک کلید :

- تابع DeleteKey : این تابع یک کلید از رجیستری را حذف می کند . دارای دو پارامتر ورودی است :
Location که یکی از مقادیر HKEY_CLASSES_ROOT ، HKEY_CURRENT_USER
، HKEY_LOCAL_MACHINE و یا HKEY_USERS است .
KeyName که نام کلیدی است که باید از رجیستری حذف شود . این کلید ممکنست شامل subkey هایی نیز باشد مثلاً Key1SubKey1

Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)x
Dim lRetVal As Long
lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)x
DeleteKey = lRetVal ' return function value

End Function

 
- تابع DeleteValue : این تابع یک entry را از کلید حذف می کند . دارای سه پارامتر ورودی است : Location ، KeyName و ValueName که نام آن value را مشخص می کند .
 

Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)x
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
lRetVal = RegDeleteValue(hKey, sValueName)x
RegCloseKey (hKey)x
DeleteValue = lRetVal
End Function

 
- تابع CreateNewKey : این تابع یک کلید جدید ایجاد می کند . دارای دو پارامتر ورودی است : Location و KeyName

Public Function CreateNewKey(lPredefinedKey As Long, sNewKeyName As String)x
Dim hNewKey As Long
Dim lRetVal As Long
lRetVal = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)x
RegCloseKey (hNewKey)x
CreateNewKey = lRetVal
End Function

 
- تابع SetKeyValue : این تابع پارامتر data یک entry را تنظیم می کند . دارای 5 پارامتر ورودی است : Location ، KeyName ، ValueName ، ValueSetting و ValueType

Public Function SetKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long)x
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)x
RegCloseKey (hKey)x
SetKeyValue = lRetVal
End Function

 
- تابع QueryValue : این تابع فیلد داده یک entry را برمی گرداند . دارای سه پارامتر ورودی است : Location ، KeyName و ValueName

Public Function QueryValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)x
Dim lRetVal As Long
Dim hKey As Long
Dim vValue As Variant
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)x
lRetVal = QueryValueEx(hKey, sValueName, vValue)x
QueryValue = vValue
RegCloseKey (hKey)x
End Function


ساخت یک انتصاب فایل یا File Association به یک برنامه

در این درس می خواهم با استفاده از کلاسی که در درس قبل معرفی شد تابعی بسازیم که توسط آن بتوانیم فایلهای با پسوندی مشخص را به یک برنامه اختصاص دهیم . بعبارت دیگر تابعی بنویسیم که اطلاعات لازم برای باز شدن فایلهایی با پسوند xxx را توسط برنامه MyApp.exe در رجیستری ثبت کند .

 

Public Sub CreateAssociation(sExtension As String, sApplication As String, sAppPath As String)x
Dim sPath, sAppExe As String
CreateNewKey "." & sExtension, HKEY_CLASSES_ROOT
SetKeyValue HKEY_CLASSES_ROOT, "." & sExtension, "", sApplication & ".Document", REG_SZ
CreateNewKey sApplication & ".Documentshellopencommand", HKEY_CLASSES_ROOT
SetKeyValue HKEY_CLASSES_ROOT, sApplication & ".Document", "", sApplication & " Document", REG_SZ
sPath = sAppPath & " %1"x
sAppExe = sApplication & ".exe"x
SetKeyValue HKEY_CLASSES_ROOT, sApplication& ".Documentshellopencommand", "", sPath, REG_SZ
CreateNewKey "SoftwareMicrosoftWindowsCurrentVersionExplorerFileExts." & sExtension, HKEY_CURRENT_USER
SetKeyValue HKEY_CURRENT_USER, "SoftwareMicrosoftWindowsCurrentVersionExplorerFileExts." & sExtension, "Application", sAppExe, REG_SZ
CreateNewKey "Applications" & sAppExe & "shellopencommand", HKEY_CLASSES_ROOT
SetKeyValue HKEY_CLASSES_ROOT, "Applications" & sAppExe & "shellopencommand", "", sPath, REG_SZ
End Sub

 
کاربرد این تابع بصورت زیر است :

 

CreateAssociation("xxx","MyApp","c:MyApp.exe")x


اجرا شدن یک برنامه در هنگام راه اندازی سیستم
فرض کنید می خواهیم برنامه ای بنویسیم که هر بار در هنگام راه اندازی سیستم بطور خودکار اجرا شود. البته نمی خواهم در startup ویندوز دیده شود .
برای این کار باید برنامه موردنظر را در StartUp رجیستری قرار دهیم . به این ترتیب که در یکی از کلیدهای زیر یک مقدار رشته ای جدید(String Value) ایجاد کنیم و آدرس برنامه را در آن وارد کنیم :

 

HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

 
برای مثال اگه اسم برنامه مورد نظر MyApp و مسیرش C:WindowsMyApp.exe است باید بصورت زیر عمل کرد :

 

SetKeyValue HKEY_LOCAL_MACHINE, "SOFTWAREMicrosoftWindowsCurrentVersionRun", "MyApp", "C:MyApp.exe", REG_SZ

 
نکته : البته دو تا راه دیگر برای اینکار وجود دارد که برخی تروجان ها هم از این روشها استفاده می کنند تا روی سیستم باقی بمانند :
یکی استفاده از win.ini و نوشتن نام فایل جلوی = run و دیگری استفاده از system.ini و نوشتن نام برنامه جلوی خط explorer.exe .