Wednesday, December 30, 2009

ව්‍යාවසාදනය – bash කාව්‍යකරණයේ අත්ගුණය


කාව්‍යකරණයක් ගැන නොවැ මං කියල තියෙන්නේ... කලා රසයෙන් යුත් කවි දෙපදක් රස විඳින්න හිතාගෙන මේ පැත්තෙ ආපු අයගෙන් මුලින්ම මං සමාව අයදිනවා... නෝනාවරුනි, මහත්වරුනි.... ඔබේ බලාපොරොත්තු කඩවෙනවා. :-)

පරිගණක ක්‍රමලේඛණයට අධික ඇල්මක් දක්වන නිසා ඒක මට දැනෙන්නෙ කාව්‍ය රචනයක් වගේ.... මම දන්නෙ නෑ අනිත් අයටත් එහෙමද කියල. එදිනෙදා ඇති වෙන ලොකු - පොඩි ගැටළුවකදි ශිල්ප දාලා program කෑල්ලක් අටවගන්න එක පරිගණකත් එක්ක ගෙවෙන මගේ ජීවිතේ සාමාන්‍ය දෙයක් බවට පත් වෙලා. ඇත්තෙන්ම මම පරිගණක ක්‍රමලේඛණයේ අපූර්වත්වය විඳින්න පුරුදු වෙලා තියෙනව කිව්වොත් නිවැරදියි, programming is passion!

එතකොට ව්‍යාවසාදනයක් (disinfect) ගැන කියල තියෙන්නෙ මොකක්ද? මේ සටහන මගේ පසුගිය සටහනට සම්බන්ධයි. ඒකෙ ඉතිරි කොටස කියමුකෝ. මෙතනින් එහාට යන්න කලින්, මම මීට කලින් ලියූ බ්ලොග් සටහන වරක් කියවල මේ පැත්තෙ එන්න පුළුවන් නම් ඉතාම හොඳයි. මීළඟ අභියෝගය වුණේ malware හේතුවෙන් ආසාදිත වී තිබුණු ගොනු ටික හොයා ගන්න එකයි, වෙබ් අඩවිය සම්පූර්ණයෙන් ශුද්ධ කරන එකයි. (ආසාදිත ගොනු ටික කිව්වට පසුව සොයා බැලුවම 602ක්!)

මම කළ ප්‍රතිකර්මය කියන්න කලින් මම මේකෙ මුල් කොටසට ආපු ප්‍රතිචාර ගැන යමක් සඳහන් කරන්න හිතුවා. ලැබුණු ප්‍රතිචාර වලින් මම තෘප්තිමත්. එහෙම නොවුණනං දෙවෙනි කොටසක් ලියවෙන්නෙ නැහැනේ. :-)  හැබැයි, මේ වගේ තාක්ෂණික ලියවිලි වලදි මම ප්‍රතිචාර වලින් බලාපොරොත්තු වෙනවා තවත් යමක්. ඒ මගේ අඩු පාඩු. මම පොට වරද්දාගෙන තියෙන තැන්... නොමග ගිය තැන්... සටහන් අන්තර්ගතයෙ වැරදි... වගේ දේවල්. ඒ විතරක් නෙවෙයි සමහර අය වැරදි වැටහීමක් ඇති කරගෙන තිබුණා මේ ආසාදිත වෙබ් අඩවිය ශාකුන්තල.com කියලා. ඒක එහෙම නැහැ, ශාකුන්තල.com බොහොම සුවසේ තියෙනවා. ජනවාරි පළවෙනිදා ස්වයංක්‍රීවයම දියත් වෙන අළුත් නැවක් ඒක. ආසාදිත වෙබ් අඩවිය මට අයිති එකක් නෙවෙයි. ඒකෙ නම රහසක්. ;-)

ඉතින්... මම ලිව්ව එක ආපහු නිවී හැනහිල්ලෙ කියවනකොට මට දැනුණා අවුලක්. අන්තර්ගතය, නිගමන... ඒවයෙ අවුලක් පේන්න නෑ. අවුල තියෙන්නේ මම ගිය පාර.

අපේ පැත්තේ වලි වල සුලභ දෙයක් -- එකෙක් ගුටි කනවා තව එකෙක්ගෙන්... දැන් ගුටි කාපු එකාට ඕනේ පුළුවන් ඉක්මනින් ආපිටට නෙළන්න. සමහර විට ආපිටට නෙළන්න කල්ලි පිටින් යන්නෙ ගුටි කාපුවයෙ ඉදිමුම්වත් බහිනකම් ඉන්නෙ නැතුව. ඉතිං මේ වෙබ් අඩවි සංසිද්ධියෙදිත් මම කරල තිබුණේ එහෙම දෙයක්. අපේ වෙබ් අඩවියට වෙච්ච හානිය ගැන මුලින් තක්සේරුවක් කරනවා වෙනුවට මම කළේ වෙබ් අඩවියට ප්‍රහාරය එල්ල කළේ කවුද,.. කොහෙන්ද,... ආපිටට නෙළන්නෙ කොහොමද... ඔන්න ඔය වගේ විකාර හොයපු එක. මාර ඇඩ්මින් නේද? :P (හැබැයි ඒ සෙවිල්ල යම් තරමකින් හෝ වැඩක් ඇති දෙයක්)

හරි... දැන් ආපහු එමුකො මාතෘකාවට. හැම index ගොනුවක්ම සහ හැම javascript ගොනුවක්ම ආසාදනය වෙලා තියෙන බව සොයාගන්න පුළුවන් වුණු නිසා මුලින් මගේ අදහස වුණේ උපස්ථයකින් (backup) වෙබ් අඩවිය යළි පිහිටුවන්නයි. තිබුණු අළුත්ම උපස්ථයත් සෑහෙන පරණ ගතියක් දැනුණු නිසා මට backup වැඩේ හිතට හරි මදි. කොහොමටත් Backup & Restore මට එච්චර දිරවන මාතෘකාවක් නෙවෙයි.

ඒ නිසා මම කල්පනා කළා PHP වලින් සෙල්ලමක් දාලා ස්වයංක්‍රීයව ආසාදිත ගොනු ටික හොයාගෙන ඒවයෙ තියෙන ආගන්තුක කේත කොටස් ඉවත් කරන්න ක්‍රමයක් හදන්න. ආසාදනයේ ස්වභාවය අනුව මේක කරන්න පුළුවන් දෙයක්. නමුත්, PHP වලින් කරනවනම් ආරක්ෂාව ගැන තවදුරටත් හිතන්න වෙනවා. ඒකත් අමාරු දෙයක් නෙවෙයි.

Web hosting ආයතනය විසින් ssh ප්‍රවේශ පහසුකම් සලසා තිබුණු නිසා ssh හරහා වෙබ් අඩවියට පිවිසිලා මේ කාරණය ඉටු කරගන්න පුළුවන් බවත් මට වැටහුණා. මෙහෙයුම් පද්ධතිය විධියට ලිනක්ස් පාවිච්චි කරන මට bash එක්ක වැඩ කරනවා කියන්නේ අතිශයින්ම සාමාන්‍ය දෙයක්. ssh ප්‍රවේශ පහසුකමත් තියෙන නිසා, පරිගණකයත් එක්ක කතා බහ කරන්න මම නිතර පාවිච්චි කරන bash scripting මේ වැඩේට PHP වලට වඩා සුදුසු බව තේරුම් ගන්න මට වැඩි වෙලාවක් ගියේ නැහැ. අවසානයේ 'ඇන්ටිවයිරස්' එක bash පාවිච්චි කරලා linux shell script එකක් (මගේ වචන වලින් නම් bash කාව්‍යයක්) විධියට සකස් කරන්න තීරණය කළා.

අපි ලියන ක්‍රමලේඛයක අහම්බෙන් සිදු විය හැකි එක කුඩා විචල්‍යයක (variable) වරදක් නිසා සමහර විට පද්ධතියේ සියළු දත්ත ක්ෂණයකින් විනාශ වෙන්න පුළුවන්. ඒ වගේ අවදානමක් ගන්න ඕනේ නැති නිසා මම ලියන ක්‍රමලේඛය පරීක්ෂණ ධාවනයට (test run) ලක් කරන්න වෙබ් අඩවි ගොනු සියල්ල මගේ පරිගණකයට පිටපත් කරගත්තා.

$ ssh user@mysite.com

දැන් අපි සර්වර් එක ඇතුළේ...

$ tar cvfj mysite.tar.bz2 mysite/
$ exit

Compressed archive එකක් නිර්මාණය කළා. දැන් ඒක මගේ පරිගණයට ඩවුන්ලෝඩ් කරගන්න ඕනේ...

$ scp user@mysite.com:/home/user/mysite.tar.bz2 /home/shaakunthala/

දැන් පැක් එක ලිහන්න ඕනේ...

$ tar xvjf mysite.tar.bz

දැන් ලිහපු පැක් එක පැත්තක තියෙද්දි මගේ සුපුරුදු එඩිටරය වන vim පාවිච්චි කරලා shell script එක ලිවීම ආරම්භ කළා. ලියන්න කලින් අවශ්‍යතාව අවබෝධ කරගන්න ඕනේනේ... මෙන්න මෙහෙමයි ආසාදනයේ ස්වභාවය:
  • ආසාදිත ගොනු වල ආගන්තුක කේත කොටස තියෙන්නේ ගොනුවෙ අවසාන පේළිය ලෙස.
  • ආගන්තුක කේත කොටස තැනින් තැනට වෙනස්. නමුත් පොදු රටාවක් ලෙස එහි පහත දැක්වෙන පාඨ කොටස් හඳුනාගන්න පුළුවන්. ඒ නිසා සංකීර්ණ regexp ලිවීම අනවශ්‍යයි.
    • GNU GPL
    • window.onload
    • .replace
  • ආසාදනය වෙලා තිබුණෙ index ගොනු සහ javascript ගොනු පමණයි. (මෙය නිවැරදි තක්සේරුවක් කියා පිළිගන්න අපහසු දෙයක්. මේ නිසාත්, අපේ වෙබ් අඩවියෙ ශ්‍රව්‍ය-දෘෂ්‍ය වගේ විශාල ගොනු නොතිබුණු නිසාත් සියළුම ගොනු පරීක්ෂා කෙරෙන script එකක් ලිවීමෙන් වරදක් වෙන්නෙ නැහැ)
මේ කාරණා සැලකිල්ලට අරගෙන මුළු වෙබ් අඩවියම එකවර ශුද්ධ කරන script එකක් ලිවීම බොහොම පහසු කාරණයක් වුණා. bash functions සහ find -exec / xargs අතර පරහක් තියෙන නිසා මට script එක කොටස් දෙකකට වෙන් කරන්න සිදු වුණා.

sitefix.sh
#!/bin/bash
# Author: Sameera Shaakunthala

rm fixlog.txt
rootdir=`pwd`/mysite/
sup=`pwd`"/fixfile.sh"
find $rootdir -exec $sup {} \;
echo "JOB DONE!"

fixfile.sh
#!/bin/bash
# Author: Sameera Shaakunthala

echo "Processing file: "$1
code=`tail --lines=1 $1 | grep "GNU GPL" | grep window.onload | grep .replace`
l=`echo $code | wc -m | awk '{ print $1 }'`

if [ $l -ne 1 ]
then
 lc=`wc -l $1 | awk '{ print $1 }'`
 lc=`expr $lc - 1`
 head $1 -n $lc > tempfile.tmp
 mv tempfile.tmp $1
 echo "File "$1" has been fixed!" | tee -a fixlog.txt
fi

දැන් පරීක්ෂණ ධාවනය. මේක හරි ගියොත් වැඩේ තිතටම හරි.

$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

මේක අහවර කරලා fixlog.txt ගොනුව පරීක්ෂා කරල බැලුවා.... ආසාදිත ගොනු 602ක්! අහඹු ලෙස ගොනු කීපයක් පරීක්ෂා කරල බැලුවා. ඒ හැම එකක්ම සුද්ධයි. යංතං අටවගත්ත වයිරස් ස්කෑනරේ සාර්ථක වෙලා! දැන් තියෙන්නෙ සර්වර් එකට මගේ දෙකඩ script එක පටවලා (upload) ක්‍රියාත්මක කරන එක.

$ scp sitefix.sh fixfile.sh user@mysite.com:/home/user
$ ssh user@mysite.com
$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

අවසාන ප්‍රතිපලය වුණේ මිනිත්තු කිහිපයක් ඇතුළත අපේ වෙබ් අඩවිය සාර්ථක ලෙස ව්‍යාවසාදනය වීම. සියළුම malware කොටස් ඉවත් වී ඇති බව තහවුරු කර වුණේ antivirus මෘදුකාංග මගින් අපේ අඩවිය තවදුරටත් අවහිර නොකරන බව දැන ගත් විටයි. කොහොමද bash කාව්‍යකරණයේ අත්ගුණය? :-)

Hallelujah!

මේ සියල්ල සිද්ධ වුණේ දෙසැම්බර් 27 අළුයම් කාලයේ. මම ලියූ කේතය මගේ මිත්‍රයෙකුටත් ප්‍රයෝජනවත් වුණා. ඔහුගෙ වෙබ් අඩවියකුත් මේ ප්‍රහාරයටම ලක් වෙලා කියල ආරංචි වුණා. ඒක අපූරුවට වැඩ කළා ලු!

අද සටහන අවසාන කරන්නෙ බොහෝම නරක ආරංචියක් එක්කයි. මම භාෂා පරිවර්තකයෙක් නෙමෙයි... ඒ නිසා සිංහලෙන් ලියන්නෙ නෑ මේක >> ක්ලික් කරලම බලන්න...!


අවසානයේ කපිතන් ශාකුන්තල විසින් අනෙක් කපිතන්වරුන්ගේ හා නැවියන්ගේද උපකාර ඇතිව අහවල් නෞකාව බේරා ගන්නා ලදී. හිකිස්! :D

Thursday, December 24, 2009

Hacker ප්‍රහාරයක්...?


වෙබ් අඩවියක් පරිපාලනය කරනවා (website administration) කියන්නෙත් හරියට නැවක කපිතන් තනතුරේ ඉන්නව වගේ වැඩක්. හැම දෙයක් ගැන ම හැම ආකාරයකින් ම විමසිල්ලෙන් ඉන්න ඕනේ. ඇතුළතින් - පිටතින් දෙපැත්තෙන්ම එන සතුරු ප්‍රහාර වලට මුහුණදෙන්න ඕනේ... අන්තර්ගතය ගැන බලන්න ඕනේ... සෙවුම් යන්ත්‍රත් එක්ක තියෙන පළහිළව් විසඳන්නත් ඕනේ....
වෙබ් අඩවියෙ ප්‍රතිපත්තිත් (policies) එක්ක මේ වැඩ රාජකාරි ප්‍රමාණය  අඩු වැඩි වෙන්නත් පුළුවන්.

හරි.... එමුකො මාතෘකාවට. මගේ පරිපාලනය යටතෙ තියෙන එක වෙබ් අඩවියක් මෑතකදි හදිසියෙම අකර්මණ්‍ය වුණා. වෙබ් අඩවියට ගියාම සුදු පාට පිටුවක පෙන්නනවා දෝෂ පණිවුඩයක්... index.php ගොනුවෙ 38 වෙනි පේළිය... < ලකුණ තමයි අවුලට මුල කියල ඒ පිටුවෙ කියන්නේ. මේ අවුල දැක්ක සැණින් මට දැන්වූ බ්‍රයන් වෙත මගේ ස්තුතිය!

ඉතින් මමත් මේ ගැන සොයා බලන්න Filezilla මෘදුකාංගය පාවිච්චි කරලා FTP හරහා වෙබ් අඩවියෙ ගොනු තියෙන ඩිරෙක්ටරියට පිවිසුණා. මේ වෙබ් අඩවිය CMS එකක් භාවිතයෙන් නිර්මාණය කළ එකක්. index.php ගොනුව පිරික්සා බැලුවාම අමුතු දේවල් කීපයක්ම දකින්න ලැබුණා.

සාමාන්‍යයෙන් අපි PHP කේත ලිවීමේදී අපේ PHP කේත කොටස ලියන්නේ <?php හා ?> යන ටැග අතර. නමුත්, සුපුරුදු සම්මතයට පටහැනි වුණත්, අපේ php ගොනුවෙ තිබුණෙ ආරම්භක (<?php) ටැගය පමණයි.

PHP කේතයෙ අන්තිමේ HTML Script ටැගයක් තිබුණා. බොහොම භයංකර, බැලු බැල්මට hieroglyphs වගේ පේන අමුතු HTML/ Javascript කේත කෑල්ලක් ඒක.

එතකොට සම්පූර්ණ කේතය මෙන්න මේ වගේ:
<?php
/* වෙබ් අඩවියේ
PHP
කේත */

<script> // ආගන්තුක Javascript කේත කොටස </script>

හේතුනිර්ණය: දෝෂයට හේතු වුණේ PHP අස්සේ HTML තිබීම නිසා HTML කේත කොටසත් PHP කියල හිතාගෙන, අපේ සර්වර් එකේ PHP එන්ජිම මඤ්ඤං වීම.

---

ඉතින් මේක දැක්කාම මම කළ පළවෙනි දෙය මේ ගැන අනිත් පරිපාලකවරුන්ගෙන් (administrators) විමසීම. මේ කේතය ගැන ඒ කිසිවෙක් දැන සිටියෙ නැහැ.

එහෙනම්......
Hacker ප්‍රහාරයක් ද?

මගේ අනුමානය වුණේ මේ කවුරුහරි hacker කෙනෙකුගෙ වැරදුණු කුරුමානමක් කියලයි. මොකද අපේ වෙබ් අඩවිය අකර්මණ්‍ය කළා කියල කාටවත් අත්වෙන වාසියක් නැති නිසා. Phishing වගේ වැඩකට අපේ වෙබ් අඩවිය යොදා ගත්ත නම් ඒකෙන් ඔවුන්ට යම් වාසියක් ලබන්න අවස්ථාව තිබුණා.

කොහොම නමුත් අනිත් ඇඩිමින්ලා මේ ගැන නොදන්න නිසා (අනිත් අයගෙ දැනුවත් වීමකින්/ මැදිහත් වීමකින් තොරව සිද්ධ වුණු නිසා) මම ආගන්තුක HTML/ Javascript කේත කොටස විශ්ලේෂණය කිරීමේ අවශ්‍යතාව සඳහා මගේ පරිගණකයට පිටපත් කරගෙන, index.php ගොනුවෙන් ඉවත් කරලා ඒක save කළා. දැන් සයිට් එක බබා වගේ වැඩ.

හැබැයි.......... මගේ වැඩ එතනින් අහවර වෙන්නෙ නැහැ. මීළඟ පියවර සිද්ධියෙ අග මුල කොනක සිට සෙවීම. මෙන්න මෙහෙමයි අපේ වෙබ් අඩවියට ආසාදනය වෙලා තිබුණු විෂබීජය:



