مقدمه :
Perl مخفف ( Practical Extraction and Report Language ) می باشد که یک زبان اسکریپت نویسی می باشد .
منظور از اسکریپت نویسی این است که این نوع زبان نیازی به کامپایلر ندارد و برای استفاده از آن به مفصر آن نیاز داریم ، مفصر زبان پرل ActivePerl می باشد .
امروزه پرل در تمامی سیستم عامل ها استفاده می شود و بین برنامه نویسان دوست داشتنی و منحصر به فرد می باشد .
پرل یک زبان آسان برای یادگیری و استفاده می باشد .
چرا پرل ؟
پرل در منظر هک بسیار جا افتاده است ، در حدود 70% Exploit ها را با زبان پرل می نویسند بیشتر هکرها در ابتدا پرل را برای Exploting انتخاب می کنن و دلیل آن هم آسان بود ، انعطاف پذیری ، دانلود راحت ( اوپن سورس بودن ) و استفاده راحت از مفصر آن می باشد .
چنین صفتهای هر هکری رو علاقمند به پیدا کردن آسیبپذیری و نوشتن Exploit با پرل می شود .
( واقعا نمی دانید پیدا کردن یک آسیبپذیری و نوشتن Exploit چه احساسی رو به یک فرد میده و می تونه منشا خیلی از پیشرفتها بشه یادم نمی ره اولین باری رو که با PHP یک Exploit برای یک آسیبپذیری BOF نوشتم البته درست بود که اولین Exploit رو برای باگی نوشتم که خودم پیدا نکرده بودم ولی لذت نوشتن Exploit و نتیجه دادن آن چه حسی داره .
الان هم روی آسیب پذیریهای ActiveX کار می کنم و به نتایجی هم رسیدم که برای Ba X تیم محفوظ است .)
پایه
قبل از شروع اسکریپت نویسی با perl به دو ابزار نیاز دارید اولین ابزار مفصر perl است که برای اجرای کدها بر روی سیستم خود به آن نیاز دارید که نام این مفصر ActviePerl می باشد و می توانید www.activestate.us دریافت و استفاده کنید .
دومین ابزار که به آن نیاز داریم یک نرمافزار متن نویسی است که ما از DZSofts Perl editor استفاده می کنیم که آن رو هم می توانید از www.dzsoft.com دریافت کنید .
البته texteditor های زیادی وجو دارد که ما از DZsofts perl editor استفاده می کنیم . اگر حاله دانلود ندارید notepad بهترین گزینه برای این کار است .
همه ای فایلهای پرل نیز مانند دیگر زبانهای برنامه نویسی پسوند خاص خود را دارند . تمامی فایلها در پرل با پسوند .pl ذخیره می شوند .
حالا تمامی ابزار مورد نیاز رو روی سیستم خود نصب کرده و سوار کشتی شوید که هدایت گر آن خود شما هستید ( اصطلاح است شاید به انگلیسی معنی بهتری بده .)
ساختار ساده ای این زبان به شما کمک می کنه تا به راحتی به آن عادت کنید در ضمن با فرا گرفتن این زبان زبانهای دیگر هم برای شما قابل فهمتر می شوند زیرا تمامی زبانهای برنامه نویسی همه یکی هستند فقط با کمی تغییرات ( کمی هم با تغییرات زیاد .)
پایه و اساس هر زبان برنامه نویسی با برنامه hello World است که ساده ترین مثال برای هر زبان است ما هم این شروع می کنیم .
اجازه بدهید یک کد ساده رو با هم بررسی کنیم ;
#!/usr/bin/perl –w
Print “HelloWorld\n”;
کدهای بالا را در texteditor خود نوشته و آن را با پسوند helloworld.pl ذخیره کنید . سپس آن را در command prompt خود فراخوانی کنید حالا به هر نحوه به نظر بگیرید و یندازید تو command prompt و کلید enter رو فشار دهید .
چیزی که مشاهده می کنید دو کلمه زیر می باشد .
Hello World
حالا کد مورد نظر رو با هم تفصیر می کنیم .
خط اول #!/usr/bin/perl –w که نشان می دهد این برنامه به زبان پرل نوشته شده است .
در آخر خط –w بررسی می کنه متغییر به طور صحیح در برنامه به کار بره البته خیلی ساده است .
خط دوم print “Hello World\n”; هستش.
Print کار چاپ مقدار ها رو انجام می ده یعنی هر چی بعد از print بیاد در خروجی چاپ می شه . مانند دستور echo در زبان PHP و یا دستور Printf در C++ که کار مشابه ای انجام می دهند .
استفاده از ; هم مهم است و در پایان هر سطر باید از آن استفاده کرد این به مفصر می گه که این سطر به پایان رسیده و لطف کن برو خط بعدی ;) …..,
علامت ( کاراکتر ) \n هم به معنی این است که کلمات بعدی باید به سطر زیر روند .
در perl کاراکترهای مخصوص زیادی وجود دارد که در جدول پایین مهمترینها را با هم بررسی می کنی :
Character ( علامت) |
Meaning ( مفهوم) |
\n
\r
\t
\b
\a
\L
\l
\U
\u |
هر نوشته بعد از این کاراکتر به خط بعدی منتقل می شود .
کلمه ای بعد از خودش رو به اول سطر بر می گردونه .
وقتی که بخواهیم بین کدها اندازه یک tab فاصله بیندازیم استفاده می شود . .1tab=5Character
با استفاده از این کاراکتر فاصله ای تمامی کدها از یکدیگر به یک اندازه خواهد بود .
با این دستور می توانید یک اختار بدید (Alert) .بر ای تون بوق می زنه .
تمامی حروف بعد از خود را به حروف کوچک تبدیل میکند .
حرفی که بعد از این علامت قرار گیرد به حرف کوچک تبدیل می شود .
این علامت عکس \L عمل میکند تمامی حرفهای بعد از به حروف بزرگ تبدیل می شوند .
حرفی که بعد از علامت بیائید به حرف بزرگ تبدیل می شود . |
در جدول بالا مهمترین کارکترهای مورد استفاده در perl دیدید . از دیگر کاراکترها می توان به \f و \v و \e اشاره کرد .(کار هر یک را می توانید خود یکی یک تست کنید و ببینید .)
برای مثال میتوانیم استفاده کنیم از کاکترهای ویژه در زیر
برای نحوه ای استفاده از این کاکترها به مثال زیر توجه کنید ;
#!/usr/bin/perl –w
print "Hello\tWorld\n\a";
پرل هم مثل دیگر زبانهای برنامه نویسی دارای متغییر است (Variables ) است . متغییرها در پرل نگه داری می شوند ( دایمی یا موقت ) و میتوان شامل بشه Numbers و Strings و almost و Length .
متغییرها در پرل با $ شناسائی میشوند یعنی در واقع $ بخشی از متغییر است برای مثال متغییر $Hello که می توان به آن مقدار داد برای مثال $Hello=”Hello World\n”; که بعد از قرار دادن = می توان به متغییر مقدار داد .
برای درک بهتر یک کد رو با هم می بینیم ;
#!/usr/bin/perl –w
$Hello=”Hello World\n”;
Print $Hello;
همان طور که گفته شد متغییر در این برنامه $Hello می باشد و مقدار آن هم معلوم می باشد که برابر با “Hello World\n” است .
در پرل فقط double quotation marks وجود ندارد ، ولی نحوه ای استفاده مهم است . استفاده از Single Quotation Marks در آرایه ها است و می توان عوض کرد و از double quotation Marks استفاده کرد .
برای مثال اگکر در کدی که در بالا استفاده کردین به جای ( “ ) از ( ‘ ) استفاده کنیم هر چی که در quotation marks هست نشون می دهد و دیگر عملگر \n کار نمی کند و مانند Hello World در خروجی چاپ می شود . برای درک بهتر به دو کد زیر توجه کنید :
#!/usr/bin/perl –w
$Hello=”Hello World\n”;
Print $Hello;
در این کد خروجی به صورت => Hello World چاپ می شود .
حالا کد دوم را که از Single quotation Marks استفاده شده رو با هم تست می کنیم :
#!/usr/bin/perl –w
$Hello=’Hello World\n’;
Print $Hello;
خروجی در این برنامه به صورت Hello World\n چاپ می شود در واقع عملگر \n بی اثر می شود .
تفوت اصلی بین این نوع نقل قول چزیری بود که گفته شد . در نقل قول ( “ ) مقدار تفصیر می شود ولی در نقل قول ( ‘ ) فقط مقدار چاپ می شود .
حال خود برنامه نویس بر حسب نیاز خود از ( “ ) و ( ‘ ) استفاده می کند .
در پرل برای مقدارهای دمدستی از متغییر استفاده کرد و بنا استفاده برنامه نویس در مواقع نیاز آن را فراخوانی می کند و در واقع به یک تابع String استفاده کنیم . و می توانیم هر وقت که بخواهیم از آن استفاده کنیم . به مثال زیر توجه فرمائید :
#!/usr/bin/perl –w
$Yourname=”TOURNAME”;
Print “Hello” . “ “ . “World” . “ “ . “MY” . “ “ . “ Name” . “ “ . “ Is” . “ “ . “$Yourname” .”\n”;
در بالا Hello World My Name Is YOURNAME در خروجی چاپ می شود ،این یک مثال در نحوه ای اضافه کردن رشته به یک تابع بود .
به نظر می آید که این نوع کد نویسی و استفاده از String سخت و شلوغ باشد و هکرهای کند ذهن مثل من نفهمند روشهای دستی برای انجام این کار را بعدا با هم مرور می کنیم .
پرل یک زبان قدرتمند و شگفت انگیز در محاسبات اعداد و ارقام می باشد .
در پایین می توانید یک مثال را در این مورد ببینید :
#Adding, Subtracting, Multiplying, and Dividing in Perl
#Perl can do all basic math functions and more.
$b = 5 * 5; #Multiplication
$x = 12 - 5; #Subtraction
print $a . " " . "ADDITION: The solution should be 8.\n";
print $b . " " . "MULTIPLICATION: The solution should be 25.\n";
print $c . " " . "DIVISION: The solution should be 5.\n";
print $x . " " . "SUBTRACTION: The solution should be 7.\n";#Autoincrementing and Autodecrementing
print "$Count\n";#The Same Thing but easier to read
$Count1 += 1 ; #Decrement $Count1 -=1 1
print "$Count1\n";#Square Root
print "The square root of 121 is $Square\n";#Exponents
Learning Perl
Writing Exploits
در این سری برای شما کتاب Learning Perl – writing Exploit رو برای شما ترجمه کردم از Warpboy که این کتاب کتابی برای نوشتن exploit با پرل میباشد . که در ابتدا پیش نیاز perl برای socket Programming رو گفته و بعد از معرفی کتابخانه LibWWW که کتابخانه مربوط به اینترنت و ساکت پروگرامینگ می باشد و بعد هم چند مثال برای Exploiting با perl گفته شده است .
لیست بخش های کتاب بصورت لیست پایین می باشد . هر 2 سه روز 1 بار یک بخش رو برای شما در اینجا قرار می دم و در آخر کل سورس کدها رو برای upload می کنم که بتونید دانلود کنید .
در آخر اگر سوالی داشتید می تونید با من تماس حاصل فرمائید /...
هر کمکی از دستم بر بیاد براتون انجام می دم . برای دیدن بخش ها به ادامه مطلب مراجعه فرمائید /....
موفق و شاد باشید /....