ඉතින්,... මේක එකපාර දැක්කාම මහ ලොකු පටළැවිල්ලක් වගේ.... බැලු බැල්මට ඇසෙම්බ්ලි වලින් ලිව්ව එකක් වගේ.... :P මේ කේතය පරීක්ෂා කරමින් ඉන්නකොට පැය විසි හතරක් ඇතුළත දෙවන වතාවටත් වෙබ් අඩවිය අකර්මණ්‍ය වුණ බව අහම්බෙන් දැනගන්න ලැබුණා.

සිද්ධ වෙලා තිබුණෙ කලින් සිද්ධියමයි. ඉතින් මම පෙර වතාවෙ කළ සැත්කම ම ආපහු කරලා මීට විසඳුමක් හොයන්න උත්සුක වුණා. කාලෙකට පස්සෙ පොඩි අභියෝගයක්! මේක කරදරයක් නෙමෙයි.... අභියෝගයක්....!! සතුටු විය යුතුයි ඒ ගැන.

---

දැනට සිද්ධ වුණු දේවල් ගැන පොඩි සාකච්ඡාවක් මෙතනම ඉදිරිපත් කරන්න හිතුණා. සාකච්ඡාවට සහභාගි වුණේ මගේ මස්තිෂ්ක අර්ධගෝල දෙක.... තනියට පාලුවට අනුමස්තිෂ්කයත් පිටුපස්සෙන් හිටියලු...... :D

මේ මගුල අටවපු කෙනා ඒක කරල තියෙන්නෙ වෙබ් පිටුවක මේ කේතය අඩංගු කරලා වෙබ් පිටුව පූරණය වෙන අවස්ථාවෙ ඒක පරිශීලකගෙ පැත්තෙන් ක්‍රියාත්මක කරවන්න. නමුත් අපේ php ගොනුවෙ අග වැසීමේ ටැග් එක (?>) නැති නිසා, සර්වරය පැත්තෙන් ආගන්තුක HTML කේත කොටසක් PHP කේතයක් ලෙසම සලකලා interpret කරන්න උත්සාහ කිරීමෙ අවසාන ප්‍රතිපලය වුණේ මුළු වෙබ් අඩවියම අකර්මණ්‍ය වීම.


එක්කෝ අපිත් එක්ක සෙල්ලම් කරන කෙනා/ bot එක ට index.php ගොනුවෙ සම්පූර්ණයෙන් කියවන්න හැකියාවක් නැහැ. එහෙම නැත්නම් කියවා අවබෝධ කර ගන්න හැකියාවක් නැහැ. කියවා අවබෝධ කරගැනීමේ හැකියාවක් තිබුණා නම් ඒකාන්තයෙන්ම මේ වැඩේ කරන්නෙ මනුස්සයෙක්. නමුත් මේ දෙ වතාවේදී ම php කේතයෙ ව්‍යූහය නොතකා එහි අගට අන්ධ ලෙස HTML කේත කොටසක් එක් කර තිබීම නිසා මගේ නිගමනය වුණේ මේකට වගකියන්න ඕනෙ bot එකක්ම විය යුතුයි කියන එක.

මම මෙතෙක් ලබලා තියෙන දැනුමේ හැටියටත්, අපේ වෙබ් අඩවියෙ ස්වභාවයත් අනුවත්, වෙබ් ගවේශකයක් හෝ වෙනත් උපක්‍රමයක් පාවිච්චි කරලා HTTP හරහා මේ ප්‍රහාරය ක්‍රියාත්මක කිරීම අතිශයින්ම අසීරු දෙයක්. (HTTP ගැන හොඳ අවබෝධයක් තියෙනව නම් Firefox පවා hacking tool එකක් කරගන්න බොහොම පහසුයි! -- ඒක වෙනම කතන්දරයක්)

මේ නිසා මගේ සැකය යොමු වුණේ වෙබ් අඩවිය ස්ථාපනය කරලා තියෙන සර්වරය වෙත. සර්වරය වෙත අනවසරයෙන් පිවිසෙන්න සමත් වුණු තක්කඩියෙකුගෙ වැඩක් වෙන්න ඇති! << හැබැයි මේ උපකල්පනයක් පමණයි.

---

අගමුල හෙවිල්ල පොඩ්ඩකට පැත්තක තියලා අර කේත කොටස මම ආපහු පරීක්ෂා කළා. බැලු බැලුමට ආධුනිකයෙකුගේ ධෛර්යය හීන කරවන විධියෙ සංකීර්ණ පෙනුමක් ඒකට තියෙන්නේ. නමුත් ඕනම සංකීර්ණ ගැටළුවක් සරල කොටස් වලට වෙන් කරගත්තාම පහසුවෙන් විසඳන්න පුළුවන්. අන්තිමේ බැලුවම ඒකත් බොහොම සරල දෙයක් නොවැ!

මුලින්ම කියවන්න පහසු ක්‍රමයකට කේතය පේළි කීපයකට වෙන් කරගත්තා,



මේ තියෙන්නෙ අමාරුකාර පේළිය,



ඒ පේළිය දිහා පරීක්ෂාකාරීව බලන්න... javascript පිළිබඳ එතරම් ම දැනුමක් අවශ්‍ය වෙන්නෙ නැහැ. :)



Javascript වල තියෙන replace නම් method එක තමයි මෙතන පාවිච්චි කරල තියෙන්නේ. (අහඹු ලෙස) විරාම ලක්ෂණ මුසු කිරීම මගින් සූක්ෂ්ම ආකාරයට සඟවන ලද පාඨ කොටසක්, ක්‍රමලේඛය ධාවනය වෙන අවස්ථාවේදී ඒ විරාම ලක්ෂණ ඉවත් කර නැවත ප්‍රයෝජනයට ගැනීමේ අපූරුව! හැබැයි ඉතිං මේක හරියට අගුළු දමාපු අල්මාරියක යතුර ඒකෙ යතුරුකටේම තියෙන්න අරිනව වගේ වැඩක්.

ඔය කේත කොටසෙ අවසාන ප්‍රතිපලය:



බැලු බැල්මටම පේනව නෙව මේක phishing වගේ වැඩකට පාවිචිචි කරන්න හදපු එකක් කියලා.... :)

මේ සම්පූර්ණ කේතය ධාවනය වෙද්දි වෙබ් ගවේශකය මත දිස් වන වෙබ් පිටුවේ තවත් javascript object එකක් නිර්මාණය වෙනවා. ඒ javascript කේතය තියෙන්නෙ/ තිබිය යුත්තෙ ඔය රතු පාටින් දීල තියෙන URL එකේ. නමුත් වෙබ් ගවේශකයෙන් මේ URL එක වෙත ගියාම දිස් වෙන්නෙ හිස් වෙබ් පිටුවක්. දෙවැනි ප්‍රහාරයෙදි මම පිටපත් කරගත් කේතයෙන් දැක්වුණේ මේ ව්‍යූහයම දරණ වෙනත් URL එකක්. පහත දැක්වෙන්නෙ attacks කීපයකින් පසුව මම එකතු කරගත් තවත් මෙවැනි URL දෙකක්.



---

මේ වෙබ් ලිපින මම පරීක්ෂා කර බැලුවා... මේ කේත කොටස shaakunthala.com හි මගේ වෙබ් අඩවියට දාලා ඇතැම් විට අවශ්‍ය පරිදි Wireshark පවා යොදාගෙන පරීක්ෂා කරල බැලුවා. ඒත් කොයි URL එකෙන් වුණත් ලබා දෙන්නෙ අපේක්ෂිත javascript කේතය නෙවෙයි, හිස් පිටුවක්.

ඒ හැම host එකකම port 80 හා 8080 හි වෙබ් සර්වර් ක්‍රියාත්මකව තිබෙනවා.

මේ port 80 හි ක්‍රියාත්මක වෙබ් සර්වර මත තියෙන අඩවි:




තිරපිටපත් මත ක්ලික් කරලා පැහැදිලිව බලන්න පුළුවන්

---

වෙබ් අඩවි ලඝු සටහන් (site logs) වලිනුත් කිසිම දෙයක් හොයාගන්න බැරි වුණා. ඒවයෙ මේ ගැන කිසි දෙයක් සටහන් වෙලා තිබුණෙ නැහැ. මේ කිව්වෙ server logs ගැන නෙවෙයි.

මේ ගැන කරන විමර්ශනය මම අතහැර දමා නැහැ. ඊට සමගාමීව මීළඟ පියවර අපට web hosting සේවාව සපයන ආයතනය සමඟ සාකච්ඡා කර විසඳුමක් සොයන එකත් කළ යුතුයි. තාවකාලික පැලැස්තර විසඳුමක් ලෙස index.php ගොනුවෙ අගට පහත දැක්වෙන කේත කොටස එකතු කළා. 

die();

මෙහෙම 'මැරියං!' කිව්වාම එතනින් එහාට කේතය interpret වෙන්නෙ නැහැ. ඒ නිසා අර කෙහෙල්මල් javascript එක interpret වෙන්නෙවත්,  වෙබ් ගවේශකය වෙත එන්නෙවත් නැහැ. වෙලාවෙ හැටියට මේ 'මැරියං!' එක පැලැස්තර විසඳුමක් හැටියට බොහොම ප්‍රයෝජනවත් වුණා.

---

අපේ වෙබ් අඩවිය දැන් කිසිම ගැටළුවකින් තොරව ක්‍රියාත්මකයි. හැබැයි නැවත නැවතත් ප්‍රහාරයට ලක් වෙමින් පවතිනවා. die() කියන PHP මෙතඩ් එක පළිහක් වගේ අපේ වෙබ් අඩවිය අකර්මණ්‍ය වෙන්න නොදී ආරක්ෂා කරනවා. බලමුකො ඒකෙත් අපූරුව!

හැබැයි, විමර්ශණ මෙතනින් නවතින්නෙ නෑ. index.php ගොනුවෙ permissions තිබුණෙ 664 (-rw-rw-r--) ලෙස. ඒක ටිකක් විතර අසාමාන්‍යයි වගේ (සාමාන්‍යයෙන් මේක 644 හෙවත් -rw-r--r--). මේ වෙබ් අඩවිය නිර්මාණය කළ අය වෙබ් අඩවිය සකස් කරන්න සහ host එකට upload කරන්න පාවිච්චි කරල තිබුණෙ වින්ඩෝස් මෙහෙයුම් පද්ධතිය හා ඒ පාදක කරගත් මෘදුකාංග. මේක වින්ඩෝස් වල තියෙන 'අල' permission system එක නිසා මෙතන එය 664 වුණා කියලයි මම හිතන්නේ.

මගේ ඊළඟ ඇටවුම වුණේ මේ permissions 600 (-rw-------) ආකාරයට සැකසීම. සරලව කිව්වොත්, දැන් index.php කියවන්න සහ සංස්කරණය කරන්න පුළුවන් සර්වරය පැත්තෙන් ඒ ගොනුවෙ අයිතිකරු ලෙස ඉන්න userට පමණයි. අනෙක් අයට කිසිම දෙයක් කරන්න බැහැ. කලින් තිබුණු ක්‍රමය අනුව අදාළ පරිශීලකටත්, කණ්ඩායමටත් මේ අවසර ලැබී තිබුණා. මේ නව permission සැකසීම මගින් මම සොයාගන්න අදහස් කළේ කලින් කිව්ව bot හෝ ස්වයංක්‍රීය උපක්‍රමය ධාවනය වෙන්නෙ අදාළ පරිශිලක යටතේම ද කියන එක.

මේ ආගන්තුක කේත කොටස javascript වීම නිසා ඇති වුණු සැකයක් ඔස්සේ  (මේ දැන් මොහොතකට පෙර) කළ සෙවීමකදී jQuery සහය සඳහා පාවිච්චි කරන jquery.js ගොනුවත් මෙලෙසම ආසාදනය වී ඇති බව දැනගන්න ලැබුණා. නමුත් එය Javascript ගොනුවක් නිසා කලින් වගේ ප්‍රතිපල බාහිරයට පෙනුනේ නැහැ. තවදුරටත් සොයා බැලීමේදී මුළු වෙබ් අඩවියෙම විවිධ තැන් වල තියෙන index.php ගොනු වලටත් javascript ගොනු වලටත් මෙය ආසාදනය වී ඇති බව සොයාගන්න හැකි වුණා. මට හීන්දාඩිය දාන්න ගත්තේ දැන්. තවදුරටත් සොයා බැලීමේදී මේ ගොනු බොහොමයක permissions තිබුණේ 644 (-rw-r--r--) ආකාරයෙන් බවත් නිරීක්ෂණය වුණා. මේ (permissions) නිරීක්ෂණයත් එක්කම මම කලින් ඡේදයෙ විස්තර කළ ඇටවුමේ ප්‍රතිපල ලැබෙන තෙක් බලා සිටීම අනවශ්‍ය කාරණයක් බවට පත් වෙනවා.

සියළුම නිරීක්ෂණ සලකා බලා මගේ අවසාන නිගමනය මෙය web hosting සේවාව සපයන ආයතනයේ වරදකින් සිදු වුණා කියන එක. වෙබ් අඩවි ලඝු සටහන් වලත් වැදගත් යමක් සටහන් නොවී තිබීම නිසා, මෙය HTTP හරහා වෙනත් පාර්ශවයක් අනවසර පිවිසීමක් ලබාගෙන සිදු කළ දෙයක් නොවෙයි කියන එක පැහැදිලියි.

---

අද සටහන අනවශ්‍ය පරිදි දීර්ඝයි කියා මට හිතෙන්නේ.... සුළුවෙන් හරි අපැහැදිලි තැනක් තියෙනවනම් comment එකක් දාන්න.... මම තවත් සරල කරලා විස්තර කරන්නම්.

ඒ වගේම මේ ක්ෂේත්‍රයේ අත්දැකීම් තියෙන අයගෙ උපදේශත් මේ ලිපියට ප්‍රතිචාර හෝ ඊමේල් ආකාරයෙන් බලාපොරොත්තු වෙනවා. (cyber forensics කියන්නෙ මේවද මන්දා.... :-/ )

විමර්ශණ කෙසේ වෙතත් නත්තලත් ළඟටම ඇවිත්.... ඉතින්... මගේ බ්ලොග් අඩවියට යන එන හැම දෙනාටම හැකර් ප්‍රහාර වලින් තොර සාමකාමී සුභ නත්තලක් වේවා කියල ඔන්න මගෙනුත් නත්තල් සුභපැතුම්! :-)





පසු සටහන (2009/12/25):
මේ සටහනේ අන්තර්ගතය ලෙස malicious source code කොටස් සඳහන් කිරීම නිසා විවිධ වයිරස් නාශක මගින් මගේ බ්ලොග් අඩවිය අවහිර කර ඇති බව දැනගන්න ලැබුණා. ඒවා කේත ලෙස නොව පාඨ ලෙස render වන නිසා හානි රහිතයි. මෙය වයිරස් නාශක මෘදුකාංග වල සිදුවූ වරදක් (False Positive).


Image credit: Ravin Perera

මෙය වළක්වන්න අදාළ source code සියල්ල පිළිබිඹු (images) ලෙස යොදන්න සිදු වුණා. නමුත් ඒ ඒ තැන් වලට අදාළ කේත කොටස් අවශ්‍ය නම් පහත දැක්වෙන සබැඳියෙන් බාගත කරගත හැකියි.

  http://www.4shared.com/file/180832826/c4c709df/altcodetxt.html
Password: malcode

(ඔබ වින්ඩෝස් මෙහෙයුම් පද්ධතිය පාවිච්චි කරනවා නම් මේ ගොනුව විවෘත කරන්න wordpad මෘදුකාංගය යොදාගන්න -- notepad පාවිච්චි කරන්න එපා)

යොමු:
http://forum.avast.com/index.php?topic=52588
http://groups.google.com/group/techkatha/browse_thread/thread/ab92437e0054fcec

මේ වින්නැහිය ගැන මට දැන්වූ සියළුම දෙනාට මගේ හෘදයාංගම ස්තුතිය පිරිනමනවා! :)

Merry X'mas to you all again!!

Tuesday, December 22, 2009

සිංහල බ්ලොග්කරුවන්ගේ සුහද හමුව


2009 දෙසැම්බර් 19, තවත් එක අපූරු දවසක්. මීට ටික කලකට පෙර සිංහල බ්ලොග්කරුවන්ගේ සංසදයෙ ගුග්ල් සමූහයේදී ඇති වුණු යෝජනාවක ප්‍රතිපලයක් විධියට සිංහල බ්ලොග්කරුවන්ගේ සංසදයෙ සුහද හමුවක් (ඇත්තෙන්ම පළවෙනි සුහද හමුව) 19 වෙනි දා කොළඹ Excel World හි පැවැත්වුණා. මේක තවත් ඔන්ලයින් මීටිමක් නෙවෙයි.... හැබැහින් හමු වීමක්. සියළුම සිංහල බ්ලොග්කරුවන්ගේ සහභාගීත්වය ඇතිව නොවුණත්, අන්තර්ජාලය හරහා අදහස් ඇසුරෙන් පමණක් දැන සිටි බොහෝ පිරිසක් දැක හඳුනාගෙන කතාබහ කරන්න අවස්ථාව ලැබුණා. බ්ලොග් ලියන අය විතරක් නෙවෙයි, බ්ලොග් කියවන අපේ පාඨකයින් කීපදෙනෙකුත් මේ සුහද හමුවට සහභාගි වුණා. දවල් 11 සිට හවස 1 දක්වා සිංහල බ්ලොග්කරණය ආශ්‍රිත සාකච්ඡාවක යෙදෙන්න අපට හැකි වුණා. (හැබැයි මං ආවෙ පරක්කු වෙලා :D ) අපේ කතාබහත් 1.20 විතර වෙනකම් ඇදිලා ගියා. ඊට පස්සේ ඉතිං සප්පායම් වෙලා පොඩි ආතල් එකක් ගන්නත් අමතක කළේ නෑ.

පිංතූර තුනක් විතර මෙතන දාන්නම්. Facebook එකේ ඉන්නවනම් ඉතිරි ටිකත් බලන්න පුළුවන් වේවි. ඒ විතරක් ම නෙවෙයි.... ඒවට ආපු මරු comments එක්කම බලන්න පුළුවන්. :D


වසරේ ඇට්ටර බ්ලොග්කරු -- සුපුන් සුදාරක සමඟ
(සුදාරකයා හිටියා පැත්තක -- "මෙහෙ වර" කියලා ඇදලා ගත්තා... මම ම ගත්තා පොටෝ එක! :D )



සමූහ ඡායාරූපය - ඡායාරූපය ගත්ත කෙනා හැර අපි ඔක්කොම මෙතන
ඒකෙත් හැටි!
(ඒ අස්සේ මට ඩැනීගෙන් හදිසි ප්‍රහාරයක්! :D )


සභාව හමුවේ බොහෝම හරවත් කථාවක් කළ කුෂාන් සසංක

ඉතින් එදා දවස බොහොම සුන්දර විධියට ගෙවිලා ගියා. අඩුපාඩුවකට තිබුණේ සංගීත භාණ්ඩ ටිකක්. කොහොම වුණත් අපේ කස්ටියට පරක්කු වෙන නිසා වැඩේ හවස තුනට අවසාන කරන්න සිද්ධ වුණා.

මේ කෙටි සටහන ලිව්වේ ඒ සුහද හමුව වෙනුවෙන්. මම බොහොම ආසාවෙන් කියවන බ්ලොග් අඩවි කීපයකම රචකයින් හැබෑවටම හමු වෙලා කතා බහ කරන්න අවස්ථාව ලැබුණා. ගුග්ල් සමූහයෙ කස්ටිය කතා වුණු හැටියට මම නම් හිතුවෙ එක්සෙල් වර්ල්ඩ් ඉඩ මදි වේවි කියල! ඒත් සහභාගීත්වය නම් මදි. සමහරවිට ඒ අයගෙ කාල සටහන් මේ හමුවට හරස් වෙන්න ඇති. කොහොම වුණත්..... එදා නම් අපූරු දවසක්! :-)

මේ ගැන ප්‍රවීන් ඉන්ද්‍රනාම ලියූ සවිස්තර ලිපියක් මෙතැනින් කියවන්න පුළුවන්.

Monday, December 14, 2009

මෝරුන් ලවා සිංදු බෑම


අද කියන්න යන්නේ තාක්ෂණය හා සංගීතය සම්බන්ධ කාරණයක්. මගේ දෛනික අත්දැකීම් අතරට එකතු වෙන තවත් එක අත්දැකීමක්. බළලුන් ලවා කොස් ඇට බෑවීම ට ආදේශකයක් හොයන අය මේ ලිපිය කියවන්නෙ නැතුව මගේ Flickr සේයා දහර පැත්තේ ගිහින් බලන්න. :D

තාක්ෂණික දේවල් කියවන්න අකමැති නම් සටහනේ අන්තිමේ ඇති දෙසවනට හා දෙනුවනට රසවිඳින්න යමක්. තාක්ෂණික මාතෘකා අප්පිරියා වගේ නම් මඟැහරල ඔහොමම යන්න පහළට.

පොප්, රෙගේ සහ හිපොප් අහන්න ටියුන් වෙලා තිබුණු මගේ කන් දෙක රොක් සංගීතයට ටියුන් වෙන්න පටන් ගත්තේ එක්තරා තහනම් වෙළඳ දැන්වීමක තිබුණු සිංහල රොක් සිංදුවක් අහලා. ඉනික්බිති ගල්, තද ගල්, තලන ලෝහ, බර ලෝහ, මර ලෝහ සහ කළු ලෝහ මේ හැම ජාතියටම බරපතල ලෙස ඇබ්බැහි වුණා. තේරුණේ නැත්තම් ඔය ලැයිස්තුව rock, hard rock, thrash metal, heavy metal, death metal සහ black metal කියල හිතාගන්ටකෝ.

චිත්‍රාල් සෝමපාලගෙ නදී ගංගා තරණයේ තවමත් මම බොහොම ආස කරන සිංදුවක්. දවසක් අහම්බෙන් Facebook හරහා මාව යොමු වුණේ මෙන්න මේ පිටුවට. ඒකෙ තිබුණා මම ප්‍රිය කරන ගීතයෙ සාමාන්‍යයෙන් අහල පුරුදු එකට වඩා වෙනස් අනුවාදයක්. රොක් ම තමා.... හැබැයි පොඩ්ඩක් විතර වෙනස්. ගායකයා එම ම තමා, කටහඬ පාලනය මුල් අනුවාදයෙ තරම්ම හොඳ තත්වයක නැහැ. හැබැයි පසුබිම් සංගීතයට පොඩි වර්ණවත් බවක් එකතු වෙලා.... මුල් ගීතයෙ තිබුණු තේජාන්විත බවත් ටිකක් අඩු වෙලා.



එකම ගීතයෙ වුණත් විවිධ අනුවාද රසවිඳින්න මම ගොඩක් ප්‍රියයි. විවිධත්වය කොතැනද - රසය එතැන! ඉතින් වෙබ් පිටුවෙ embed කරලා තිබුණු මගේ ප්‍රියතම ගීයත්, අනෙක් රොක් සිංදු ටිකත් බාගන්න මම උත්සාහ කළා. නමුත් සාමාන්‍යයෙන් මේ වගේ වැඩ වලට මම පාවිච්චි කරන Video Download Helper ඇඩෝනය මේ ගීත වල බාගැනීමේ සබැඳි (download links) හොයාගන්න අපොහොසත් වුණා. ඒ නිසා මම ඒ හා සමාන තවත් ඇඩෝනයක් පාවිච්චි කරලා නැවත උත්සාහ කළා. අසාර්ථකයි! :(

ගිනිහිවල් ආම්පන්න කෙරුවාව එකින් එක හොය හොයා ගියොත් මට වෙනින් වැඩක් කරගන්න කාලයක් ඉතිරි නොවෙන නිසා මම වෙනත් විසඳුමක් හොයන්න උත්සුක වුණා. මුලින් ම බැලුවෙ Firefox සහ Adobe Flash Player මෘදුකාංග වල cache ඩිරෙක්ටරි ඇතුළෙ. නමුත් මගේ බලාපොරොත්තු සුන් කරමින් ඒවයෙනුත් කිසිම දෙයක් හොයාගන්න බැරි වුණා. :(

ඉතින් අවසාන තීරණය වුණේ පරිගණකයට පිටතින් (ජාලය හරහා) එන සියළුම අමු දත්ත (raw data) මෘදුකාංගයක් මගින් ග්‍රහණය කරගෙන ඒ ග්‍රහණය කරගත් බිටු සහ බයිට අතරේ මට අවශ්‍ය දේ තියෙනව ද කියල සොයා බලන එක! :-O එහෙම බර වචන වලින් කිව්වාම බය වෙන්න එපා :) -- මේ කාරිය ඉතාම පහසුවෙන් කරගන්න පුළුවන් Wireshark කියන මෘදුකාංගයෙන්. මේ ලියමනේ මාතෘකාවෙ සඳහන් මෝරා මොකාද කියල දැන් වැටහෙන්න ඕනේ. :) Wireshark මෘදුකාංගය network protocol analyzer එකක්. පරිගණකයත් ජාලයත් අතර දත්ත හුවමාරුව සිද්ධ වෙන්නේ දත්ත 'පැකට්' කියන කුඩා ඒකක (chunks) ආකාරයෙන්. Wireshark මෘදුකාංගයට පුළුවන් මේ දත්ත පැකට් දෙස විමසිල්ලෙන් බලා සිට ඒ පැකට් පිළිවෙලකට පිටපත් කරගන්න. මේ පැකට් පසුව විශ්ලේෂණය කිරීමේ පහසුකමත් Wireshark විසින්ම ලබා දෙනවා.

කොළඹ සරසවියෙ මෙතෙක් මම පෙනී හිටපු විභාග වලින් එකම A+ සමාර්ථය ලබපු පරිගණක ජාලකරණය පිළිබඳ ප්‍රශ්නපත්‍රයෙත් Wireshark මෘදුකාංගයෙන් ග්‍රහණය කරගත් දත්ත පැකැට්ටුවක් විශ්ලේෂණය කරන්න ගැටළුවක් තිබුණා ලාවට වගේ මතකයි. ඉතින් මේවත් අපට වැඩද කියලා හිතින් හිතාගෙන වැල්මෝරා සූදානම් කරගෙන වැඩේට බැස්සා.

මුලින්ම වෙබ් ගවේශකයෙ මට අවශ්‍ය ටැබ් එක (ගීතය අඩංගු වෙබ් පිටුව) හැර ඉතිරි සියළුම ටැබ් වහලා දැම්මා. Twitter සඳහා පාවිච්චි කරන Echofon ඇඩෝනය අක්‍රිය කළා. මේ දේවල් කළේ අනවශ්‍ය දත්ත පැකට් Wireshark මගින් ග්‍රහණය (capture) වීම වළක්වන්න. ඉන්පස්සේ ගීතය අඩංගු වෙබ් පිටුව ප්‍රතිපූරණය (reload) කරලා ඒ ප්‍රතිපූරණය සිද්ධ වෙන අතරෙම පැකට් ග්‍රහණය කරන වැඩේ පටන් ගත්තා. ගීතය මුළුමනින්ම වාදනය අවසාන වුණාම වෙබ් ගවේශකය වසා දමලා දත්ත පැකට් ග්‍රහණය කරන වැඩෙත් නතර කරලා දැම්මා. ග්‍රහණය කරගත් අමු දත්ත විශ්ලේෂණය කිරීමේ පහසුව තකා වෙනම ගොනුවකට save කරගත්තා.

දැන් විශ්ලේෂණය කරන වැඩේ. අමු දත්ත පැකට් හරීම ලස්සනයි :P . කොළ පාටට - කළු පාටට - ලා නිල් පාටට - වෛවාරන්න පැකට්! ඒ මදිවට TCP, UDP, HTTP, SSL, DNS මෙකී නොකී හැම ජාතියෙම පැකට්!! ඉතින් දත්ත පැකට් දහස් ගණනක් අතරේ අතරමං නොවී මට අවශ්‍ය දේ පහසුවෙන් හොයාගන්න පොඩි 'පෙරහනක්' පාවිච්චි කළා. වෙබ් ගවේශකය ක්‍රියාත්මක වෙන්නේ HTTP කියන ජාලකරණ සම්මුතියට අනුව. HTTP වල එක ලක්ෂණයක් තමයි HTTP සර්වරයක් වෙතින් යම් අන්තර්ගතයක් (content) සඳහා ඉල්ලීමක් කළාම අදාළ අන්තර්ගතය, එහි තත්වය පිළිබඳව HTTP තත්ත්ව කේතයක් සමඟ පෙරළා දැනුම් දීම. සාමාන්‍යයෙන් දෝෂ කේතයක් නොවේ නම් මෙය අන්තර්ජාල ගවේශණයේදී පරිශීලකයා වෙත දිස් වන්නේ නැහැ. වෙබ් ගවේශකයෙන් ඉල්ලුම් කරන අන්තර්ගතය කිසිම බාධාවකින් තොරව ඒ වෙත ලබා දෙන්න වෙබ් සර්වරය සමත් වුණා නම් මේ තත්ත්ව කේතය වෙන්නේ 200. ඒක සම්මුතියේ තියෙන සම්මතයක්. ඒ නිසා මේ නිර්ණායකය පාවිච්චි කළා මම ඉහත කියපු පෙරහන හදාගන්න. මිළඟ තිරපිටපත බැලුවාම පෙරහන ගැන පැහැදිලි වෙයි. මේ දේවල් පැහැදිලි කරන්න ටිකක් වැඩිපුර වචන පාවිච්චි කළාට අකුණක් ගහනවා වගේ ඔය සියළුම අදහස් මගේ මනසේ ගොඩනැගෙන්න ගත වුණේ එක නිමේෂයයි.


 පැහැදිලි මදි නම් තිරපිටපත මත ක්ලික් කරන්න

ඔය තිරපිටපතෙත් සලකුණු කරල තියෙන එක දත්ත පැකැට්ටුවක් ගැන මගේ අවධානය විශේෂිතව යොමු වුණා. බැලු බැල්මට ඒක නම් MP3 ගොනුවක ආරම්භක දත්ත පැකැට්ටුව වගේ පෙනෙන්නේ. නමුත් වැඩිදුර සොයාබැලීම සඳහා ඒක මත ක්ලික් කළාම Wireshark වැසී යනවා. ඒක Wireshark මෘදුකාංගයෙ සුළු දෝෂයක් නිසා ඇති වුණු දෙයක් විය හැකියි. නමුත් අදාළ පැකැට්ටුව විවෘත කරගන්න බැරි නිසා මගේ අවසාන උත්සාහය වුණේ HTTP මගින් ලැබුණු සියළුම දත්ත, ගොනු බවට export කරගන්න එක. File -> Export -> Objects -> HTTP මෙනු විධානය දුන්නාම තවත් පොඩි අතුරුමුහුණතක් හරහා මේ සියල්ල ගොනු ආකාරයෙන් ලබාගන්න පුළුවන් වුණා. ඒ අතර තිබුණා -- මොනවද? මට ඕන කරපු දේ! :) මෙහෙයුම සාර්ථකයි!!

බලන්න මීළඟ තිරපිටපත.


පැහැදිලි මදි නම් තිරපිටපත මත ක්ලික් කරන්න

ඔය අස්සේ Facebook වෙළඳ දැන්වීමක ෆෝන් විකුණන කෙල්ලෙකුත් ඔතනට ඇවිත්... ඒව ගනංගන්න එපා.. :P .

 ---

Wireshark හරිම අපූරු මෘදුකාංගයක්. දවසක් මම බැචෙකුට SSL කුප්පියක් දාන්න ආරම්භයක් විධියට Wireshark වලින් පොඩි වැඩකෑල්ලක් දාල පෙන්නුවා. මුලින් පෙන්නුවේ මගේ අතහැර දමාපු SLT Dial-up ගිණුමට ලොග් වෙලා ඒ අතරේ Wireshark එකෙන් ග්‍රහණය කළ දත්ත අතරේ ගෙඩි පිටින් username/ password තියෙන හැටි. ඊළඟට මගේ Gmail එකට ලොග් වෙලා username/ password හොයන වැඩේ ඌටම කරගන්න දුන්නා. :D

(SLT අය SSL පාවිච්චි කරන්නෙ නැත -- සහතිකේ ගිණි ගණං නිසා වෙන්නට ඇත)

---



ඔය තිරපිටපතේ තියෙන විධියේ පිවිසුම් ක්‍රමය සමහර වෙබ් අඩවි වල පාවිච්චි වෙනව දැකල ඇතිනේ.... මේක තරමක් දුරට අනාරක්ෂිතයි. හිතන්න තමන් දැනට ඉන්න local area network එක ඇතුළෙ තවත් කෙනෙක් ඔය විධියෙ අඩවියකට තමන්ගෙ පරිශීලක නමයි මුරපදයයි දීලා ලොග් වෙනව කියලා. ඒ කෙනා ලොග් වෙන වෙලාවේ දත්ත පැකට් ටික Wireshark මගින් ග්‍රහණය කරගන්න පුළුවන් නම් සොරි ඩොට් කොම්! අපට නෙමෙයි එයාට.

මෙතනදි username/ password යන්නෙ encrypt කරල නෙමෙයි. හැබැයි බැලු බැල්මට ඒ වගෙයි. පොඩි සෙල්ලමක් දාලා ආයෙම username/ password අදාළ දත්ත වලින් පහසුවෙන්ම ගණනය කරගන්න පුළුවන්. (base64 encoding ගැන පොඩි ගුග්ල් සෙවුමක් දාලා බලන්ටකෝ.... ;) )

මේව වැරදි වැඩ තමයි.... හැබැයි hacking කියල වරදවා වටහාගන්න එහෙම එපා..... :P



සිංදුවත් අහමුකෝ.... හැබැයි මේ මම බාගත් එක නෙමෙයි. ඔරිජිනල් නදී ගංගා තරණයේ. වෙනස් සන්දර්භයක් ඇතුව රස විඳිමුද? ඒකට ඕන කරන උත්ප්‍රේරකය තමයි ඔය Youtube ලින්ක් එකට පහළින් සඳහන් කරල තියෙන්නේ.....


Youtube එකේ තියෙන දර්ශන පෙළ නරඹන අදහස අතහැර දමන්න. බය වුණාම බොන ජාතිය අමතක කරන්න. Youtube එකේ ගීතය වාදනය වෙන අතරේ තවත් ටැබ් දෙකක මෙන්න මේ වෙබ් පිටු විවෘත කරගන්න. පිංතූර එකින් එක බලන අතරේ ගීතයට හොඳින් සවන්දෙන්න.


(අනුන්ගෙ සිංදු අනවසරයෙන් කොපි කරලා ඩවුන්ලෝඩ් කරන්න දෙන එක නෝටි වැඩක් නේ..... අනෙක..... තව ටික දවසකින් ඕකෙ ඩවුන්ලෝඩ් දෙයි. ඒ නිසා මම ශිල්ප දක්වලා බාගනිපු එක මගෙ ළඟම තිබුණාවේ -- ඕනෙ නම් මම කරපු විධියටම කරලා සිංදුව බාගන්න. ;-) )



එහෙනං ඉතිං.... නැවතීමේ තිත තියන්න හෙවත් කැපෙන්න වෙලාව ඇවිත්. මේ සිංදු බෑවිල්ල මහා ලොකු දෙයක් නෙවෙයි. නමුත් සිංහලෙන් වැඩ කරන පාඨක පිරිස අතරේ බෙදා හදාගන්න හිතුණා. තවත් මොනවහරි දෙයක් අරගෙන ආපහු එනකම්.... Rock on! :D

Friday, December 11, 2009

හොඳම බ්ලොග් අඩවිය ලෙස සම්මානයට පාත්‍ර වූ වගයි෴


කොළඹ රාජකීය විද්‍යාලයීය සිංහල භාෂා හා සාහිත්‍ය ඒකකය විසින් සංවිධානය කරන ලද "අසෙනිය කුසුම" සාහිත්‍ය උත්සවයේ එක් ඉසව්වක් වූ, ප්‍රථම වරට පවත්වන ලද සිංහල බ්ලොග්කරණ තරඟාවලියේදී ශාකුන්තලගේ සටහන් පොත හොඳම බ්ලොග් අඩවිය ලෙස සම්මානයට පාත්‍ර වූ බව හිතවත් පාඨක ඔබ වෙත දැනුම් දෙන්නේ හද පිරි නිහතමානී සොම්නසිනි. අසෙනිය කුසුම සාහිත්‍ය කලා උළෙල කොළඹ රාජකීය විද්‍යාලයේ නව රඟහලේ දී පසු ගිය නොවැම්බර් 27 වන සිකුරාදා උත්සවාකාරයෙන් පැවැත්විණ.

මේ පිළිබඳව බ්ලොග් සටහනක් තැබීමට මෙතරම් ප්‍රමාද වූයේ සරසවි අධ්‍යයන කටයුතු වලට අදාළ පැවරුම් නිසාවෙන් ඇති වූ කාර්ය බහුලත්වය හේතුවෙනි. කෙසේ වෙතත් මෙම බ්ලොග් අඩවියේ ඉතිහාසය පිළිබඳ පසු විපරමක් මේ මොහොතේ අනවශ්‍ය යයි සිතමි. ඒ මෙයින් දෙමසකට පමණ පෙර සමරන ලද බ්ලොග් උපන්දින සටහනෙහි ඒ පිළිබඳව සටහනක් තබා ඇති බැවිනි.

අසෙනිය කුසුම - 2009 පැවැත්වුණේ ජනාධිපති කාර්යාලයය, ICTA හා e-Sri Lankaහි පූර්ණ අනුග්‍රහයත්, Microsoft ආයතනයේ සම අනුග්‍රහයත් සහිතවයි. සිංහල බ්ලොග්කරණ තරඟාවලියේ ජයග්‍රාහකයින් පිළිබඳ සම්පූර්ණ විස්තරය සාහිත්‍ය ඒකකයේ නිළ වෙබ් අඩවිය වෙත පිවිසීමෙන් කියැවිය හැකි ය.

අසෙනිය කුසුම අපූර්ව අත්දැකීමකි. නව්‍ය තාක්ෂණයත්, කලාවත් නිසි අනුපානයෙන් මුසු කොට එය අපූර්වතම කලා උළෙලක් බවට පත් කර තිබිණි. තාක්ෂණික දායකත්වය ඉතා සීරුවෙන් යුතුව නිසි සීමාවන් යටතේ පවත්වා ගනිමින් ද, ඉදිරිපත් කෙරුණු අංගයන් හි කලා රසයය වෙත කිසිදු බාධාවක් ඇති කර නොගනිමින් ද, තාක්ෂණික උපක්‍රම හා ප්‍රයෝග මෙහෙයවූ අන්දම ප්‍රශංසනීය වෙයි. රාජකීයයන්ගේත්, වෙනත් විද්‍යාල වලින් පැමිණි සිසු-සිසුවියන්ගේත් දක්ෂතා දැක අතිශය සතුටටත් විමතියටත් පත් වීමි. ගායනය, වාදනය හා රංගනය ආදී ඉසව් පමණක් නොව ඉන් ඔබ්බට ගොස් මනා ලෙස තාක්ෂණය මෙහෙයවීමේ හැකියාවෙන් ද පිරිපුන් මෙ වන් සිසු පරපුරක් පිළිබඳ ශ්‍රී ලාංකික අප ආඩම්බර විය යුතු ය. විශේෂයෙන්ම, කැලණිය ගුරුකුල විද්‍යාලයීය නර්තන කණ්ඩායම ඉදිරිපත් කළ දැකුම්කළු නර්තනයේත්, කොළඹ රාජකීයයන් ඉදිරිපත් කළ අපූර්ව සංගීත ඛණ්ඩයේත් මිහිර මට කිසිදාක අමතක නොවනු ඇත.

එමෙන්ම අන්තර්ජාලය හරහා දැන හඳුනා ගත් මිතුරන්  කිහිප දෙනෙකු සැබෑ ලොවේ දී මුණ ගැසෙන්නට ලද අවස්ථාවද සොඳුරු මොහොතකි. ඉන්ද්‍රනාම, රවිමල්, සුදාරක, කණිෂ්ක, මලින්ත, දීපිකා, කාලිංග හා තිළිණ ඒ අතර වෙති. උළෙල අවසානයේ දී සතුටු සාමීචියේ යෙදුණු අපි, සමූහ ඡායාරූපයකට පෙනී සිටීමට ද අමතක නොකළෙමු.
 
Microsoft විවචෙනයයට ලක් කරමිනුත්, පූර්ණකාලීන නිදහස් හා විවෘත මෘදුකාංග භාවිතකරුවෙකුත් ලෙස මෙම බ්ලොග් අඩවිය හරහා නිතර වදන් හරඹ වල යෙදුණු මා Microsoft වෙතින් දෙන ත්‍යාග ලබා ගැනීම සමහර පාර්ශව වලට දැනටමත් මහත් පටළැවිල්ලක් වී ඇති සෙයක්ද යම් යම් ආරංචි මාර්ග ඔස්සේ දැනගන්නට ලැබී ඇති හෙයින් ඒ සඳහා පිළිතුරක් ද මේ සමඟම සටහන් කර තබන්නට සිත් විය. කිසිවෙකු/ කිසියම් ආයතනයක් වෙතින් ත්‍යාග ලැබීම මගින් මගේ ස්වාධීනත්වය කෙරෙහි බලපෑමක් ඇති නොවන්නේද, මතවාදී පරස්පර නොතකා එම ත්‍යාග පිළිගැනීම මගේ නිහතමානී ප්‍රතිපදාව යි. එබැවින් මගේ ස්වාධීන මතය වෙත බලපෑමක් ඇති කර නොගනිමින්, Microsoft ආයතනය විසින් මා වෙත ප්‍රදානය කරන ලද ත්‍යාග පිළිගන්නේ එම ආයතනය වෙත මගේ අවංක ස්තුතිය පුද කරමිනි.

මෙය හොඳම බ්ලොග් අඩවිය සඳහා හිමි සම්මානය මිස හොඳම බ්ලොග්කරු සඳහා හිමි සම්මානය නොවේ (මගේ සමහර සරසවි සගයින් දැනටමත් මා හඳුන්වා ඇත්තේ "බෙස්ට් බ්ලොගර්" කියාය!). මා මෙම සම්මානයේ භාරකරු පමණි. බ්ලොග් අඩවියක සාර්ථකත්වය කෙරෙහි එහි රචකයින් පමණක් නොව, ක්‍රියාකාරී කියවන්නන්, ප්‍රතිචාර දක්වන්නන්, දිරි ගන්වන්නන්, විවේචකයන්, පසුබිමේ සිට සහයෝගය දක්වන්නන් පමණක් නොව විවිධ බාධක එල්ල කරන්නන් යන මේ සියළු පාර්ශව දායක වේ යන්න මගේ විශ්වාසය යි.

එසේ හෙයින්, මෙය "මම" ලද දිනුමක් ලෙස නොව "අපි" ලද දිනුමක් ලෙස හැඳින්වීමට කැමැත්තෙමි. මෙම සටහන ලියන මට මෙන් ම, පාඨක ඔබට ද අළුතින් හිතන්නටත් ලේඛන කලාව ජයගන්නටත් මෙම සම්මානය හා සමස්ත සිංහල බ්ලොග්කරණ තරඟාවලිය හොඳ උත්ප්‍රේරකයක් වනු ඇතැයි මම උදක් ම බලාපොරොත්තු වෙමි.

මගේ ලිවීම් කියවමින්, රස විඳිමින්, අගය කරමින්, විචේචනය කරමින් හා දිරි දෙමින් සහය දැක්වූ පාඨක ඔබ වෙතත්, සිංහල බ්ලොග්කරණ තරඟාවලියට සහභාගි වී ඒ වෙත සහය දැක්වූ සියළුම බ්ලොග්කරුවන් වෙතත්, නිහඬවම සහය දැක්වූ අනෙකුත් පාර්ශව වෙතත්, බ්ලොග්කරණය ප්‍රචලිත කිරීමේ යහ අරමුණින් යුතුව මෙවන් ඉසව්වක් පැවැත්වීම වෙනුවෙන් කොළඹ රාජකීය විද්‍යාලයය වෙතත් මගේ හෘදයාංගම ස්තුතිය පුද කරමින් මේ ලියමනෙහි අවසානය සනිටුහන් කරමි෴ 



පසු සටහන (2009/12/27):

අසෙනිය කුසුම 2009 සාහිත්‍ය කලා මහෝත්සවයේ සළරූ දර්ශන නිකුත් වී ඇති බව අද උදෑසන දැනගන්නට ලැබිණි. සාහිත්‍ය වෙබ් අඩවිය වෙත පිවිස ඔබට එම වීඩියෝ දර්ශන නැරඹිය හැකි ය.

පහත දැක්වෙන්නේ හොඳම බ්ලොග් අඩවියට හිමි සම්මානය පිරිනැමෙන මොහොතයි.


Sunday, November 22, 2009

අළුත් අළුත් ලිනක්ස්

මම දැනට මගේ ලැප්ටොප් පරිගණකයේ මෙහෙයම් පද්ධති තුනක් පාවිච්චි කරනවා. ඒ Ubuntu, Fedora සහ Debian. සාමාන්‍ය පාවිච්චියට Ubuntu ත්, පරිගණක ජාලකරණය/ Virtualization පිළිබඳ යම් යම් දෑ අත්හදා බලන්න Fedora සහ Debian පද්ධතිත් පාවිච්චි කරනවා. GUI නැතුව කට්ට කළුවරේ ඇඩ්වෙන්චර් සෙල්ලම් වලට Debian.. :P ඉතින් මෑතකදි නිකුත් වුණු අළුත් ලිනක්ස් සංස්කරණ ගැන යමක් ලියන්නයි මේ සටහන.




Karmic Koala නම් බැලු බැල්මටම 'මොඩ්' ගතියක් තියෙනවා. කිහිප දවසකට පෙර, මම ඉංග්‍රීසි බසින් ලියන බ්ලොග් අඩවියේ මේ ගැන යම් සඳහනක් කළා. Karmic Koala නිකුතුවත් එක්ක පැහැදිලිව පෙනෙන දෙයක් Ubuntu තව තවත් වින්ඩෝස් වගේ වෙලා. ඒක එක අතකින් හොඳයි කියන්නත් තවත් පැත්තකින් නරකයි කියන්නත් පුළුවන්. මේකෙ තියෙන සමහර වෙනස්කම් වලට නම් මම පෞද්ගලිකව කැමති නැහැ. හැබැයි පෙරට වඩා සෑහෙන හොඳ user friendly ගතියක් තියෙන බවත් පිළිගන්න වෙනවා.

Karmic Koala එන්නේ අළුත් දේවල්, ගති ලක්ෂණ කිහිපයකුත් එක්ක. ඉන් පැහැදිලිවම දකින්න පුළුවන් එකක් තමයි පැරණි GRUB එක (GRUB Legacy) ඉවත් කරලා තවමත් බීටා අවධියේ තියෙන GRUB2 බූට්ලෝඩරය විධියට පාවිච්චි කිරීම. පොත්තට රැවටෙන්න එපා කියල කියන්න තියෙන්නෙ මෙතනදි තමයි. GRUB2, පැරණි GRUB එකට වඩා දියුණු ගති ලක්ෂණ කීපයක්ම තිබුණත්, ආරක්ෂිත බව අතින් නම් අවමයි. GRUB2 වෙත ප්‍රවේශ වෙන්න දියුණු බහු පරිශීලක ප්‍රවේශන ක්‍රමයක් සකසා තිබුණත් තවමත් ඒක 'කොට උඩ' බව තමයි දැනගන්න ලැබෙන්නේ. සරලව කිව්වොත් GRUB2 වෙත බූට්ලෝඩර් මුර පදයක් යෙදීම තවමත් කරන්න බැහැ. කොහොම වුණත් මේ අඩුපාඩු නිවැරදි වෙලා ඉක්මනින් හොඳ බූට්ලෝඩරයක් විධියට GRUB2 එළිදැක්වෙයි කියලා බලාපොරොත්තු වෙමු. :)

Ubuntu අළුත් සංස්කරණයත් එක්ක GRUB2 බෙදාහැරීම කර ඇති ආකාරය ගැන නම් මගේ එතරම් පැහැදීමක් නැහැ. එය එක්තරා විධියක ඒකාධිකාරයක් කියන්නත් පුළුවන්. මීට දෙමසකට පෙර නිකුත් වූ Debian Lenny පද්ධතියත් GRUB2 නිකුතුව ලබා දුන්නා. නමුත් Debian ස්ථාපනයේදී තමන් කැමති බූට්ලෝඩරය තෝරාගැනීමේ විකල්පය පරිශීලකට ලබා දී තිබුණා. පුරුදු පරිදිම, Ubuntu Karmic Koala ස්ථාපනයේදීත් බූට්ලෝඩරය පිළිබඳව වූ එකම සඳහන වුණේ GRUB2 ස්ථාපනය කරන device එක තෝරා ගැනීමේ විකල්පය පමණයි. පැරණි GRUB එකෙන් මගේ පරිගණකයට සැලසුණු ආරක්ෂාව අළුත් GRUB2 වෙතින් නොලැබෙන නිසා නැවත GRUB Legacy වෙත මාරුවීම තමයි මම Ubuntu ස්ථාපනය කළ වහාම කළ පළමුවෙනි කාරිය.

මීළඟට මම දැක්ක තව දෙයක්, Ubuntu ස්ථාපනයේදී තියෙනවා Home ඩිරෙක්ටරිය encrypt කිරීමේ විකල්පයක්. මේ වගේ (අවදානම්) විකල්ප තෝරාගන්න කලින් කළ යුතු දේ පොඩි Google සෙවුමක් කරල බලන එක. Google සෙවුමෙන් දැනගන්න ලැබුණෙ බොහොම නරක ආරංචියක් නිසා මම Home ඩිරෙක්ටරිය encrypt කරන අදහස අතහැර දැම්මා. පරිශීලක මුරපදය වෙනස් කළොත් ලොගින් වෙන්න බැරිලු.

ඊළඟ කාරණාව ලැප්ටොප් පාවිච්චි කරන සංගීත ලෝලීන්ට හොඳ ආරංචියක් වෙයි. සාපේක්ෂව බොහොමයක් ලැප්ටොප් වල හඬ අඩුයි. මේ නිසා ටිකක් කලබල පරිසරයකදි ලැප්ටොප් එකේ ස්පීකර් වලින් නිකුත් වෙන හඬ ඇහෙන්නෙ නැතිව යනවා. මේ ගැටළුවට විසඳුම් හොයන්න මම ෆෝරම් ගණනාවක රස්තියාදු වුණු බව මගේ පැරණි බ්ලොග් සටහන් වලත් ලියා ඇති. නමුත් Karmic Koala සමඟ මෙයටත් විසඳුමක් ලබා දීලා. දැන් gnome-volume-control මගින් හඬ 150% දක්වා වැඩි කරන්න පුළුවන්. :)

තවත් වැදගත් දෙයක් iBus framework එක. මෙතෙක් අපි සිංහල යතුරුලියන වැඩේට පාවිච්චි කළ SCIM ඉවත් කරලා ඒ වෙනුවට iBus ආදේශ කරලා. iBus ගැන වැඩි යමක් මම දන්නෙ නැහැ. නමුත් iBus වින්‍යාසගත කරන එක SCIMට වඩා සෑහෙන පහසු බව නම් පැහැදිලියි.

Ubuntu අළුත් නිකුතුව Cloud Computing පැත්තටත් අත ගහලා. ඒ UbuntuOne. මේ සේවාවෙන් නොමිලයේ 2 GB ඉඩක් ලැබෙනවා. මාසෙකට ඩොලර් දහය ගණනේ ගෙවන්න පුළුවන් නම් මේ ඉඩ 50 GB දක්වා වැඩි කරගන්න පුළුවන්. කොහොම වුණත් Dialog Broadband පාවිච්චි කරන මට නම් UbuntuOne පාවිච්චි කරන අදහස අතහැර දමන්න සිද්ධ වෙනවා.

තව සුළු සුළු කාරණා කීපයක්ම තියෙනවා... නමුත් ඒ දේවල් මෙතන ලියන්න තරම් වැදගත්කමක් නැහැ කියලයි හිතෙන්නේ. Ubuntu 9.10 තවමත් මට සැලකිය යුතු තරමේ ගැටළුවක් මතු කළේ නැහැ. හැබැයි Huawei e220 මොඩම් එකේ තියෙන virtual CD-ROM device එක ස්වයංක්‍රීයව mount වීම නවත්තන්න පුළුවන් විසඳුමක් නම් ලැබුණෙ නැහැ. පෙරදී මේ සඳහා විසඳුම වෙලා තිබුණු usb-modeswitch මෘදුකාංගයත් Ubuntu 9.10 සමඟ අපේක්ෂිත ක්‍රියාකාරීත්වය දක්වන බවක් පෙනෙන්න නැහැ.

සමස්තයක් වශයෙන් කියන්න පුළුවන්,
Ubuntu --> Windows
:(




Ubuntu ගැන කතා ටික ඔහොම අවසාන කරලා ඊළඟට මම කතා කරන්නෙ පසුගිය සතියෙ නිකුත් වුණු Fedora 12 Constantine නිකුතුව ගැන. හැබෑවටම මොකද දන්නෙ නෑ මේ අළුත් ට්‍රෙන්ඩ් එක... දැන් පිට පිටම Fedora සංස්කරණ දෙකකට දාලා තියෙන්නෙ රජවරුන්ගෙ නම්. ඒකෙත් පොඩි 'ගතියක්' නැත්තෙම නෑ.... :P

Fedora නම් Ubuntu වගේ පොත්තේ වැඩි වෙනසක් කරලා නෑ. මම Fedora එක්කත් පාවිච්චි කරන්නෙ Gnome ම නිසා කලින් Ubuntu ගැන ලියල තියෙන දේවල් කීපයකුත් Fedora අළුත් සංස්කරණයට අදාළ වෙනවා. ඒ Sound Preferences වලින් ශබ්දය 150% දක්වා වැඩි කරන්න පුළුවන් වීමත්, Huawei මොඩමයත් එක්ක ඇති වෙන ගැටළුවත්, SCIM වෙනුවට iBus යොදා තිබීමත් සහ තවත් සුළු කාරණා කීපයක්.

SELinux Troubleshooter අතුරුමුහුණතේ ලොකු වෙනසක් කරලා. කලින් තිබුණු එකට වඩා පැහැදිලි සහ මිත්‍රශීලී අතුරුමුහුණතක්. :)



පරිගණකය ක්‍රියාරම්භ වීමේදීත් පෙරට වඩා පැහැදිලි වේගවත් බවක් තියෙනවා. ආ.......... කියන්න අමතක වුණා.... GRUB2 ඒකාධිකාරය මේකෙ නෑ... :) පෙරනිමියෙන් තියෙන එකම විකල්පය පෙර පරිදිම GRUB Legacy. හැබැයි ස්ථාපනය කළාට පසුව ඕනෙම නම් GRUB2 ස්ථාපනය කරගන්න පුළුවන්. (yum yum :P )

Fedora පාවිච්චි කරන කීපදෙනෙක්ම නගපු පොඩි මැසිවිල්ලක් තමයි Ubuntu වලදි වගේ අන්තර්ජාලය හරහා Fedora නිකුතුව අළුත් කරගන්න (distribution upgrade) පහසුකමක් දීලා නෑ කියන එක. නෑ නෙවෙයි තියෙනවා... ;) ඒකෙ නම preupgrade. හැබැයි නියමින මෙනු යොමුවක් දකින්න නැහැ. ඉතින් Alt+F2 යතුරුලියනය කරලා gksu preupgrade නිවේශනය කරලා අළුත්ම Fedora 12 Constantine නිකුතුවට මාරු වෙන එක අමාරු වැඩක් නොවෙයි කියා මම හිතනවා. :)

(පැරණි Fedora සංස්කරණය වල සමහර විට පෙරනිමියෙන් preupgrade ස්ථාපනය කර නොතිබෙන්න පුළුවන්. එහෙම වෙලාවක,
# yum install preupgrade
විධානය දෙන්න)




ඔය අතරේ අපේම රටේ ලිනක්ස් භාවිතකරුවන් පිරිසක් අපේ රටේ පාවිච්චියට ගැලපෙන අළුත්ම Fedora remix එකක් එළිදක්වලා. ඒ හන්තාන ලිනක්ස්. මේක අපටම ගැළපෙන්නෙ ශ්‍රී ලාංකික පරිගණක භාවිතකරුවන්ගෙ අවශ්‍යතා මැනවින් හඳුනාගෙන ඒ ඔස්සේ එහි නිමැවුම් කටයුතු කර ඇති නිසා. සුපුරුදු Gnome අතුරුමුහුණත පාවිච්චි නොකර ඒ වෙනුවට XFCE හඳුන්වා දී තිබෙන නිසා අවම පද්ධති ශක්‍යතාවක් සහිත පරිගණකයක දී වුණක් හොඳ ක්‍රියාකාරීත්වක් දකින්න පුළුවන් බවයි දැනට හන්තාන ලිනක්ස් පාවිච්චි කරන අය කියන්නේ. හැබැයි දැනට හන්තාන ලබාගන්න පුළුවන් i686 තාක්ෂණයට අනුව නිමැවුණු පරිගණක පද්ධති සඳහා පමණයි.

සරලව කිව්වොත්,
හන්තාන ලිනක්ස් = Fedora + බහුමාධ්‍ය සහය (AVI, MP3, DVD, etc...) + ලාංකිකයෙකුගේ පරිගණක අවශ්‍යතා සපුරාලන අත්‍යාවශ්‍ය මෘදුකාංග

ඉතින් සැරින් සැරේ අත්‍යාවශ්‍ය මෘදුකාංගයි multimedia codecs ටිකයි ඩවුන්ලෝඩ් කරගන්න වේගවත් අන්තර්ජාල සබඳතාවක් නැති නම් තෝරාගන්න Ubuntuත් නෙමෙයි, Fedoraත් නෙමෙයි, හන්තාන ලිනක්ස්. මෙන්න මෙතනින් පොඩියක් සැරිසරලා බලන්න පුළුවන් හන්තාන බැලු බැල්මට කොහොමද කියලා.

හන්තාන ඕනේ නම් මෙතනින් බාගන්න, නැතිනම් blank CD එකකුත් අරගෙන මෙන්න මේ පිටුවෙ නම සඳහන් කරලා තියෙන කෙනෙක් මුණගැහෙන්න. මමත් කැම්පස් එකේ අන්තර්ජාල පහසුකම පාවිච්චි කරලා හෙට දවස ඇතුළත හන්තාන ලිනක්ස් ඩවුන්ලෝඩ් කරන්න අදහස් කරගෙනයි ඉන්නේ... ඒ නිසා කොළඹ සරසවිය ළඟපාත ඉන්නවනම් blank CD එකක් අරගෙන එන්න.... මමත් දෙන්නම් හන්තාන. :)

ඉතින් මේ වැඩේට මූලිකත්වය දක්වපු ඩනිෂ්ක නවින් ඇතුළු පිරිසත් මේ වෙලාවේ මතක් කළ යුතුයි. හන්තාන ගැන ගැටළුවක් තියෙනවනම් මෙන්න තැන... සුද්ධ සිංහලෙන්ම දැනගන්න පුළුවන්. :)

ඉතින්, හන්තානට ජය!



මුළුමනින්ම Fedora වෙත මාරු වෙන්න මම මීට පෙර අසාර්ථක උත්සාහයක නිරත වුණු ආකාරය, මගේ බ්ලොග් අඩවියට නිතර ආ ගිය අය දන්නව ඇති. ඒ දිනවල ලිනක්ස් පිළිබඳ තිබුණු අවම දැනුමත්, Fedora uncomfortable කියා යටිහිතෙන් එක එක නිවේදන නිකුත් වීමත්, මගේ wireless adapter එක Fedora සමඟ වැඩ නොකිරීමත් නිසා මට නැවතත් Ubuntu වෙත ම යොමු වෙන්න සිදු වුණා.

නමුත් අද තත්වය වෙනස්. Gentoo ස්ථාපනය කිරීමේ අසාර්ථක උත්සාහයන් දෙකකිනුත්, පද්ධති හා ජාල පරිපාලනය පිළිබඳ සරසවි දේශන මගිනුත් මට ලිනක්ස් මෙහෙයුම් පද්ධති පිළිබඳ සැලකිය යුතු අවබෝධයක් ලැබුණා. එයින් තේරුම් ගත් විධියට නම් මොන ලිනක්ස් පද්ධතියක වුණත් 'මදේ' එකයි. :D භාවිතයේ පහසුව වෙනම කතන්දරයක්.

Fedora වල නව්‍යකරණ සියල්ල සිදු කර තිබෙන්නේ එහි තිබෙන 'ගීක්' ගතියත් රැකගෙනයි. හැබැයි geek වුණාට greek නෙවෙයි. :D ඒ නිසා අළුත්ම හන්තාන සංස්කරණය දුටු වහාම නැවතත් Fedora වෙත මාරු වෙන්න නැවත වතාවක් නොහිතුණාම නෙවෙයි. Easylife තියෙද්දි ඕවත් වැඩද? :P



එහෙනම්,..... ලිනක්ස් කතා ටික අදට මෙතනින් ඉවරයි.... අපි ගියා.... ciao!

Tuesday, November 3, 2009

මූල කේත ආකාරයෙන් බෙදා හැරෙන මෘදුකාංග ස්ථාපනය


අදත් ඉතින් සිරිත් පරිදිම ලිනක්ස් තමා. මේ ලියමන ලිවිල්ලෙන් මට කිසිදු ලාභ ප්‍රයෝජනයක් නෑ... හුදී සිංහල ජන සමාජයේ යහපත සහ පහසුව තකා සටහන් කරනවා. ශාකුන්තලගේ සටහන් පොත කියවන අයටයි වාසිය. :) ලිනක්ස් වලට නවක අය වෙනුවෙන් අද කියලා දෙන්නේ මූල කේත (source code) ආකාරයෙන් බෙදා හැරෙන මෘදුකාංග ස්ථාපනය කරන ආකාරය ගැන. මේ සටහන ලියන්න මෑතකදි මගේ එක බ්ලොග් සටහනකට ලැබුණු ප්‍රතිචාරයකුත් බොහෝ දුරට හේතු වුණා කියන්න පුළුවනි.

මේ ලියමන ටිකක් අමාරුකාර ලියවිල්ලක්. මේ කාරණාව මේ විධියට තනි ලියමනකින් පැහැදිලි කරන්න අමාරුයි. අනෙක එක එක උදාහරණයෙන් උදාහරණයට පිළිවෙලේ වෙනස්කම් තියෙනවා. මම කියන්නේ මම සාමාන්‍යයෙන් වැඩ කරන පිළිවෙල ගැන. :)

පරිගණක මෘදුකාංගයක් කියන්නේ පරිගණකයට ලබා දිය යුතු උපදෙස්, විධානවල එකතුවෙන් සකස් කළ විධිමත් අනුපිළිවෙලවලක් කියලා සරලව හදුන්වන්න පුළුවනි (මම වැරදි නම් කරුණාකර මාව නිවැරදි කරන්න :) ). මේ මෘදුකාංගය ක්‍රමලේඛණ භාෂාවක් (Java, C++, Python, etc...) මගින් කේතනය කරලා පසුව පරිගණකයට තේරුම් ගත හැකි ආකාරයට -- ඒ කියන්නේ යන්ත්‍ර භාෂාවට පෙරළා සකස් කළ පරිගණක ගොනුවක් හෝ ගොනු කීපයක එකතුවක් ලෙස පසුව සකස් කළාම තමයි ඒක භාවිතයට ගන්න පුළුවන් වෙන්නෙ. මේ ආකාරයට යන්ත්‍ර භාෂාවට පෙරළිම තාක්ෂණිකව හඳුන්වන්නේ compile කිරීම (අපි මෙයට සම්පාදනය යයි කියමු) ලෙස. සම්පාදනය කළ මෘදුකාංගයක් නැවත මූල කේතය බවට පෙරලන්න හැකියාවක් නැහැ. හැකියාවක් තිබුණත් එය පහසු වැඩක් නෙවෙයි.

ඉතින් මෘදුකාංග නිර්මාණය කරන අය කරන්නේ තමන් දන්න ක්‍රමලේඛණ භාෂාවක් මගින් කේතනය කරලා පසුව එය සම්පාදනය කරලා සම්පාදිත ගොනු (binaries) මෘදුකාංගය ලෙස බෙදා හැරීම. මෘදුකාංග දෙවර්ගයක් තියෙනවා... සවෘත මෘදුකාංග (closed source) සහ විවෘත මෘදුකාංග (open source) කියලා. සංවෘත මෘදුකාංග වල මූල කේතය පරිශීලකයාට ලබා දෙන්නෙ නෑ. ඒක ඒ මෘදුකාංගය පිළිබඳ හිමිකම් තියෙන සමාගමේ/ ආයතනයේ ව්‍යාපාරික රහසක් වශයෙන් තබා ගැනෙනවා. මීට සුප්‍රසිද්ධ උදාහරණයක් ලෙස Microsoft Windows හඳුන්වන්න පුළුවන්. නමුත් විවෘත මෘදුකාංග වල මූල කේතය පරිශීලකට ලබා දෙනවා. උදාහරණය ලිනක්ස්. මේ දෙවර්ගයටම උදාහරණ තව ඕනේ තරම් දෙන්න පුළුවන්. ඒ වගේම මේ දෙවර්ගයෙම වාසි/ අවාසිත් තියෙනවා. නමුත් ඒ ගැන නෙමෙයි මම අද කතා කරන්නෙ.

ඒත් සමහර විවෘත මෘදුකාංග බෙදාහරින්නේ මූල කේත ආකාරයෙන්ම පමණයි. සම්පාදනය කළ ගොනු හෝ ස්වයං ස්ථාපන ගොනු ආකාරයට ඒවායේ බෙදාහැරීමක් සිද්ධ වෙන්නෙ නැහැ. මේ සඳහා මම දැක්ක හොඳම සහ නරකම උදාහරණය තමයි Gentoo Linux. හොඳයි කිව්වේ මම දැනට ලිනක්ස් ගැන, කර්නල් එක ගැන දැනට ලබපු හොඳම අත්දැකීම් ටික ගත්තේ Gentoo වලින් නිසා. ;) නරකයි කිව්වේ ඒක ස්ථාපනය කරගන්න දවසක්ම කට්ට කන්න වුණු නිසා. :P

මම Gentoo ගැන කිව්වම බය වෙන්න එපා... මේ කියන්නෙ මෙහෙයුම් පද්ධතියක් ස්ථාපනය වගේ පතරංග වැඩක් ගැන නෙමෙයි. C/ C++ මූල කේත ලෙස බෙදා හරින, එදිනෙදා පාවිච්චි වෙන භාවිත යෙදුමක් (application software package) ස්ථාපනය කරගන්න ක්‍රමය ගැන.

වැඩේට කලින් පරිගණකයෙ තිබිය යුතු අත්‍යාවශ්‍ය මූලික මෘදුකාංග කීපයක්ම තියෙනවා. සාමාන්‍යයෙන් මෙහෙයුම් පද්ධතිය අඩංගු සංයුක්ත තැටියේ මේ මෘදුකාංග අඩංගුයි. මේ ඒවායින් ප්‍රමුඛම මෘදුකාංග දෙක.

1. GNU C Compiler (gcc)
2. GNU Make (make)

මේවා දැනට ස්ථාපනය කර නැත්නම් ස්ථාපනයට,
# apt-get install gcc make (Debian/ Ubuntu මත)
# yum install gcc make (Fedora/ CentOS/ RedHat මත)

සාමාන්‍යයෙන් මේ මූල කේත බෙදාහරින්නේ .tar/ .tar.gz හෝ .tar.bz2 ආකාරයෙ හැකිළවූ (archive) ගොනු ලෙස. මුලින්ම ඒ ගොනුව භාගත කරගෙන අන්තර්ගත ගොනු ටික unpack කර ගන්න ඕනේ.

ඒ ගොනුව .tar වර්ගයෙ එකක් නම්,
$ tar xvf filename.tar

.tar.gz එකක් නම්,
$ tar xvfz filename.tar

.tar.bz2 එකක් නම්,
$ tar xvfj filename.tar.bz2

... යනාදී වශයෙන් අදාළ විධාන ටර්මිනල් එකේදි පාවිච්චි කරලා unpack කරගන්න පුළුවන්.

උදාහරණයක් ලෙස අපි ලිනක්ස් සඳහා NMAP ස්ථාපනය ගනිමු. NAMP කියන්නේ පරිගණක ජාල වල ආරක්ෂාව පිළිබඳ විගණන කටයුතු (security auditing) වලට යොදා ගන්න මෘදුකාංගයක්. මුලින්ම මේ වෙබ් පිටුවට ගිහින් අදාළ ගොනුව (nmap-5.00.tar.bz2) බාගන්න.

දැන්,
$ tar xvfj nmap-5.00.tar.bz2

දැන් nmap-5.00 නමින් ඩිරෙක්ටරියක් නිර්මාණය වෙලා ඇති. ඒක ඇතුළට යන්න.

$ cd nmap-5.00
$ ls

ls විධානය දුන්නාම ඒකෙ ඇතුළෙ තියෙන අන්තර්ගතය පෙන්වනවා. මෙහෙම ලොකු ලැයිස්තුවක් ආවට බය වෙන්න එපා, ලැයිස්තුවෙන්ම ගොනු දෙකයි තුනයි අපට වැදගත් :)
shaakunthala@shaakunthala-laptop:~/Desktop/nmap-5.00$ ls -a
. nmap_config.h.in nse_pcrelib.h
.. nmap_dns.cc nsock
acinclude.m4 nmap_dns.h osscan2.cc
aclocal.m4 nmap_error.cc osscan2.h
CHANGELOG nmap_error.h osscan.cc
charpool.cc nmap.h osscan.h
charpool.h nmap-mac-prefixes output.cc
config.guess NmapOps.cc output.h
config.sub NmapOps.h portlist.cc
configure nmap-os-db portlist.h
configure.ac NmapOutputTable.cc portreasons.cc
COPYING NmapOutputTable.h portreasons.h
COPYING.OpenSSL nmap-protocols protocols.cc
depcomp nmap-rpc protocols.h
docs nmap_rpc.cc README-WIN32
FingerPrintResults.cc nmap_rpc.h scan_engine.cc
FingerPrintResults.h nmap-service-probes scan_engine.h
global_structures.h nmap-services scripts
HACKING nmap_tty.cc service_scan.cc
idle_scan.cc nmap_tty.h service_scan.h
idle_scan.h nmap_winconfig.h services.cc
INSTALL nse_binlib.cc services.h
libdnet-stripped nse_binlib.h shtool
liblua nse_bit.cc Target.cc
libpcap nse_bit.h TargetGroup.cc
libpcre nse_debug.cc TargetGroup.h
ltmain.sh nse_debug.h Target.h
MACLookup.cc nse_fs.cc targets.cc
MACLookup.h nse_fs.h targets.h
macosx nselib tcpip.cc
main.cc nse_main.cc tcpip.h
Makefile.in nse_main.h timing.cc
missing nse_main.lua timing.h
mswin32 nse_nmaplib.cc traceroute.cc
nbase nse_nmaplib.h traceroute.h
ncat nse_nsock.cc utils.cc
ndiff nse_nsock.h utils.h
nmap-5.00-1.spec nse_openssl.cc zenmap
nmap_amigaos.h nse_openssl.h zenmap-5.00-1.spec
nmap.cc nse_pcrelib.cc
shaakunthala@shaakunthala-laptop:~/Desktop/nmap-5.00$
මෙතනින් අපට මුලින්ම වැදගත් වෙන්නෙ README කියන ගොනුව. භාගත කරගත් පැකේජයත් එක්ක වැඩ කරන්නෙ කොහොමද කියන එක කියල තියෙන්නෙ මේ පාඨ ගොනුවේ. මෙය විවෘත කරගන්න; හොඳින් කියවන්න. කඩ්ඩෙන් තමා තියෙන්නෙ... ඒත් අමාරු නෑ. අන්තර්ජාලයෙන් ඉංග්‍රීසි ශබ්දකෝෂ ඕනෙ තරම් හොයාගන්න පුළුවන්. This is not real kadda, dude! ;)

නමුත් අපේ මේ උදාහරණයෙ තියෙන්නෙ README-WIN32 කියල ගොනුවක්.  නමේ හැටියෙන්ම පේනවනෙ. මේ තියෙන්නෙ වින්ඩෝස් සඳහා උපදෙස්. ඒක අපට මේ වෙලාවෙ වැදගත් නෑ. ඒ නිසා මේ උදාහරණයෙදි පමණක් අපට README නොකියවා කෙළින්ම ඊළඟ පියවරට යන්න පුළුවන්.

ඊළඟට වැදගත් වෙන්නෙ INSTALL ගොනුව. මේකත් සාමාන්‍ය පාඨ ගොනුවක්. ඒකෙ තියෙනවා ස්ථාපන උපදෙස්. පරිස්සමෙන් මුල සිට අගට කියවන්න.

අපි ස්ථාපනය කරන මෘදුකාංගයට අදාළව මේ ගොනු වල සමහර විට පූර්ව අවශ්‍යතා (prerequisites)/ dependencies  ගැන සඳහන් වෙලා තියෙන්න පුළුවන්. ඉතින් මෙතනින් ඉදිරියට යන්න කලින් ඒ උපදෙස් අනුගමනය කරලා අදාළ පූර්ව අවශ්‍යතා සපුරා ඇති බව තහවුරු කරගන්න.

මේ කාරියෙදි කියවීමේ පුරුද්ද අතිශයින් ම වැදගත්!!

ටර්මිනලය තුළම කියවන්න නම්,
$ cat INSTALL | more -d

ටර්මිනල් එකට අකැමති නම්,
$ gedit INSTALL &

සම්පූර්ණ ගොනුවම කියවලා අදහසක් ගත් පසුව එකින් එක ක්‍රියාවට නගන්න. මුලින්ම කියල තියෙන්නේ configure ධාවනය කරන්න කියලයි. configure --help ධාවනය කරලා  මේ ගැන වැඩි විස්තර ගන්න පුළුවන්. ඒ අනුව අපට අවශ්‍ය පරිදි මෘදුකාංගය ස්ථාපනය වෙන ඩිරෙක්ටරිය, වින්‍යාසගත කිරීමේ ගොනු (configuration files) ස්ථාපනය වෙන තැන ආදිය පිළිබඳ සැකසුම් සියුම් සීරුමාරුවකට ලක් කරන්න පුළුවන්. හැබැයි, හොඳ අවබෝධයකින් තොරව නම් "Some influential environment variables" යටතෙ දීල තියෙන දේවල් සකස් කරන්න යන්න එපා!!

$ ./configure

සාමාන්‍යයෙන් configure වලින් කරන්නේ විවිධ පද්ධති අවශ්‍යතා, ශක්‍යතා, පූර්ව අවශ්‍යතා සහ dependencies පරීක්ෂා කර බලා අපට ස්ථාපනය කරන්න අවශ්‍ය මෘදුකාංගය ඒ අනුව සකස් කර ගැනීම. හැබැයි වැඩේට ටික වෙලාවක් ගත වෙනවා. තිරයේ දිස් වෙන්නෙ පරීක්ෂාවන් එකින් එක නිම වෙන අන්දම. කිසිදු දෝෂ පණිවුඩයකින් තොරව වැඩේ අවසාන වුණා නම් ඊළඟ පියවරට යන්න පුළුවන්. බොහෝ විට dependency/ පූර්ව අවශ්‍යතා පිළිබඳ අවුලක් හැර වෙනත් අවුලක් නම් ඇති වෙන්නෙ නැහැ. එහෙම අවස්ථාවකදි Google ගෙන් උදව්වක් ගන්න තමයි සිද්ධ වෙන්නේ. නැතිනම් README/ INSTALL ගොනු නැවත හොඳින් කියවන්න. විසඳුම බොහෝ දුරට එහි තිබෙන්න පුළුවන්.

ඊළඟට කියලා තියෙන්නෙ make විධානය දෙන්න කියලා.

$ make

make විධානයෙන් කරන්නේ අපි මුලින් සිදු කළ වින්‍යාසගත කිරීම (configuration) අනුව සහ පැකේජයේ අඩංගු Makefile ගොනුවේ තියෙන උපදෙස් මාලාව අනුව මූල කේත පරිගණකයට තේරුම් ගත හැකි ආකාරයට හැරවීම හෙවත්, සම්පාදනය (compilation). මේකටත් තරමක වෙලාවක් ගත වෙනවා. ඒ කාලය මෘදුකාංගය මත තීරණය වෙන එකක්. කිසිදු දෝෂ පණිවුඩයකින් තොරව වැඩේ අවසාන වුණා නම් ඊළඟ පියවරට යන්න පුළුවන්. එහෙම නොවුණොත් Google ගෙන් උදව්වක් ගන්න තමයි සිද්ධ වෙන්නේ. නැතිනම් README/ INSTALL ගොනු නැවත හොඳින් කියවන්න. විසඳුම බොහෝ දුරට එහි තිබෙන්න පුළුවන්.

දී ඇති INSTALL ලියමනේ හැටියට ඊළඟට යෙදිල තියෙන වැදගත් කාරිය make install. දැන් පැහැදිලියිනේ අපට ඉතුරු වෙලා තියෙන එකම වැඩේ ස්ථාපනය කිරීම! :)

ස්ථාපනය සිදු කළ යුත්තේ root පරිශීලක ලෙස.

$ su -c "make install"

කැමති නම් make clean පාවිච්චි කරලා අපි මෙතෙක් වෙලා යකා නටපු source ඩිරෙක්ටරිය සුද්ධ පවිත්‍ර කරලා දාන්නත් පුළුවන්. ;)

$ make clean

දැන් වැඩේ අහවරයි. කරන්න තියෙන්නේ nmap වලින් වැඩ කරන එක තමයි. :) (මම නං nmap පාවිච්චි කරන්නෙ අනුන්ගෙ ජාල audit කරන්න >:) ඒ නිසා පාවිච්චි කරන පිළිවෙළ කියන්නෙ නෑ. ඔය ළමයි එහෙම නරක වැඩ කරන්න එපා හොඳේ...)

MISSION COMPLETE!

---

ඔය ලිව්වේ එක මෘදුකාංගයක් ගැන සරල උදාහරණයක්. තව විවෘත කේත මෘදුකාංග කොයි තරම් තියෙනවද? ඒ බොහොමයකදි පාවිච්චි වෙන්නෙ මම මේ විස්තර කළ සරල රටාව.

ම්හ්... මට අහන්න අතමක වුණා.... මේක සංකීර්ණ නැහැනේ...? ;) සංකීර්ණයි කියන්න පුළුවන් කේස් එකකදි, වැඩිම වුණොත් configure පියවරේදි ටිකක් දිග command එකක් ටයිප් කරන්න වෙයි, මේ වගේ:

./configure --prefix=/usr/share/nmap-tools

ඉතිං... තව සාකච්ඡා කළ යුතු දෙයක් තියෙනවනං... comment එකක් දාන්න... නැත්තං මේල්ටු:info[at]shaakunthala.com



මේ ලිපිය ලියලා ටික කලක් තිස්සේ පළ නොකර තිබුණේ රසකතා බ්ලොග් පෝස්ට් එකක් දාන්න හිතුණු නිසා. ඒ අතරේ අපේ තවත් බ්ලොග් සගයෙකුගෙන් හොඳ ලිපියක් කියවන්න ලැබුණා. කියවන්න -- බඩී සහ බිංකු සමග: උබුන්ටු මෘදුකාංග ස්ථාපනය සහ රිපොසිටරීස්.

ලිනක්ස්/ වින්ඩෝස්/ ඕන OS එකක් එක්ක වැඩ කරන්න නිදහස් මෘදුකාංග ලෝඩ් එකක් හොයාගන්න පුළුවන් මෙතනට ගියොත්. :)

Sunday, November 1, 2009

කැපූ කෙස්ස ගැන රස කතා


දිගින් දිගටම ලිනක්ස් ගැනයි අරකයි මේකයි කියවලා කස්ටියට එපා වෙලත් ඇතිනේ.... ඉඳ හිට දවසකවත් පොඩි ආතල් එකක් තියෙන්න එපායැ; නැද්ද මං අහන්නෙ? ;)

මම කාලයක් කොණ්ඩේ වවාගෙන හිටියනේ... රොක් \m/ හෙවි මෙටල් ශෛලිය සහ සංගීතය ගැන තියෙන අසීමිත උණත් එක හේතුවක් තමා... (*) . ඒ දවස් වල බස් එකේ යද්දි මාරු කාසි නැති වෙලාවට කොන්දොස්තර පූසා වගේ, රුපියල් හයේ දුර යන්න පණහෙ නෝට්ටුවක් දික් කළත් අනම් මනම් ලොකු ටෝක් නැතුව හරියට ගානට ඉතුරු දෙනවා. >:)

මේ ලියමන මම නිකං විහිළුවට වගේ වෙච්ච පොරොන්දුවක්. මේ වගේ තව සිද්ධි කීපයක්ම තියෙනවා කියන්න. =))

---

අපේ නෑදෑ ගෙදරක් තියෙනවා තංගල්ලේ. කලක ඉඳලා එහේ යන්න තිබුණු අවශ්‍යතාව අන්තිමේ ඉටු කරගත්තේ වෙසක් පෝය දවසේ. කාටත් නිවාඩු දවස නොවැ. ඉතින් ගිහිල්ලා කාරිය කස්ටිය කතා බහ කරලා කාලා බීලා ඉන්න අතරෙ මට ඕනැ වුණා වෙරළ පැත්තෙ ටිකක් ඇවිදින්න යන්න.

තංගල්ලෙ මුහුදු වෙරළ ඉතාම සුන්දරයි. ඊට වඩා ලස්සන මුහුදු වෙරළක් මම දැක්ක එකම තැන නිලාවේළිය. ඉතිං 'බීච්' යන්න මම සපත්තු දෙක ගලවලා, ඇඳගෙන හිටපු ඩෙනිමත් දණිසට වෙනකම් නවාගෙන පාර දිගේ ඇවිදගෙන යනවා. ෂර්ට් එකත් කට්ට කළුයි. පිට මැද්දට වැටුණු දිග කොණ්ඩෙයි.

මේ වෙසක් පෝය දවසනේ... ඉතිං එක එක පළාත් වල කොල්ලො ගැන්සි සෙට් වෙලා ට්‍රිප් යනවා. යන්නෙ ආතල් එකටත් එක්ක ලෑන්ඩ් මාස්ටර් වගේ පොඩි පොඩි වාහන වලින්. ඔහොම යන එක සෙට් එකක් අමුතු විධියට පොඩි සද්දයක් කරාපි! :-"

"ආ... ආ...."

ඉතිං මාත් එකපාරටම හැරිල බැලුව මොකද සීන් එක කියල (ඇත්තටම මාත් කල්පනා කළේ සුන්දර යුවතියක් එහෙම ඒ පැත්තෙ හිටියනං පොඩි wink :-" පාරක් එහෙම දාන්න :P ). එතකොටම සද්දෙ නතර වුණා. ඔක්කොම තක්බීර් වෙලා වගේ මං දිහා බලං ඉන්නවා. හරියට දැං කුඩු ගහපු වඳුරො ටිකක් වගේ. මේ මොකො!?? :-O

ටික වෙලාවක් යද්දි තමයි මට සීන් එක තේරුණේ. බීච් යන්න ඕන නිසා දණිසට වෙනකම් නවපු ඩෙනිම මුන්ට පෙනිල තියෙන්නෙ 'ත්‍රී ක්වාටර්' එකක් වගේ. ඒ මදිවට පිට මැද්දට වැටුණු දිග වරලස! තංගල්ල වගේ ගම් පළාත් වල නෑ නොවැ කොළඹ පොෂ් වෙන්න දඟලන කෙල්ලෝ කරන එක එක ෆැෂන්. ඒක තමයි මුන් ටික නිකං තොප්පි වෙළෙන්දා දැක්ක වඳුරො ටික වගේ ෆෝම් වෙලා තියෙන්නෙ. මුං ටික මගේ මූණ දැකල එකපාරටම අන්දමන්ද වුණේ මූණෙ තිබ්බ පත රැවුල නිසා. හොඳ වෙලාවට මං ඒක කැපුවෙ නැත්තෙ. =)) =)) =))

---

ඊළඟ සිද්ධිය වුණේ සඳුද දවසක උදේ දුම්රියෙන් කොළඹ එද්දි. මම සාමාන්‍යයෙන් යන්නෙ එන්නෙ සමුද්‍රදේවියේ. එදා ටිකක් කලින් ඇහැරුණු නිසා ඊට කලින් තියෙන බලවේග කට්ටල දුම්රියෙන් ('ගෝල් ට්‍රේන්' එක) ආවේ.

කට්ටිය දන්නව ඇතිනේ... බලවේග කට්ටල දුම්රිය මැදිරි වල ආසන තියෙන්නේ දික් අතට. ඒ කියන්නේ වාඩි වෙන අය වාඩි වෙන්නෙ දුම්රිය මැදිරි ජනේල වලට පිටුපාල. ඉතින් වැඩිය සෙනග නැති නිසා මටත් වාඩි වෙලා යන්න චාන්ස් එකක් හම්බ වුණා.

මේ දුම්රිය කොස්ගොඩ දුම්රිය ස්ථානයෙ නවත්තල තියෙද්දි ගාල්ල පැත්තට යන තවත් බලවේග කට්ටල දුම්රියක් එතනින් මාරු වෙනව. ඒ අනෙක් දුම්රියත් මම ගමන් කළ දුම්රියත් ටිකක් වෙලා කොස්ගොඩ නතර කරල තියෙනව. මෙන්න ඒ වෙලාවෙ එක පාරටම මට හරියටම පිටුපසින්, ඒ කියන්නෙ අනිත් දුම්රිය තියෙන පැත්තෙන් කටහඬක් ඇහෙනව.

"ඩබ්ලිව් ඩබ්ලිව් ඩොට් නෙට් ෆෝරම් ඩොට් එල් කේ. අයෑම් අ මෙම්බර් ආන්ට් යූ"

ඈ යකෝ... ඒ මම ඇඳගෙන ඉන්න ටී ෂර්ට් එකේ පිටේ ගහල තියෙන එකනේ? මේ යකා මොකද ඒක සද්දෙට කියවන්නේ....?? :-?

උදේ පාන්දර හිමිදිරි නිදිමතේ මට සීන් එක හරියට මීටර් වුණේ නෑ. දුම්රිය හෙමින් ඉදිරියට ඇදෙන අතරේ ටියුබ් ලයිට් පත්තු වුණා. ~X(

අපරාදේ... සිරා බයිටක් දෙන්න තිබ්බ චාන්ස් එක. :( මීට වඩා හොඳයි සම්පත් බැංකුව වගේ හෙට දින එළිය කළා නං! :))

---

ඉතින් ඔය වගේ කොණ්ඩෙ නිසා ආතල් සීන් තව තව තියෙනවා... ඒවට වැය කරන්න ඒ තරම් වෙලාවක් නැති නිසා ලියන්නෙ නෑ. මගේ නම -- ශාකුන්තල, අමුතු නමක් නිසා වක්කඩ කැඩුවා වගේ Facebook එකෙන් යාළු request ආපු හැටි... තව තව රස කතා ගොඩයි. ඒව ගැන වෙන ම දවසක ලියන්නං... අදට ආයුබෝ.... buona notte......!

Monday, October 26, 2009

ලිනක්ස් මත MP3 ප්‍රති-කේතාංකනය


අද මගේ බ්ලොග් එක කියවන අයට පොඩි script එකක් ලැබෙනවා... MP3 වල bitrate අඩු කරගන්න පුළුවන්.  ඒක පිටපත් කරගෙන තියාගන්න. ප්‍රයෝජනවත් වෙයි. සටහන කියවන්න කම්මැලී වගේ නම් මෙන්න බාගන්න ඒක. :)

මාතෘකාවෙම තියෙනව ටිකක් නේද මහ අමුතු බර වචනයක් -- ප්‍රති-කේතාංකනය. බය වෙන්න එපා.. මේ යෙදුම මෙතනට ගැළපෙනවද කියල මමවත් දන්නෙ නෑ :D . Re-encoding කියන ඉංග්‍රීසි යෙදුමට සුදුසු සිංහල වචනයක් ගැන කල්පනා කරද්දි සිහියට ආවෙ ප්‍රති-කේතාංකනය. මේ වචනෙ පාවිච්චි කරන එකේ හරි වැරැද්ද මම දන්නෙ නැහැ :-/ . මොකක් වුණත්, මගේ අවශ්‍යතාව මුලින්ම කියන්නම්.

මම බොහෝම දැඩි ලෙස සංගීත ලෝලියෙක් B-) . ඒ නිසා මගේ පරිගණකයෙ තියෙන සම්පූර්ණ MP3 එකතුවම ජංගම දුරකථනයට ඔබාගත්තත් මට මදි වගේ. ජංගම දුරකථනයෙ තියෙන M2 චිප් එක 1 GB. පිංතූර ගන්නත් චිප් එකේ ඉඩ තියෙන්න ඕන නිසාත්, ගීත වැඩි ගණනක් ජංගම දුරකථනයට දමාගන්න ඕන නිසාත් මම කල්පනා කළා මගේ ළඟ තියෙන MP3 ගොනු වල bitrate අඩු කරන්න. එහෙම කළාම ගොනු ප්‍රමාණය සෑහෙන අඩු වෙනවා.

උදාහරණයක් විධියට ගත්තොත්,
320 kbps, 44100 Hz, මින්ත්තු 6 තත්පර 5 වෙන sterio MP3 ගොනුවක ප්‍රමාණය 14 MB නම්, ඒක 128 kbps දක්වා bitrate අඩු කළාම 5.6 MB පමණ ප්‍රමාණයක් වෙන්නේ. ඉතින්, ලොකු ඉතුරුවක්!

ඉතින්, අන්තර්ජාලයෙන් විසඳුමක් හොයද්දි හම්බවුණා එකක්. ඒ lame මෘදුකාංගය. Audacity පාවිච්චි කරල තියෙන අය මේ මෘදුකාංගය ගැන දන්නවා. Audacity වල MP3 encoding library එක වෙන්නෙ lame. ඉතින්, lame නැත්තම් මුලින්ම පරිගණකයෙ lame ස්ථාපනය කරගන්න.

# apt-get install lame

මෙන්න මට ලැබුණු විසඳුම:
http://www.linuxquestions.org/questions/linux-software-2/reduce-mp3-bitrate-336791/

#!/bin/bash

for file in `ls`
do
file=`echo $file | sed s/\ /_/g`
echo $file
lame --decode $file
lame -b 128 $file.wav
rm $file
rm $file.wav
mv $file.wav.mp3 $file
done

වැඩේ හොඳයි. මොකද MP3 ගොනු 100ක් විතර encode කරන්න ඕන වුණ වෙලාවට lame මෘදුකාංගයෙන් batch processing විධියට කරන්න බැහැ. ඒ නිසා loop එකක් ධාවනය වෙන පොඩි script එකක් අවශ්‍ය වෙනවා. හැබැයි මේක ප්‍රායෝගික නෑ. හේතුව, එයාල දීල තියෙන script කේතය වැඩ කරන්නෙ නැහැ MP3 ගොනු වල නමේ හිස්තැන් (whitespaces, ASCII character 32) තිබුණොත්. For loop එකෙන් ගොනු නමේ සීමාව ලෙස හඳුනගන්නෙ හිස්තැන. නමුත් ප්‍රායෝගිකව අපට ලැබෙන MP3 ගොනු බොහොමයක නමේ මැද හිස්තැන් තියෙනවා. ඉතින් මේවා එකින් එක rename කර කර ඉන්නවට වැඩිය හොඳයි පැය ගාණක් වැය කරලා එකින් එක වෙන වෙනම encode කරන එක.

ඉතින් මම කල්පනා කළා විසඳුමක්. මුලින් කල්පනා කළේ, ls වෙනුවට ls -Q පාවිච්චි කළොත් ප්‍රතිපලයෙ හැම ගොනු නමක්ම වෙන වෙනම උධෘත සලකුණු දෙකක් අතරට එනවා. දැන් ඒකෙන් ගොනු නම් ටික වෙන් කරගන්න ලූප් එකක් ඇතුලෙ වැඩ කරන පොඩි ඇල්ගොරිතම් එකක් ලියන්න පුළුවන්...........

........... හාපෝයි බෑ.... අවශ්‍යතාව අනුව බරපතල වැඩියි... මම යන්නෙ වැරදි පාරේ............!!!! :-O

විසඳුමක් කල්පනා කරද්දි මතක් වුණා කැම්පස් එකේදි ළඟදි ඉගෙනගන්න ලැබුණු find shell විධානය. ඉතින් කෑලි බෑලි ටිකක් එක්ක අටවලා මම script එකක් ලිව්වා. මම ඉතින් free ඇන්ඩ් open නොවැ... බෙදා හදාගෙන කාලා බොහෝම පුරුදුයි. ඒකයි මේ ලියමන ලියන්නේ.... මෙන්න code එක. වැඩ දන්නා ඇත්තෝ මේක දියුණු කරත්වා!

if [ $# -eq 2 ]
then
mkdir $1/output
cd $1
find . -maxdepth 1 -exec lame -h -b $2 {} ./output/{}  \;
else
echo "Invalid arguements, please refer http://blog.shaakunthala.com/2009/10/mp3.html"
fi

මේක අළුත් text file එකකට copy-paste කරගන්න. ඒක කැමති නමකින් (උදා: mp3enc.sh) සුරකින්න.

දැන්,
$ chmod +x mp3enc.sh

පාවිච්චි කරණ පිළිවෙළ:
ප්‍රති-කේතාංකනය කරන්න අවශ්‍ය MP3 ගොනු සියල්ලම එක ඩිරෙක්ටරියකට (ෆෝල්ඩරයකට) පිටපත් කරන්න. දැන්,

$ ./mp3enc.sh <mp3_files_directory> <target_bitrate_kbps>

උදාහරණයක් විධියට අපට අවශ්‍ය ප්‍රතිදාන bitrate එක 128 kbps ලෙසත්, අපේ MP3 ගොනු ටික තියෙන්නෙ /home/shaakunthala/Desktop/music ඩිරෙක්ටරියෙ බවත් සලකමු. එහෙම නම් කරන්න තියෙන්නේ,

$ ./mp3enc.sh /home/shaakunthala/Desktop/music 128

හරිම පහසුයි නේද? දැන් අපේ MP3 ගොනු තියෙන ඩිරෙක්ටරිය ඇතුළෙ output ලෙස තව ඩිරෙක්ටරියක් නිර්මාණය වෙනවා. Bitrate අඩු කළ (ප්‍රතිදාන) ගොනු ටික එහි ඇති. :)

එතකොට code එකේ තේරුම? ඒක තනියම තේරුම් ගන්න පහසුයි. නමුත්,

find . -maxdepth 1 -exec lame -h -b $2 {} ./output/{}  \;

මේක මත තමයි අපේ වැඩේ රඳා පවතින්නේ.
find වලින් කරන්නේ දෙන ලද ඩිරෙක්ටරියක සහ සබ්ඩිරෙක්ටරි වල තියෙන ගොනු සෙවීම.
-maxdepth 1 මේකෙන් කරන්නේ අපි ලබා දුන් ඩිරෙක්ටරියෙ සිට පහළට එක මට්ටමකට පමණක්, එනම් අපි ලබා දුන් ඩිරෙක්ටරියෙ පමණක් ගොනු සෙයන්න කියන එක. තවත් පහළට ගියොත් හමු වෙන්නේ output ඩිරෙක්ටරිය ඇතුළෙ තියෙන ප්‍රති-කේතාංකනය කළ ගොනු. ඒවත් එක්ක පටලැවිල්ලක් ඇති වීම වැළැක්වීමයි අරමුණ.
-exec find විධානයෙන් දෙන ප්‍රතිදානය මත වෙනත් විධානයක් ක්‍රියාත්මක (execute) කරන්නෙ මේකෙන්.
$1, $2 මෙයින් නිරූපණය වෙන්නේ විධාන පෙළට ලබා දුන් පරාමිතීන්. ඒ කියන්නේ අපේ MP3 ගොනු තියෙන ඩිරෙක්ටරිය සහ ප්‍රතිදාන bitrate එක.
{} find විධානයේ ප්‍රතිදානය.

මේක මාගලක් වගේ මහා ලියමනක් ලියන්න තරම් ලොකු දෙයක් නෙමෙයි. මට නම් සුළු දෙයක්. නමුත් වැඩි පිරිසකට තේරුම් ගන්න පුළුවන් විධියට ලියන්න මට ඕන වුණ නිසයි ටිකක් දීර්ඝව විස්තර කළේ. Shell Script ලිවීම ගැන සිංහලෙන් උපකාරක අත්වැලක් diGIT සඟරාවේ පළ වෙන බවත් නැවත මතක් කරන්න කැමතියි. මමයි ලියන්නේ. :) ඉතින්, අදට ආයුබෝ....!

Thursday, October 22, 2009

පරිගණකය මුර කරන්න - චූටි crypto කුප්පියකුත් එක්ක!


ඉඳලා ඉඳලා ආපහු අහම්බෙන් පොඩි චාන්ස් එකක් ආවා බ්ලොග් සටහනක් ලියන්න. අද කියන්න යන්නෙ අනවශ්‍ය ඇඟිලි ගැසීම් වලින් තමන්ගෙ පරිගණකයෙ මෙහෙයුම් පද්ධතියත්, GRUB එකත් ආරක්ෂා කරගන්නෙ කොහොමද කියන එක.

ගොඩක් අය දන්නවනේ පරිගණකයෙ CD/ DVD/ USB වලින් බූට් කරන්න පුළුවන් විධියට BIOS සැකසුම් සකසලා තිබුණොත් වැඩේ විනාසයි කියලා... ලිනක්ස් Live CD එකකින් බූට් කරලා gksu nautilus ධාවනය කළාම මුළු හාඩ් ඩිස්ක් එකම නිරුවත්!! :-O

ඉතින් පළවෙනිම කාරණාව BIOS එකට මුරපදයක් දාල තියාගන්න. CD/ DVD/ USB වලින් බූට් කරන්න පුළුවන් පහසුකම අක්‍රීය කරන්න.

ඊළඟට අපි අත තියන්නෙ GRUB එකට. අපේ අසමසම බූට්ලෝඩරය (අසමසම බූට්ලෝඩරය කිව්වම දන්න කියන කෙල්ලෙකුත් මතක් වුණා :P ). මෙහෙයුම් පද්ධතියක් hijack කරන්න බොහොම පහසුවෙන් පුළුවන් GRUB එකේ පරාමිතීන් (boot parameters) විවිධ ආකාරයට සකස් කරලා. ඒ වගේ නරක වැඩ කරන හැටි ගැන ලියවුණු හොඳ සිංහල බ්ලොග් ලිපි කීපයකුත් පහුගිය කාලෙ කියවන්න ලැබුණා. ;) ඇත්තෙන්ම මෙහෙයුම් පද්ධතියක් නැතුවත් GRUB එකෙන් හරි හරි 'වැඩ දාන්න' පුළුවන්. ඒ නිසා GRUB එකටත් මුරපදයක් යොදලා තියාගන්න එක බොහොම වැදගත්.

වින්ඩෝස් ඔන්ලි අයට නම් GRUB නෑ තමා. මේ ලියවිල්ල ලියන්නෙ අඩුම ගානෙ ඇඩ් එකට හරි ලිනක්ස් දමාගෙන ඉන්න අයට. ලිනක්ස් වල පහත දැක්වෙන විධානයෙන් GRUB එකට අදාළ සැකසුම් තියෙන ගොනුව, menu.lst සංස්කරණය කරලා මුරපදයක් දමාගන්න පුළුවන්.

# vim /boot/grub/menu.lst

මේ ගොනුවෙ ඉහළින්ම, ඒ කිව්වෙ මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින් තමයි මුරපදය ස්ථානගත කරන්න ඕන. සාමාන්‍යයෙන් Ubuntu ස්ථාපනයෙදි නම් menu.lst ගොනුවෙ අදාළ ස්ථානයෙ උදාහරණ මුර පදයක් දාල එවනවා, topsecret කියලා. ඒක තියෙන පේළියෙ මුලට # ලකුණක් දාලා අක්‍රිය කරලයි තියෙන්නේ. අපි මේ දාන්න යන මුරපදය අපට ක්‍රම දෙකකට අනුව දාන්න පුළුවන්. එකක් plaintext විධියට, අනෙක encrypted hash string එකක් විධියට.

කිව්ව දේ තේරුණේ නැති අයත් ඇතිනේ... මෙන්න crypto කුප්පිය... Plaintext කිව්වේ ගෙඩිය පිටින් password එක එහෙමම දාන එක. උදාහරණයක් විධියට password එක sbu@lk1453 නම්, ඒක එහෙමම ලියන එක යි. මුරපදයක් ගෙඩිය පිටින් කොතන වුණත් ලියල තියෙන එක හරිම අනාරක්ෂිතයි. ඕන කෙනෙකුට දකින්න පුළුවන් මුර පදයක් plaintext විධියට තමන්ගෙ මතකයෙ විතරක් තිබුණාම හොඳටම ඇති. එතකොට encrypted hash string??? අපි ඔය රහස් වචනය අපටවත් අඳුනගන්න බැරි රහස් භාෂාවකට පෙරළුවොත් කෝමද? ඒක තමයි encrypt කරනවා කියන එක සරලව ම කිව්වොත්. ඔය මුර වචනය පරිගණකයෙ තියෙන එක එක ගණිතමය ක්‍රමවිධි පාවිච්චි කරලා (නියම තාක්ෂණික වහරෙන් කිව්වොත් encryption ඇල්ගොරිතම පාවිච්චි කරලා) රහස් සංකේත ක්‍රමයකට හරවනවා. ඒ ගැන මෙතන වැඩිය විස්තර කරන්න ගියොත් මම ලෝක අමාරුවක වැටෙන්නේ.. ඒ නිසා වැඩි දුර දේවල් කියන්නෙ නෑ. :P

Encrypt කරන්න විවිධ ක්‍රම විධි පාවිච්චියේ තියෙනවා. GRUB එකේ පාවිච්චි වෙන්නේ MD5 (Message Digest 5) කියන ක්‍රමය. MD5 ක්‍රමයෙ එක ලක්ෂණයක් තමයි, අපි හදා ගන්න hash එක කවදාවත් ආපහු plaintext බවට පරිවර්තනය කරන්න බැරි වීම. කරන්න පුළුවන් එකම දේ තමයි hash දෙකක් සංසන්දනය. ඉතින් ඔය මම ලිව්ව සාම්පල් මුර වචනය MD5 පාවිච්චි කරලා රහස් භාෂාවට පෙරළුවොත් කොහොමද? කරල බලන්න ඕනේ නම් මෙන්න මේ විධානය දීල බලන්න.

$ echo -n "sbu@lk1453" | md5sum

මෙන්න මෙහෙම උත්තරයක් එයි, මේ තමයි MD5 hash එක. ඒක අපේ password එකට (sbu@lk1453) අනන්‍ය එකක්. වෙන password එකක් දුන්නොත් එන්නෙ වෙනින් hash එකක්.

bf5685008c857862c15602cc73eef25c

Hash එකක් කවදාවත් ආපහු මුල් තත්වයට පත් කරන්න බැහැ. කරන්න පුළුවන් එකම දේ තවත් hash එකක් එක්ක සංසන්දනය විතරයි. ඉතින් ඕක මොන මළ යකාටද කියවන්න පුළුවන්? ඒ නිසා මේක ආරක්ෂිතයි.

නමුත් වැඩේ මෙතනින් ඉවර නැහැ. මුල් කාලයෙ මට මතක හැටියට GRUB එකේ මේ විධියට භාවිත වුණාද මන්දා... :-/

කවුරු හරි මගෝඩියෙක් ඔය hash එක පිටපත් කරගෙන යනවා. ගිහින් තව පොඩි program කෑල්ලක් අටවගන්නවා දැනට පාවිච්චි වෙන ඉංග්‍රීසි අකුරු - ඉලක්කම් - සංකේත ඔක්කොම එකතු කරලා හදන්න පුළුවන් සංකලන ඔක්කොම එකින් එක hash බවට පරිවර්තනය කරලා අපෙන් හොරකම් කළ hash එකත් එක්ක සංසන්දනය කරන්න පුළුවන් එකක්. බැරි වෙලාවත් ඒ සංකලන අතර අපේ මුර වචනයත් (sbu@lk1453) තිබුණොත්...! ඊළඟට මූ hash එක හොයා ගන්නවා ලේසියෙන්ම (bf5685008c857862c15602cc73eef25c), අපෙන් හොරකම් කළ එකත් එක්ක තිතටම ෆිට් කියලා දැක්ක ගමන් මූ අපේ password එක sbu@lk1453 කියල දැන ගන්නවා. තාක්ෂණිකව මේ ක්‍රමය හඳුන්වන්නේ bruteforce attack කියන නමින්. තව තව attack වර්ග තියෙනවා password හොයන්න පුළුවන්. Bruteforce attack මගින් මුරපද හෙවීම ලෙහෙසි නැහැ. නමුත් මෙතන ක්‍රියාත්මක වෙන මූලධර්මය, hash සංසන්දනය කිරීම මගින් වෙන attack එකක් පාවිච්චි කරල හරි මුරපදය හොයා ගන්න පුළුවන් වීමේ අවදානමක් තියෙනවා.

මම මේ තරම් වචන ගොඩක් වැය කරල හැකිතාක් දුරට කාටත් තේරුම් ගන්න පුළුවන් වෙන්න ලිව්වට මේ කිව්ව මගෝඩි වැඩේ අටවලා ක්‍රියාවේ යෙදවීම මහා ලොකු අමාරු දෙයක් නෙමෙයි. Just a script kiddies' job. ;)

ඒ වගේම මෑතකදි කළ පරීක්ෂණ වලින් හෙළි වෙලා තියෙනවා මේ සමහර MD5 hash වලින් නැවත මුල් password එක ගණනය කරන්න පුළුවන් බව! ඒ කියන්නෙ MD5 යම් පමණකට අනාරක්ෂිතයි!! [Rainbow tables]

මේ අවදානම අඩු කරන්න කරන්න තමයි Salt කියන තාක්ෂණය එන්නේ. මේකෙදි වෙන්නේ අපේ hash එක ගණනය කරන්න එවෙලෙ අහඹු ලෙස පරිගණක මතකයේ නිර්මාණය කරගන්න බිටු (bits) කීපයකුත් සහභාගි කරවා ගැනීම. තාක්ෂණිකව කිව්වොත් random bits නොහොත් salt. Hash එක ගණනය කරන ශ්‍රිතයට plaintext එකත් සමඟ මේ අහඹු බිටු කීපයත් ලබා දුන්නාම මම මුලින් කිව්ව ක්‍රම පාවිච්චි කරල හෙවිල්ල තවත් අමාරු hash එකක් එන්නේ.

ඉතින් GRUB එකේ salt පාවිච්චි වෙන්නෙ මෙන්න මෙහෙම:
grub_password (PASSWORD) = SALT + md5 (SALT + PASSWORD)
ඒ කිව්වෙ මුලින්ම අහඹු ලෙස හදා ගන්නා salt එක මුරපදයත් එක්ක එකතු කරනවා. ඊළඟට MD5 ක්‍රමයට encrypt කරලා ආපහු ඒකත් salt එක එක්ක එකතු කරනවා. මේ අන්තිම ප්‍රතිපලය තමයි hash එක විධියට පාවිච්චි වෙන්නේ. ඉතින්, කරල බලන්න ආසද?

මෙන්න මේ විධානය දීල බලන්න (මුර වචනය ඇහුවාම sbu@lk1453 කියන අපේ උදාහරණය දෙන්න):

$ grub-md5-crypt

බැලු බැල්මට මේ වගේ පෙනුමක් තියෙන එකක් එයි:

$1$IKofG/$XBHQwpG6b.ZJRQuNpTbBr.

ආයෙත් වතාවක් කරල බලන්න. Hash එක වෙනස් නේද? ඒකට හේතුව තමයි hash එක ගණනය කිරීමේදී අහඹු බිටු යොදා ගැනීම. මේ ක්‍රමය දැනට ඉතාම ආරක්ෂිත ක්‍රමයක් ලෙසයි සැලකෙන්නේ.

Salt ගැන මම හදාරන්න පටන් ගත්තේ බොහොම මෑතකදී. මේ GRUB එකේ තියෙන අහවල් එව්වා හාරා අවුස්සන්න ගිහින් තමයි. :D ඉතින් අවංකවම මම salt ගැන මෙතනින් එහාට වැඩි යමක් දන්නෙ නැහැ. මම ලියල තියෙන දේ යම් කිසි වැරැද්දක් අඩුපාඩුවක් එහෙම තියෙනවනම් මේක කියවන crypto දන්න කෙනෙකුට බාරයි අඩුපාඩු පෙන්වා දීම. :)

ඉතින්, encryption ගැන විස්තර කරන්න ගිහින් මාතෘකාවෙන් ගොඩක්ම එළියට විසි වෙලා මම. මම විස්තර කරමින් හිටියෙ GRUB එකට මුරපද දැමීම ගැන. ඒක කරන්න මම කිව්ව ඔය encryption වග විස්තරේ දැනගන්න අවශ්‍ය නැහැ. Encryption ගැන ලිව්වෙ ලිපිය ටිකක් සාරවත් කරන්න.

දැන් (ගෙඩිය පිටින් password ක්‍රමයට අමතරව) GRUB එකේ පාවිච්චි වෙන්නෙ salted md5 hash ක්‍රමය. GRUB එකට මුරපදයක් දාන්න මුලින්ම /boot/grub/menu.lst ගොනුව විවෘත කරගන්න ඕනේ. ඒ ගොනුවෙ මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින් මෙන්න මේ ක්‍රම දෙකෙන් කැමති එකක් යටතේ දීල තියෙන පේළිය ඇතුළත් කරලා ගොනුව save කරන්න.

1. Plaintext ලෙස (මේක අනාරක්ෂිතයි කියලා කලිනුත් කිව්වා!!!)
password sbu@1453

2. Hash එකක් ලෙස (මෙච්චර වෙලා විස්තර කළේ මේකෙ තාක්ෂණික පසුබිම)
password --md5 <ඔබේ මුරපදයට අදාළ salted hash එක>
උදා: password --md5 $1$38yfG/$Y26Y38QN67XZ9ipsWfUnE0
(මේ hash එක ගණනය කරන්න grub-md5-crypt විධානය පාවිච්චි කරන්න පුළුවන් බව ඉහත කියා තිබෙනවා)

අපට ඕනෙ නම් තවත් මරු වැඩක් කරන්න පුළුවන්. කැමතිද වින්ඩෝස් වලට password එකක් GRUB එකෙන්ම දාන්න. ආයෙ සක්කරය තියා වයිම කිව්වත් වින්ඩෝස් බූට් වෙන්නෙ නෑ password එක දුන්නෙ නැත්තං.

එහෙම නැත්තම් Ubuntu වල recovery mode එකට කාටවත් යන්න බැරි වෙන්න password එකක් දාමුද? මොකද ඒකට ගියොත් (login වෙන්නෙ නැතුවම) පද්ධතියෙ යම් යම් වෙනස්කම් කරන්න අවස්ථාව සැලසෙනවනෙ. ඉතිං හැම එකාම recovery mode යන එක නවත්තන්නත් පුළුවන්.

ඉතින් ඒක කරන්නෙ කොහොමද? හරි සරලයි. menu.lst ගොනුවේ මුරපදය දාන්න ඕන මෙහෙයුම් පද්ධතියට අදාළ යොමුව හොයා ගන්න. දැන් ඒකෙ statements ටිකට යටින් කලින් විධියටම මුරපදය ඇතුළත් කරන්න.
උදාහරණ:
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
password --md5 $1$WQ0gG/$eMjWNO.3XSAwMtd4bk0vi1


දැන් පරිගණකය restart කරල බලන්න වෙනස. :) සාමාන්‍ය පරිදි බූට් කරන්න පුළුවන්. හැබැයි මුරපද දමාපු මෙහෙයුම් පද්ධති බූට් කරන්න ගියොත් මුරපද ඉල්ලනවා. ඒ වගේම parameters අතින් සකස් කරන්නත් මුරපදයක් ඕනේ (ඒ අපි මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින්ම දමාපු එක).

මේක ලියල මගේ හොඳ පණ ගිහින්. ඒත් තව එක දෙයක් කියන්න තියෙනවා. හොඳ මුරපදයක් තෝරාගනිද්දි ඉංග්‍රීසි කැපිටල් අකුරු, සිම්පල් අකුරු, විරාම ලක්ෂණ සහ අංක -- මේ ඔක්කොම නියෝජනය වෙන මුරපදයක් හදා ගන්න. ඒ වගේම මුරපදය සංකේත 8කට වඩා දිග එකක් වෙන්න හදා ගන්න. හේතු විස්තර කරන්න කම්මැලියි වගේ මේ වෙලාවේ.

අහල තියෙනවද leet ගැන? Leet ගැන දැනගන්න විකිපීඩියා පිටුව කියෙව්වම හොඳටෝම ඇති. තමන් විතරක් දන්න, තමන්ගෙ පරණ secret crush එකක් වෙලා හිටපු, ඒත් වැඩේ හරි නොගියපු කෙල්ලෙකුගෙ/ කොල්ලෙකුගෙ නමක් leet වලින් mod කරල ගත්තාම password එකකට නියමයි. ;) මොකද ඒක තමන් විතරයි නෙව දන්නේ... :P

උදාහරණයක් හැටියට, හිතේ කැරකෙන, ඒත් කාටවත් ලේසියෙන් අනුමාන කරන්න බැරි බව ෂුවර් වචනය marzena godecki නම් :P , පොඩි ලීට් පාරක් දාලා ඒක M4rz3n4 g0d3ck! කරගන්න පුළුවන්. දැන් කාටවත් guess කරන්න අමාරුයි නේද? තමන්ගෙ හිත ඇතුලෙ තියෙන ටියුන් එකට තමන් කැමති තැන් වලට තමන් කැමති විධියට ලීට් අකුරු දාගන්න. කෝමද වැඩේ? :)

එහෙනං.... අදට ආවඩා... ආයුබෝ වේවා...! Crypto දන්නා අය ඌණපූරණ කරත්වා! ලිනක්ස් නොදන්නා අය ප්‍රශ්න අසත්වා!

Ciao...... Ci vediamo dopo........!!!!!!!!!!!!!

෴ සමීර ශාකුන්තල | Sameera Shaakunthala ෴

Wednesday, October 14, 2009

ආකල්ප, වීඩියෝ ක්‍රීඩා සහ ලිනක්ස්

ම්ම්... බ්ලොග් උපන්දින සාදයෙන් පස්සේ ලියන පළවෙනි ලියමන... මගේ බ්ලොග් උපන්දිනේ සමරන්න ආපු හැමදෙනාටම ස්තූති... ඉස්සරහටත් මං ලියන අනංමනං කියවන්න.. :)

මාතෘකාව...........! මීට කලකට කලින් දුටු දෙයක් මතක් වෙලා මේක ලියන්න හිතුණේ... දැන් තියෙනවනේ ඔය හන්දි හන්දි ගානේ පොඩි පොඩි video game centre. ඉන්ටර්නෙට් කැෆේ වගේ මේවයෙත් පාවිච්චි කරන කාලය අනුව ගෙවීමක් කරලා මොකක් හරි වීඩියෝ ක්‍රීඩාවක යෙදෙන්න පුළුවන්. පරිගණක ක්‍රීඩා වලට වැඩිපුරම ඇබ්බැහි වෙලා ඉන්නෙ පොඩි ළමයි... ඉස්කෝලෙ හයේ හතේ විතර පොඩි බට්ටෝ... හැබැයි ඉතිං මේවයෙ තියෛන කරන මිනී මරාගන්න ගේම් නම් ළමයින්ට සුදුසුයි කියන්න බැහැ... මේ video game centre වල තියෙන ක්‍රීඩා වලින් සමහර ඒව වර්ග කරල තියෙන්නෙ 18+ විධියට, නමුත් අපේ සිරි ලංකාවෙ බොහොම නිදැල්ලෙ සංසරණය වෙනවා -- මහරජාණන්ගෙ අවධානයට ලක් විය යුතු තවත් මාතෘකාවක්... අර (අහ)වල් සයිට් තහනම් කළා වගේ මොකක් හරි කරන්න වෙයි. නැත්තං අර ජෝන් සීනා විතරක් නෙමෙයි තව තව ආතක් පාතක් නැති fictional චරිතත් ඔළුවටම ගහයි.

මම අද කියන්න යන්නෙ ඒ පොලිටිකල් කතා නෙමෙයි... Video game center එකකට වෙලා පොඩ්ඩක් බලාගෙන ඉඳිද්දි හිතුණ දෙයක්... සමහර අය ලිනක්ස් බෑ බෑ කියන්න එක හේතුවක්නේ මේ මූලික ලිනක්ස් විධාන මතක නැති කම... මතක තියාගන්න බැරිලු... ටයිප් කරනකොට ටැපලෙනවලු... ක්ලික් කරන්න තියෙනකොට ලේසියිලු.

මොන බොරුද? :P

දැන් ආපහු යමු වීඩියෝ ගේම් එක සෙල්ලම් කරන පොඩි එකා ළඟට... පොඩි එකා මොකක්දෝ එකක් ටයිප් කරනවා... මෙන්න අපේ වීඩියෝ ක්‍රීඩාවෙ ඉන්න 'පොර' ගෙ අතට අවි ආයුධ (ammunition) මාර තොගයක් එකපාරටම මැවෙනවා... පොඩි එකාට ටයිප් වෙන දේ පේන්නෙත් නෑ.. හැබැයි ඌ ඒක කොහොම හරි කරගන්නවා. තව ටිකකිං... අපේ පොර දැන් මැරෙන්න ඔන්න මෙන්න... හැබැයි පොඩි එකා තවත් මොකක්දෝ එකක් ටයිප් කරන පරක්කුවෙන් පොර full health. තවත් මොකක්දෝ එකක් ටයිප් කළ ගමන් මේන්න අහසින් පාත් වුණා වගේ සද්දන්ත වාහනයක්!

ඔය කිව්වෙ වෙන මොනවත් නෙමෙයි පරිගණක ක්‍රීඩා වල තියෙන easter eggs, නැත්තම් game cheats ගැන. තවත් සමහර අය passwords කියලත් කියනව මේවට... මොක වුණත් කමක් නෑ... පොඩි එකාට එක එක ක්‍රීඩාවෙන් ක්‍රීඩාවට අකුරක් නෑර මේව ඔක්කොම මතකයි. ටයිප් කරන අකුරු ටික පේන්නෙත් නෑ... එක හුස්මට ටයිප් කරගෙන යන්නත් ඕනේ. එක අකුරක් හරි මිසිං වුණොත් ඊළඟ තත්පරෙන් අපේ 'පොර' ඩවුන් නේ. සමහර වෙලාවට cheat code එක ටයිප් කරන එකත් නිකං ප්‍රතීක ක්‍රියාවක් වගේ -- එක සැණින්! :-O


ඉතින්... ඒකත් එහෙම නං... අපි වගේ අයට,
ලිනක්ස්/ යුනික්ස් ෂෙල් එකක මූලික වැඩ ටික වත් කරගන්න එකත් මහ ලොකු දෙයක් ද?
ඒකත් බැරි නම් වරද තියෙන්නෙ කොතනද??

Tuesday, October 6, 2009

෴ ශාකුන්තලගේ සිය plus වස් සමරුව ෴



ආයුබෝවන්
මෙය මගේ පළමු බ්ලොග් සටහන නොවෙයි. මම බ්ලොග් ලියන්න පටන් ගත්තේ මීට අවුරුදු දෙකහමාරකට ඉහතදී. බ්ලොග් ලිවුවේ කඩ්ඩෙන්. බ්ලොග් ලිවීම මට ඒ දවස් වලම එපා වුණේ කඩ්ඩෙන් ලි‍යන බ්ලොග් අපේ කවුරුවත් කියවන බවට විශ්වාසයක් නොතිබුණු නිසා.
දැන් මම UCSC එකේ දෙවන වසර ශිෂ්‍යයෙක් (BICT). අප දියත් කළ UCSC LODGE වෙබ් අඩවිය (http://www.ucsclodge.lk) නිසා බ්ලොග් ලියන්නන් අතරට මම නැවත පිවිසුණා. නමුත් බ්ලොග් ලිවුවේ කඩ්ඩෙන්. එයට හේතුව ‍දමිළ අය අතරටත් මගේ බ්ලොග් එක ගෙනියන්න. නමුත් Ubuntu වල සිංහල භාවිත කරන ආකාරය ගැන මම සිංහලෙන් ලියපු බ්ලොග් සටහනෙන් පස්සෙ මට හිතුණා සිංහලෙන් බ්ලොග් ලිවීම දිගටම කරගෙන යන්න.
ඒ නිසා shaakunthala.blogspot.com හි තිබුණු සියළු ඉංග්‍රීසි බ්ලොග් සටහන් මකා දමලා මේ අඩවිය සර්ව සම්පූර්ණ ශුද්ධ සිංහල බ්ලොග් අඩවියක් බවට පත් කළා. මගේ UCSC LODGE බ්ලොග් එක http://www.ucsclodge.lk/blogs/shaakunthala වෙත පිවිස කියවන්න පුළුවන්.

ඉතින් සිංහල බ්ලොග් මිතුරනි, සිංහල බ්ලොග්කරුවන් වෙත පිවිසීමට මට අවසර...

~ ශාකුන්තල ~

ඔය තියෙන්නේ මම හරියටම මීට අවුරුද්දකට කලින් මේ බ්ලොග් අඩවිය ආරම්භ කරද්දි, 2008 අවුරුද්දෙ ඔක්තෝබර් 6 වෙනිදා හවස 5.02 ට අන්තර්ජාලයට නිදහස් කළ පළවෙනි බ්ලොග් සටහනේ සම්පූර්ණ අන්තර්ගතය. හරියටම හවස 5.02ට කිව්වෙ නැකැත් බලල එහෙම නෙමෙයි. ;) මට හිතුණු වෙලාවට ලිව්වා - පළ කළා! ඒක හරිම සුන්දර අත්දැකීමක්. සිංහල බ්ලොග් කියවනයටත් එකතු කරලා දවස ගානෙ පෝස්ට් දැම්මා... ටික කලකට පස්සෙ කොත්තුවටත් එකතු කළා. හැබැයි ලිව්වේ නිකං වල් පල්.. වැඩකට ඇති දෙයක් නෙමෙයි.

මුල්ම පෝස්ට් එක ලියලා දවස් තුනකට පස්සෙ comment එකක් එනවා සු෴ අක්කගෙන්;

සිංහල බ්ලොග් අවකාශයට සාදරෙන් පිළිගන්නවා.. ශාකුන්තල..කවුද නම තිබ්බේ..?

කොහොම වුණත් නමේ හැටියට ලිවීමත් ඇති නේද ? ;-)

දිගටම ලියන්න ! ජය !

දවස් තුනක් තිස්සෙ දිගටම ලියනවද නැද්ද කියලා හිත හිතා දෙගිඩියාවෙන් කරපු බ්ලොග් ලිවිල්ලට ජවයක් ආවා ඒ පොඩි comment එකෙන්. මම ලියන දේවල් වලට comment නැතත් අනිත් අය කියවනව කියල දැනගන්න ලැබීම ලොකු තල්ලුවක්. ඇත්තම කිව්වොත් මුලින් මම comment බලාපොරොත්තු වුණේ නැහැ. නමුත් එදා එහෙම පොඩියට පටන් ගත්ත බ්ලොග් එකට අද වෙනකොට බලාපොරොත්තු වුණාටත් වඩා පිරිසක් ඇවිත් එක් රොක් වෙලා. :)

ඉතින් අද මේ ලියමන ලියැවෙන්නෙ මගේ බ්ලොග් එකේ වැදගත් සංධිස්ථාන දෙකක් සමරන්න... එකක් පළවෙනි උපන්දිනය... දෙවැන්න ශතකය.
අවුරුද්දයි -- සිංහල බ්ලොග් ලිපි 100 යි. 
ඒකට තමයි ශාකුන්තලගේ සිය + වස් සමරුව කියන්නේ...
කෝමද වැඩේ...? දෙකම එක දවසේ!! :)

එදාට වඩා අද වෙනකොට ජීවිතේට ගොඩක් දේ එකතු වෙලා... කාර්ය බහුල වෙලා. බ්ලොග් ලියන එකෙන් එක එක විධියෙ අය අඳුනගන්න ලැබුණා. සමහර අයගෙන් උදව් ගත්තා... සමහර අයට උදව් කළා. සමහර අය මාත් එක්ක දිගටම හිටියා... සමහරු අමනාප වුණා. ඒ අතරෙ සමහර දේවල් ගැන කතා කරන්න ගිහින් නැති කරදර වලත් පැටළුණේ නැත්තේ...ම නොවේ! ;)

එදා බ්ලොග් ලිවීම පටන් ගත්තෙ මගේ වටේ සිද්ධ වෙන එක එක විකාර ලියන්න. ඒත් ලැබෙන ප්‍රතිචාර වලින් ටික ටික සීරුමාරු වෙලා අද වෙද්දි කෙනෙකුට කියවා යම් දෙයක් ලබා ගන්න පුළුවන් බ්ලොග් අඩවියක් බවට ශාකුන්තලගේ සටහන් පොත පත් වෙලා.

ඉතින් තව වැදගත් දෙයක් තියෙනවා... I DNT HATE MOZILLA BUT USE IE OR ELSE... - මේකට ආපු ප්‍රතිචාර වලින් තමයි මට මගේ ටියුන් එක මුලින්ම අහු වුණේ. ඒක ගැන නම් කියන්නෙ නැතුවම බැහැ. පරණ ලිපි දිහා බලනකොට හිනාත් එනවා... මොනවද මං මේ ලියල තියෙන දේවල්? :D :-O :D

බ්ලොග් ලිවීම හරහා මට ඇති වුණු වැදගත්ම පුරුද්ද කියවීම. බ්ලොග් එකක් කිව්වාම ඕනම දෙයක් නිදහසේ ලියන්න පුළුවන් තමයි. ඒත් වගකීමකින් තොර ප්‍රකාශ කරන්න ගියොත් දවස් දෙකෙන් වැඩේ දෙල් වෙනවා. අන්තිමේ මැස්සෙක්වත් එන්නෙ නෑ බ්ලොග් එක පැත්ත පළාතෙ ;) . ඒ නිසා ඕනම දෙයක් බ්ලොග් එකේ ලියන්න කලින් කියවන්න / අත්හදා බලන්න මම පුරුදු වුණා.

මේ වෙනකොට මගේ බ්ලොග් එක කියවන්නත් මම බලාපොරොත්තු වුණාට වඩා වැඩි පිරිසක් එකතු වෙලා. සිංහල බ්ලොග් කියවනය නිතර ඇසුරු කරන අය, කැම්පස් එකේ යාළුවො, විද්‍යුත් තැපෑල හරහා කියවන අය සහ අහම්බෙන් සෙට් වෙච්ච අය. ඉතින් එක එක විධියෙ ප්‍රතිචාර එනවා... ප්‍රතිචාර කියන්නෙ බ්ලොග් එකේ comment යටතෙ පළ වෙන ඒව විතරක්ම නෙමෙයි... ඒ හැම එකක්ම දකිද්දි හරිම සතුටුයි. සමහර දවස් වල මම දකිනවා කැම්පස් එකේ සමහර බැචාලා ගමේ යනකොට flash drive වලට මගේ ලිපි save කරගෙන යනවා... සමහරු feedburner ඊමේල් එකට reply එවනවා... සමහරු උදේට ගුඩ් මෝනිං එකත් එක්ක මතක් කරන්නෙ මගේ බ්ලොග් පෝස්ට් එක. ඒ වගේ දේවල් දැක්කාම හිතේ ඇති වෙන්නෙ බොහොම අවංක සතුටක්. මොකද මම ලියන දේවලින් කවුරුවත් ලේ කෝප කරගන්නෙ නැතුව යමක් විඳිනවා කියල මට හිතෙන නිසා.

ප්‍රතිචාර නිසා ලියන්න අළුත් මාතෘකා ලැබුණා... නොදන්න දේ දැනගන්න ලැබුණා... ලිවීම දිගටම කරගෙන යන්න හොඳ තල්ලුවකුත් ලැබුණා. ඒ විතරක් නෙමෙයි... අට-ලෝ දහමට අනුව ජීවිතය හදා ගන්න බ්ලොග් අවකාශය හොඳ පාඩම් කියා දෙන තැනක් බවත් මම තේරුම් ගත්තා.. පැසසුම් විතරක්ම නෙමෙයි... නින්දා.. අපහාසත් එනවා... ඒවට මුහුණදෙන්න ඉගෙනගත්තෙ මේ බ්ලොග් ලිවිල්ලෙන්ම තමයි. සමහර අය මම යන ගමන් මග වෙනස් කරන්න වලි කෑවා (මගේ ස්වභාවයෙන්ම තියෙන මුරණ්ඩු ගතිය නිසා ඒ අයට මගේ ලිවීම් රටාවෙ කිසි වෙනසක් ඇති කරන්න බැරි වුණා :) ). බ්ලොග් ලිවිල්ලත් නිසා මට හොඳ අවස්ථාවනුත් ලැබුණා... ඒව ගැන මෙතන කියන්න ගියොත් සමරන්න වෙලාවක් නැති වෙයි.... ඒ නිසා මෙන්න මේ රොක් සිංදුවත් අහගෙනම මගේ බ්ලොග් එකේ උපන්දිනේට සෙට් වෙමු... රොක් සංගීතය මගේ ප්‍රියතමය නේ... \m/ \m/


ඉතින් කාර්ය බහුලත්වය නිසා අදින් පස්සෙ පොඩි විවේකයක් ගන්න කල්පනා කළා. බොහෝ විට මගේ බ්ලොග් ලිවිල්ල මාස එකහමාරකට එක පෝස්ට් එකක් විතර වෙනකම් අඩු වෙයි... හැබැයි... සක්කරයා තියා වයිමා කිව්වත්.... බ්ලොග් ලිවීම නවත්තන්නේ නම් නැත. :) (මේක අර කොණ්ඩෙ කපපු සිද්ධිය වගෙ නෙමෙයි :P ) ටයිප් කරන්න ඇඟිලි තුඩු පණ තියෙනකම් බ්ලොග් එක දිගටම කරගෙන යනවා... :)

ඉතින්, මම මේ වෙලාවෙ විශේෂයෙන්ම ස්තුති කරනවා නන් අයුරින් සහය දීපු හැම දෙනාටමත් (ඒකත් දිග ලිස්ට් එකක් ;) ), ශාකුන්තලගේ සටහන් පොත එක්ක රැඳී ඉන්න හැම දෙනාටමත්, සිංහල බ්ලොග්කරුවන්ගේ සංසදයටත්෴

ආයුබෝ වේවා....෴

෴ සමීර ශාකුන්තල | Sameera Shaakunthala ෴