<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1888360075675984083</id><updated>2011-07-29T08:41:35.195+05:30</updated><title type='text'>Feel my life</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-4423811854088769091</id><published>2010-03-11T13:56:00.008+05:30</published><updated>2010-03-11T14:49:52.958+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;මෙම ලිපියෙන් ලිවීමට බලාපොරොත්තු වනුයේ win32 Portable Executable format යනුවෙන් හදුන්වන්නේ කුමක්ද යන්නත් මෙතෙක් ලියු ලිපි වල සාරාංශයක් ඉදිරිපත් කිරීමටත්ය.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format-part-9.html"&gt;සිං&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format-part-9.html"&gt;හලෙන් win32 Portable Executable format - part 9&lt;/a&gt; සදහා මීට පෙර ලිපියට යන්න.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/S5iuc2_ZcLI/AAAAAAAAAJk/tZMz4ekrLxk/s1600-h/Untitled-100.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 105px; height: 1455px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/S5iuc2_ZcLI/AAAAAAAAAJk/tZMz4ekrLxk/s400/Untitled-100.jpg" alt="" id="BLOGGER_PHOTO_ID_5447295560125608114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය විස්තර කිරීම සදහා නිශ්චිත ක්‍රමයක් නොමැත. එම නිසා මා දන්නා පමණනින් විස්තර කිරීම‍ට බලාපොරොත්තු වෙන්නෙමි. මෙම file format එක &lt;a href="http://en.wikipedia.org/wiki/COFF"&gt;COFF&lt;/a&gt; (Common Object File Format) ලෙසද හදුන්වන ස්ථානද දක්නට ඇත. මෙය &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; ආයතනය විසින් පමණක් නිර්මානය කරන ලද්දක් නොවන අතර &lt;a href="http://www.intel.com/"&gt;Intel&lt;/a&gt;, &lt;a href="http://www.borland.com/"&gt;Borland&lt;/a&gt;, &lt;a href="http://www.openwatcom.org/"&gt;Watcom&lt;/a&gt;, &lt;a href="http://www.ibm.com/"&gt;IBM&lt;/a&gt; වැනි ආයතන කිහිපයක්ද එකතුව නිර්මානය කරන ලද්දකි.&lt;br /&gt;මෙයටද වෙනත් file වර්ග(.html, .zip, .bmp වැනි) වලට මෙන්ම ආවේනික රටාවක් තිබේ. මෙම format එකට සකසන files .exe, .dll, .ocx, .cpl, .sys වැනි extenstions වලින් තිබිය හැක.&lt;br /&gt;&lt;br /&gt;PE එකක් යනු compiler එකක් මගින් සකසන ලද file එකක් වේ. එය අපට නිර්මානය කිරීමට අපහසුය. අපට win32 executable එකක් සැකසීමට නම් PE format එක ගැනත් Linker එකක ක්‍රියාවලියත් යන 2ම ගැන හොද අවබෝධයක් තිබිය යුතුය. ඊ‍ට අමතරව library file වල ඇති functions ගැනත්, ඒවායේ කාර්යයන් ගැනත් හොද අවබෝධයක් තිබිය යුතුය.&lt;br /&gt;&lt;br /&gt;මෙම ලිපි මාලාවේ පැහැදිලි කිරීම් සදහා calc.exe හා shell32.dll (අනවසරයෙන්)යොදා ගෙන ඇත.&lt;br /&gt;&lt;br /&gt;PE file එකක් සැකසීමට 0 සිට 255 (ASCII Code) දක්වා ඇති සියලුම අකුරැ භාවිතයට ගනී. එම නිසා ඒවා text editor එකකින් කියවිය නොහැක. ඒවා කියවීමට නම් එය hex editor එකකින් විවෘත කර ගත යුතුය.&lt;br /&gt;&lt;br /&gt;Source එක හා output එක පමණක් සැලකූ විට,&lt;br /&gt;&lt;br /&gt;html source file එකක් web browser එකක් මගින් විවෘත කල විට එහි source එකට අනුව output එකක් නිර්මාණය කර දෙයි.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/S5isyGzyYqI/AAAAAAAAAJM/24Z6Z2EP1wg/s1600-h/Untitled-98.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 303px; height: 111px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/S5isyGzyYqI/AAAAAAAAAJM/24Z6Z2EP1wg/s400/Untitled-98.jpg" alt="" id="BLOGGER_PHOTO_ID_5447293726125875874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;එසේම exe එකක් ක්‍රියාත්මක කල විට PE එකෙහි source එකට අදාල output එකක් අපට දැක ගත හැක.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/S5isyVt6PpI/AAAAAAAAAJU/yWOHPtiGL_M/s1600-h/Untitled-99.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 284px; height: 105px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/S5isyVt6PpI/AAAAAAAAAJU/yWOHPtiGL_M/s400/Untitled-99.jpg" alt="" id="BLOGGER_PHOTO_ID_5447293730127756946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PE format එක යනු PE එකක source එක තබා ගන්නා ආකෘතිය වේ. මෙම ලිපි මාලාවෙන් පැහැදිලි කර තිබෙනුයේ PE එකක source file එකෙහි format එක ගැනය. එය html යන language එක ගැන පැහැදිලි කිරීමක් වැනිය.&lt;br /&gt;මෙහිදී සියළු පැහැදිලි කිරීම් සිදුකර ඇත්තේ අන්තර්ජාලය හරහා ලබා ගත් තොරතුරු මත හා මාගේ ස්වයං අධ්‍යයන මත ලබා ගත් කරුනු මගිනි. මෙම පැහැදිලි කිරීම් සදහා මා විසින් නිර්මාණය කරන ලද මෘදුකාංගයක් යොදා ගෙන ඇත. එය PE file එක තිබෙන ආකාරය බලා ගැනීමට හා වෙනස් කිරීමට හැකි IDE එකක් ලෙස ක්‍රියා කරයි. නමුත් මෙමගින් නව PE file එකක් නිර්මාණය කල නොහැක. මෙහිදී සිදු කරනුයේ PE එකෙහි data වෙනස් කර පිටපතක් save කිරීම පමනකි.&lt;br /&gt;&lt;br /&gt;මෙම PE file වල magic code එක "MZ" වේ. PE එකක ව්‍යුහය පිළිබදව අන්තර්ජාලය තුල සෙවීම් කිරීමේදී විවිධ ආකාරයේ පැහැදිලි කිරීම් දක්නට තිබේ. නමුත් මෙහිදී මා පළමුව සිදු කලේ PE එක ප්‍රධාන කොටස් 3 කට වෙන් කර එය tree එකක් ආකාරයට සකසා ගැනීමයි. පළමු කොටස MS-DOS දත්ත සදහාද, දෙවන කොටස Win NT දත්ත සදහාද, තෙවන කොටස PE එකෙහි data ඇති කොටස වශයෙන්ද වෙන් කර ඇත. මෙහි පළමු කොටස් 2හි ඇති සියළු උප කොටස් සෑම PE එකකම පාහේ දක්නට ඇත.තෙවන කොටස section වල meta data හා section data යනුවෙන් තවත් කොටස් 2 කට වෙන් කර ඇත. මෙම sections .text, .rsrc, .data වැනි නම් වලින් පිහිටා තිබේ. මෙම section තුල data අඩංගු tables පිහිටා ඇත. ඒවා import table, export table, resource table වැනි නම් වලින් පිහිටා ඇත. මෙම table තුල භාවිතා කරන දත්ත, executable code එක, වෙනත් library තුලින් import කල යුතු functions ගැන විස්තර ආදිය තිබේ.&lt;br /&gt;&lt;br /&gt;මෙහි PE එකෙහි ව්‍යුහය tree එකක් ආකාරයට දක්වා ඇත.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-4423811854088769091?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/4423811854088769091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/4423811854088769091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/4423811854088769091'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format.html' title='සිංහලෙන් win32 Portable Executable format'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-7736277937597442526</id><published>2010-03-10T15:37:00.018+05:30</published><updated>2010-03-13T21:22:24.286+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 9</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;පසුගිය සතියේ RT_DIALOG පිළිබදව විස්තර කිරීමක් සිදු කර ඇත. තවද dialog එකක් තුල ඇති Object classes කිහිපයක් ගැනද, ඒවායේ attribute ගැනද සදහන් කර ඇත. මේ සතියේ තවත් Object classes කිහිපයක් ගැන සදහන් කිරීමට බලාපොරොත්තු වෙමි.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;COMBO BOX&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-weight: bold;"&gt;STYLE NAME&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;BIT #&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_LOWERCASE&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_UPPERCASE&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DISABLENOSCROLL&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_NOINTEGRALHEIGHT&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_HASSTRINS&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_SORT&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_OEMCONVERT&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_AUTOHSCROLL&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_OWNERDRAWVARIABLE&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_OWNERDRAWFIXED&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DROPDOWNLIST&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DROPDOWN&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_SIMPLE&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;msctls_trackbar32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;TBS_NOTHUMB&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_FIXEDLENGHT&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_ENABLESELRANGE&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_NOTICKS&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_HORZ&lt;/td&gt;&lt;td&gt;xxxi=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_VERT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_AUTOTICKS&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_RIGHT&lt;/td&gt;&lt;td&gt;xxx=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_BOTTOM&lt;/td&gt;&lt;td&gt;xxx=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_TOP&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_LEFT&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TBS_BOTH&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;msctls_updown32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;UDS_NOTHOUSANDS&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_HORZ&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_ARROWKEYS&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_AUTOBUDDY&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_ALIGNLEFT&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_ALIGNRIGHT&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_SETBUDDYINT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UDS_WRAP&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;msctls_progress32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;PBS_VERTICAL&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PBS_SMOOTH&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysListView32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;LVS_NOSORTHEADER&lt;/td&gt;&lt;td&gt;xvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_NOCOLUMHEADER&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_NOSCROLL&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_OWNERDATA&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_OWNERDRAWFIXED&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EDITLABELS&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_AUTOARRANGE&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_ALIGNTOP&lt;/td&gt;&lt;td&gt;xxi=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_ALIGNLEFT&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_NOLABELWRAP&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SHAREIMAGELISTS&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SORTDESCENGING&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SORTASCENDING&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_LIST&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SMALLICON&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_REPORT&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_ICON&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SHOWSELALWAYS&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_SINGLESEL&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysTreeView32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;TVS_SHOWSELALWAYS&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TVS_DISABLEDRAGDROP&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TVS_EDITLABELS&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TVS_LINESATROOT&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TVS_HASLINES&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TVS_HASBUTTONS&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysTabControl32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;TCS_FOCUSNEVER&lt;/td&gt;&lt;td&gt;xvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_TOOLTIPS&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_OWNERDRAWFIXED&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_FOCUSONBUTTONDOWN&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_RIGHTJUSTIFY&lt;/td&gt;&lt;td&gt;xxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_FIXEDWIDTH&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_SINGLE&lt;/td&gt;&lt;td&gt;xxiii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_MULTILINE&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_TABS&lt;/td&gt;&lt;td&gt;xxiv=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_BUTTONS&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_RAGGEDRIGHT&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_VERTICAL&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_HOTTRACK&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_FORCELABELLEFT&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_FORCEICONLEFT&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_RIGHT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_BOTTOM&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_SCROLLOPPOSITE&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysAnimate32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ACS_TIMER&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ACS_AUTOPLAY&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ACS_TRANSPARENT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ACS_CENTER&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;RichEdit20A&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ES_SELECTIONBAR&lt;/td&gt;&lt;td&gt;ix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_VERTICAL&lt;/td&gt;&lt;td&gt;x=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_NOIME&lt;/td&gt;&lt;td&gt;xiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_SELFIME&lt;/td&gt;&lt;td&gt;xiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_SAVESEL&lt;/td&gt;&lt;td&gt;xvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_SUNKEN&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_DISABLENOSCROLL&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_WANTRETURN&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_READONLY&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_NOHIDESEL&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_AUTOHSCROLL&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_AUTOVSCROLL&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_PASSWORD&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_RIGHT&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_CENTER&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_LEFT&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_NOOLEDRAGDROP&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_MULTILINE&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysDateTimePick32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;DTS_RIGHTALIGN&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_APPCANPARSE&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_SHOWNONE&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_UPDOWN&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_SHORTDATEFORMAT&lt;/td&gt;&lt;td&gt;xxx=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_LONGDATEFORMAT&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DTS_TIMEFORMAT&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;SysMonthCal32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MCS_NOTODAY&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MCS_WEEKNUMBERS&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MCS_MULTISELECT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MCS_DAYSTATE&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;u&gt;ComboBoxEx32&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;CBS_LOWERCASE&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_UPPERCASE&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DISABLENOSCROLL&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_NOINTGRALHRIGHT&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_HASSTRINGS&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_SORT&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_OEMCONVERT&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_AUTOHSCROLL&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DROPDOWNLIST&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_DROPDOWN&lt;/td&gt;&lt;td&gt;xxxi=1 And&lt;br /&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBS_SIMPLE&lt;/td&gt;&lt;td&gt;xxxi=0 And&lt;br /&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/S5im8o4RzZI/AAAAAAAAAJE/s3EGfvhbVzg/s1600-h/Untitled-97.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 343px; height: 400px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/S5im8o4RzZI/AAAAAAAAAJE/s3EGfvhbVzg/s400/Untitled-97.jpg" alt="" id="BLOGGER_PHOTO_ID_5447287310000442770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;object සදහා වන Styles හා ExStyles යෙදිය හැකි අගයන් ඉහත දක්වා තිබේ. මීගල‍ට ඇති 4 bytes මගින් දක්වනු ලබන්නේ එම object එක තිබෙන ස්ථානයේ x හා y ඛණ්ඩාංකයන් වේ. මිලග 4 bytes මගින් දක්වා ඇත්තේ එම object එකෙහි පළල හා උස වේ. මෙම අගයන් පික්සල්(px) මගින් දක්වා ඇත. මීලග 4 bytes මගින් පෙන්වනු ලබන්නේ Object එකෙහි ID එක වේ. මීලග‍ට ඇති 2 bytes මගින් 0xFFFF පෙන්නුම් කර ඇත්නම් එමගින් කියවෙනුයේ ඉන් පසුව ඇති 2 bytes මගින් Object class එකට අදාල අංකය දක්වා ඇති බවය. එසේ නොමැති නම් පසුව ඇත්තේ එම Object එකෙහි නම වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/S5ilvu1uqAI/AAAAAAAAAI0/2UkG0TjZkW0/s1600-h/Untitled-86.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 86px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/S5ilvu1uqAI/AAAAAAAAAI0/2UkG0TjZkW0/s400/Untitled-86.jpg" alt="" id="BLOGGER_PHOTO_ID_5447285988750436354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/S5imkJcjMII/AAAAAAAAAI8/nZrCueHA3K8/s1600-h/Untitled-87.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 87px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/S5imkJcjMII/AAAAAAAAAI8/nZrCueHA3K8/s400/Untitled-87.jpg" alt="" id="BLOGGER_PHOTO_ID_5447286889245782146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Object class වලට අදාල අංක පහත ආකාර වේ.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100"&gt;0x0080&lt;/td&gt;&lt;td&gt;BUTTON&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0081&lt;/td&gt;&lt;td&gt;TEXT BOX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0082&lt;/td&gt;&lt;td&gt;STATIC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0083&lt;/td&gt;&lt;td&gt;LIST BOX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0084&lt;/td&gt;&lt;td&gt;SCROLLBAR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0085&lt;/td&gt;&lt;td&gt;COMBO BOX&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;වෙනත් අංකයක් නම් එහි Object class එක ලෙස එම අංකයම යොදා ගනී.&lt;br /&gt;&lt;br /&gt;මීලග‍ට ඇති 2 bytes මගින් 0xFFFF නිරෑපනය කර ඇත්නම් එමගින් කියවනුයේ මීලගට ඇති 2 bytes මගින් අදාල Object එක හා සම්බන්ධ කර ඇති resource එකක ID එකක් වේ.&lt;br /&gt;&lt;br /&gt;උදා:- Object එක Icon එකක් යැයි සිතන්න එවිට එයට යෙදිය යුතු Icon එකෙහි ID එක මෙහි දක්වා ඇත.&lt;br /&gt;එසේ නොමැති නම් මෙහි සදහන් වනුයේ text එකකි. එය Object එකට අදාල caption එකක් විය හැක.&lt;br /&gt;&lt;br /&gt;මෙතනින් RT_DIALOG ගැන ලියල ඉවරයි. ලබන සතියේ ලියන්නේ RT_STRING ගැනයි.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-7736277937597442526?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/7736277937597442526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format-part-9.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7736277937597442526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7736277937597442526'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2010/03/win32-portable-executable-format-part-9.html' title='සිංහලෙන් win32 Portable Executable format - part 9'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-7643378898376035564</id><published>2010-01-19T16:44:00.036+05:30</published><updated>2010-01-20T12:55:35.498+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 8</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;පසුගිය කලාපයේ Resource data වර්ග 3 ක් පිළිබදව විස්තර කරන ලදී. මෙවර තවත් resource data වර්ග කීපයක් ගැන විස්තර කිරීමට බලාපොරොත්තු වෙමි.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;RT_DIALOG  (0x00000005)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙහි ඇත්තේ PE එකක අපට දක්නට ඇති dialogs වේ. එනම් අප forms ලෙස හදුන්වන්නේද මේවාය. මෙම dialog එකක් තුල තවත් objects තිබිය හැක. එනම් buttons, check boxes, radio buttons ආදිය වේ. පලමුව dialog එකක structure එක හදුනා ගැනීම සිදු කරමු.&lt;br /&gt;&lt;br /&gt;dialog වර්ග 2 ක් තිබේ. එනම් Extended Styles(ExStyles) ඇති හා නැති ඒවා ලෙසය.&lt;br /&gt;&lt;br /&gt;මෙහි resource data හි පලමු 8 bytes 0x00000000FFFF0001 ලෙස ඇත්නම් එහි ExStyles ඇත.&lt;br /&gt;&lt;br /&gt;මෙහි මීට පසුව ඇති පලමු 4 bytes මගින් ExStyles පෙන්නුම් කරයි. එම styles පහත ආකාරයට දැක්විය හැක.&lt;br /&gt;උදා:- Shell32.dll හි 1003 යන dialog එකෙහි ExStyle එක 0x00000000 ලෙස වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/S1atkzY70fI/AAAAAAAAAIc/BkhmDSkfzCk/s1600-h/Untitled-83.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 198px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/S1atkzY70fI/AAAAAAAAAIc/BkhmDSkfzCk/s400/Untitled-83.jpg" alt="" id="BLOGGER_PHOTO_ID_5428717248623399410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;STYLE NAME&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_NOACTIVATE&lt;/td&gt;&lt;td&gt;v=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_LAYOUTRTL&lt;/td&gt;&lt;td&gt;x=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_NOINHERITLAYOUT&lt;/td&gt;&lt;td&gt;xii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_LAYERED&lt;/td&gt;&lt;td&gt;xiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_APPWINDOW&lt;/td&gt;&lt;td&gt;xiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_STATICEDGE&lt;/td&gt;&lt;td&gt;xv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_CONTROLPARENT&lt;/td&gt;&lt;td&gt;xvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_LEFTSCROLLBAR&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_RTLREADING&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_RIGHT&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_LEFT&lt;br /&gt;WS_EX_LTRREADING&lt;br /&gt;WS_EX_RIGHTSCROLLBAR&lt;/td&gt;&lt;td&gt;xviii=0 And xix=0 And xx=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_CONTEXTHELP&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_CLIENTEDGE&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_WINDOWEDGE&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_TOOLWINDOW&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_MDICHILAD&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_TRANSPARENT&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_ACCEPTFILES&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_TOPMOST&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_NOPARENTNOTIFY&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_DLGMODALFRAME&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_PALETTEWINDOW&lt;/td&gt;&lt;td&gt;xxiv=1 And&lt;br /&gt;xxv=1 And&lt;br /&gt;xxix=1&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_OVERLAPPEDWINDOW&lt;/td&gt;&lt;td&gt;xxiii=1 And&lt;br /&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;මෙහි මීලග 4 bytes මගින් Window Styles පෙන්නුම් කෙරේ. එම Styles පහත ආකාරයට පෙන්නුම් කල හැක.&lt;br /&gt;උදා:- Shell32.dll හි 1003 යන dialog එකෙහි Style එක 0x80C821CC ලෙස ඇත.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/S1auOFJy8dI/AAAAAAAAAIk/wSdJSIfWVM8/s1600-h/Untitled-84.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 198px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/S1auOFJy8dI/AAAAAAAAAIk/wSdJSIfWVM8/s400/Untitled-84.jpg" alt="" id="BLOGGER_PHOTO_ID_5428717957766377938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_POPUP&lt;/td&gt;&lt;td&gt;i=1 And&lt;br /&gt;ii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CHILD&lt;/td&gt;&lt;td&gt;i=0 And&lt;br /&gt;ii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_MINIMIZE&lt;/td&gt;&lt;td&gt;iii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_VISIBLE&lt;/td&gt;&lt;td&gt;iv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_DISABLED&lt;/td&gt;&lt;td&gt;v=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CLIPSIBLINGS&lt;/td&gt;&lt;td&gt;vi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CLIPCHILDREN&lt;/td&gt;&lt;td&gt;vii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_MAXIMIZE&lt;/td&gt;&lt;td&gt;viii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_BORDER&lt;/td&gt;&lt;td&gt;ix=1 And&lt;br /&gt;x=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_DLGFRAME&lt;/td&gt;&lt;td&gt;ix=1 And&lt;br /&gt;x=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CAPTION&lt;/td&gt;&lt;td&gt;ix=1 And&lt;br /&gt;x=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_VSCROLL&lt;/td&gt;&lt;td&gt;xi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_HSCROLL&lt;/td&gt;&lt;td&gt;xii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_SYSMENU&lt;/td&gt;&lt;td&gt;xiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_THICKFRAME&lt;/td&gt;&lt;td&gt;xiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_MINIMIZEBOX&lt;/td&gt;&lt;td&gt;xv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_MAXIMIZEBOX&lt;/td&gt;&lt;td&gt;xvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_CONTEXTHELP&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_CENTERMOUSE&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_CENTER&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_CONTROL&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_SETFOREGROUND&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_NOIDLEMSG&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_MODALFRAME&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_SETFONT&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_LOCALEDIT&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_NOFAILCREATE&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_FIXEDSYS&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_SYSMDAL&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DS_ABSALIGN&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_POPUPWINDOW&lt;/td&gt;&lt;td&gt;i=1 And&lt;br /&gt;ix=1 And&lt;br /&gt;x=1 And&lt;br /&gt;xiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_TILEDWINDOW&lt;/td&gt;&lt;td&gt;ix=1 And&lt;br /&gt;x=1 And&lt;br /&gt;xiii=1 And&lt;br /&gt;xiv=1 And&lt;br /&gt;xv=1 And&lt;br /&gt;xvi=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;මීලගට ඇති 2 bytes මගින් මෙම form එකෙහි ඇති objects ගණන දක්වා ඇත. මෙහි 0x0008 ලෙස ඇත. මීලග 2 bytes මගින් form එක පෙන්විය යුතු ස්ථානයේ X ඛන්ඩාංකය දක්වා ඇත. මෙහිදී 0x0000 වේ. මීලග 2 bytes මගින් Y ඛන්ඩාංකය දක්වා ඇත. මෙහිදී 0x0000 වේ. මීලග 2 bytes මගින් form එකෙහි width එකද ඊලග 2 bytes මගින් form එකෙහි height එකද දක්වා ඇත. මෙහිදී ඒවා 0x00E3 හා 0x005F ලෙස වේ. මීලග 2 bytes මගින් form එකට Main menu එකක් තිබේද යන වග පෙන්වයි. මෙහි අගය 0x0000 හෝ 0xFFFF නොවේ නම්, එහි ඇති අගය menu එකෙහි ID එක වේ. 0xFFFF ලෙස ඇත්නම් ඊලග 2 bytes මගින් menu ID එක පෙන්නුම් කරයි. මීලගට menu ID එක දැක්වූ ආකාරයටම class ID එක දක්වා ඇත. මෙහිදී බොහෝ විට 0x0000 ලෙස ඇත. මීලගට ඇත්තේ  form එකෙහි caption එක වේ. මීලග 2 bytes මගින් form එකෙහි font size එක දක්වා ඇත. මීලග 2 bytes මගින් font weight එක දක්වා ඇත. මීලග 2 bytes මගින් italic ද යන වග දක්වා ඇත. එය 0x0001 ලෙස ඇත්නම් italic ද 0x0000 ලෙස ඇත්නම් italic නොවන බවද පෙන්නුම් කරයි. මීලගට ඇත්තේ font name එක වේ. මෙහි weight හා italic යන්න ඇත්තේ ExStyles ඇති forms වල පමණක් වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/S1asXk7486I/AAAAAAAAAIM/bhyHBZ4SsSk/s1600-h/Untitled-57.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 238px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/S1asXk7486I/AAAAAAAAAIM/bhyHBZ4SsSk/s400/Untitled-57.jpg" alt="" id="BLOGGER_PHOTO_ID_5428715921893553058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;මීලගට ඇත්තේ form එකෙහි objects පිළිබද විස්තර වේ. ඒවා array එකක් ලෙස ඇත. පළමුව object classes හදුනා ගනිමු.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/S1aqICT8QlI/AAAAAAAAAIE/CUICYvUmsEA/s1600-h/Untitled-56.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 409px; height: 266px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/S1aqICT8QlI/AAAAAAAAAIE/CUICYvUmsEA/s400/Untitled-56.jpg" alt="" id="BLOGGER_PHOTO_ID_5428713455877898834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;ප්‍රධාන වශයෙන් classes වර්ග 6 ක් ඇත. එම classes හා ඒවාට අයත් objects පහත දක්වා ඇත.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/S1avbq5XnxI/AAAAAAAAAIs/m3bquiFR03I/s1600-h/Untitled-85.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 171px; height: 584px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/S1avbq5XnxI/AAAAAAAAAIs/m3bquiFR03I/s400/Untitled-85.jpg" alt="" id="BLOGGER_PHOTO_ID_5428719290747952914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;මෙම සෑම object එකකම data ආරම්භ වනුයේ file offset එක 4 හි ගුණාකාරයක් වන ස්ථානයකිනි. එනම් මෙහි alignment එක 4 වේ. එක් object එකක් ගත් විට,&lt;br /&gt;&lt;br /&gt;මෙහි පළමු 4 bytes මගින් ExStyles පෙන්නුම් කරයි. මෙය ExStyles ඇති forms වල පමණක් ඇත. ExStyles පහත ආකාර වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/S1atHiUaNlI/AAAAAAAAAIU/g6Mir2lM-og/s1600-h/Untitled-82.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 205px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/S1atHiUaNlI/AAAAAAAAAIU/g6Mir2lM-og/s400/Untitled-82.jpg" alt="" id="BLOGGER_PHOTO_ID_5428716745824810578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_DLGMODALFRAME&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_CLIENTEDGE&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_EX_STATICEDGE&lt;/td&gt;&lt;td&gt;v=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;තවද object එකෙහි class එක අනුව ExStlyes ඇත. ඒවා පහත දක්වා ඇත.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SysListView32&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_GRIDLINES&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_SUBITEMIMAGES&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_CHECKBOXES&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_TRACKSELECT&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_HEADERRAGDROP&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_FULLROWSELECT&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_ONECLICKACTIVATE&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVS_EX_TWOCLICKACTIVATE&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SysTabControl32&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_EX_FLATSEPARATORS&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;TCS_EX_REGISTERDROP&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RichEdit20A&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_EX_NOCALLOLEINIT&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ComboBoxEx32&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBES_EX_NOEDITIMAGE&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBES_EX_NOEDITIMAGEINDENT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBES_EX_PATHWORDBREAKPRO&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBES_EX_NOSIZELIMIT&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CBES_EX_CASESENSITIVE&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;මීලග 4 bytes මගින් දක්වා ඇත්තේ Styles වේ. ඒවා පහත ආකාර වේ.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_TABSTOP&lt;/td&gt;&lt;td&gt;xvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_GROUP&lt;/td&gt;&lt;td&gt;xv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_HSCROLL&lt;/td&gt;&lt;td&gt;xii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_VSCROLL&lt;/td&gt;&lt;td&gt;xi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_BORDER&lt;/td&gt;&lt;td&gt;ix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CLIPSBLINGS&lt;/td&gt;&lt;td&gt;vi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_DISABLED&lt;/td&gt;&lt;td&gt;v=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_VISIBLE&lt;/td&gt;&lt;td&gt;iv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WS_CHILD&lt;/td&gt;&lt;td&gt;ii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;මෙහිදීද object class එක අනුව styles දක්වනු ලැබේ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;BUTTON&lt;/span&gt;&lt;br /&gt;අවසන් 4 bits හි අගය,&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;BS_PUSHBUTTON&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_DEEPUSHBUTTON&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_CHECKBOX&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_AUTOCHECKBOX&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_RADIOBUTTON&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_3STATE&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_AUTO3STATE&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_GROUPBOX&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_USERBUTTON&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_AUTORADIOBUTTON&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_OWNERDRAW&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_LEFTTEXT&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_ICON&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_BITMAP&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_LEFT&lt;/td&gt;&lt;td&gt;xxiv=1 And&lt;br /&gt;xxiii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_RIGHT&lt;/td&gt;&lt;td&gt;xxiv=0 And&lt;br /&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_CENTER&lt;/td&gt;&lt;td&gt;xxiv=1 And&lt;br /&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_TOP&lt;/td&gt;&lt;td&gt;xxiv=1 And&lt;br /&gt;xxiii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_BOTTOM&lt;/td&gt;&lt;td&gt;xxii=0 And&lt;br /&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_VCENTER&lt;/td&gt;&lt;td&gt;xxii=1 And&lt;br /&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_PUSHLIKE&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_MULTILINE&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_NTIFY&lt;/td&gt;&lt;td&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BS_FLAT&lt;/td&gt;&lt;td&gt;xvii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TEXT BOX&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_LEFT&lt;/td&gt;&lt;td&gt;xxxii=0 And&lt;br /&gt;xxxi=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_CENTER&lt;/td&gt;&lt;td&gt;xxxii=1 And&lt;br /&gt;xxxi=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_RIGHT&lt;/td&gt;&lt;td&gt;xxxii=1 And&lt;br /&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_MULTILINE&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_UPPERCASE&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_LOWERCASE&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_PASSWORD&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_AUTOVSCROLL&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_AUTOHSCROLL&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_NOHIDESEL&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_OEMCONVERT&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_READONLY&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_WANTRETURN&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ES_NUMBER&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;STATIC&lt;/span&gt;&lt;br /&gt;අවසන් 4 bits හි අගය,&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;SS_LEFT&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_CENTER&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_RIGHT&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_ICON&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_BLACKRECT&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_GRAYRECT&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_WHITERECT&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_BLACKFRAME&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_GRAYFRAME&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_WHITEFRAME&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_USERITEM&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_SIMPLE&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_LEFTNOWORDWRAP&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_OWNERDRAW&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_BITMAP&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_ENHMETAFILE&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_NOPREFIX&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_REALSIZEIMAGE&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_RIGHTIMAGE&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_CENTERIMAGE&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_NOTIFY&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_WORDELLIPSIS&lt;/td&gt;&lt;td&gt;xvii=1 And&lt;br /&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_PATHELLIPSIS&lt;/td&gt;&lt;td&gt;xvii=1 And&lt;br /&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_ENDELLIPSIS&lt;/td&gt;&lt;td&gt;xvii=0 And&lt;br /&gt;xviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SS_SUNKEN&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;LIST BOX&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_NODATA&lt;/td&gt;&lt;td&gt;xix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_DISABLENOSCROLL&lt;/td&gt;&lt;td&gt;xx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_EXTENDEDSEL&lt;/td&gt;&lt;td&gt;xxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_WANTKEYBOARDINPUT&lt;/td&gt;&lt;td&gt;xxii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_MULTICOLUMN&lt;/td&gt;&lt;td&gt;xxiii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_NOINTEGRALHEIGHT&lt;/td&gt;&lt;td&gt;xxiv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_USETABSTOPS&lt;/td&gt;&lt;td&gt;xxv=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_HASSTRINGS&lt;/td&gt;&lt;td&gt;xxvi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_OWNERDRAWVARIABLE&lt;/td&gt;&lt;td&gt;xxvii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_OWNERDRAWFIXED&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_MULTIPLESEL&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_NOREDRAW&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_SORT&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LBS_NOTIFY&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;SCROLLBAR&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;&lt;span style="font-family:times new roman;"&gt;STYLE NAME&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;"&gt;BIT #&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_SIZEGRIP&lt;/td&gt;&lt;td&gt;xxviii=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_SIZEBOX&lt;/td&gt;&lt;td&gt;xxix=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_BOTTOMALIGN&lt;/td&gt;&lt;td&gt;xxx=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_RIGHTALIGN&lt;br /&gt;SBS_SIZEBOXBOTTOMRIGHTALIGN&lt;br /&gt;SBS_TOPALIGN&lt;br /&gt;SBS_LEFTALIGN&lt;br /&gt;SBS_SIZEBOXTOPLEFTALIGN&lt;/td&gt;&lt;td&gt;xxxi=1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_HORZ&lt;/td&gt;&lt;td&gt;xxxii=0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SBS_VERT&lt;/td&gt;&lt;td&gt;xxxii=1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;අදට ලියල ඉවරයි. මේ කොටසේ තව ලියන්න තියෙනවා. මීලග කොටසින් ඒ ටික ලියනවා.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-7643378898376035564?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/7643378898376035564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2010/01/win32-portable-executable-format-part-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7643378898376035564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7643378898376035564'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2010/01/win32-portable-executable-format-part-8.html' title='සිංහලෙන් win32 Portable Executable format - part 8'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-351001206519179033</id><published>2009-12-07T13:40:00.031+05:30</published><updated>2009-12-07T14:49:58.703+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 7</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;හුග කාලෙකට පස්සෙ සතියක නිවාඩුවක් ලැබුන. ඒ හින්ද ආයෙමත් blog එක ලියන්න වෙලාවක් වෙන් කර ගන්න පුළුවන් කමක් ලැබුන. පසුගිය කොටස් වල ලිව්වෙ resource data ලබා ගන්න ආකාරය, මේ ‍කොටසේ සිට ලියන්නෙ එම resource data තිබෙන format එක ගැනයි.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Resource Data&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම කොටසෙහි ඇත්තේ Resource Data වේ. ඒවා ගිය වර කලාපයේ දක්වන ලද Resource types 14 ට හෝ Custom resource එකක් විය හැක. එහි මෙම Resource Data තිබෙන ස්ථානය පිළිබද විස්තරයක් කර ඇත. මෙම එක් එක් Resource Data වලින් data ලබා ගන්නා ආකාරය පහත දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RT_CURSOR (0x00000001)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ PE සදහා යොදා ගන්නා Cursors වේ. මෙහි cursor එකෙහි සම්පූර්ණ data ප්‍රමාණයම නොමැත. මෙහි ඇති data මගින් අප cursor එක නිර්මානය කර ගත යුතුය. මෙය සිදු කිරීමට නම් අප cursor data format එක ගැන දැනගෙන සිටිය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එක් cursor file එකක් තුල images කීපයක් තිබිය හැක. එසේ තිබෙන්නේ වෙනස් bit depths හා වෙනස් dimentions සහිත එකම image එක වේ. නමුත් මෙහිදී ඇති cursor එකක තිබෙන්නේ තනි image එකක් පමණි. RT_CURSORGROUP යටතේ මෙම තනි cursor, group වන ආකාරය සදහන්ව ඇත. අපට අවශ්‍ය පරිදි එක් image එකක් සහිත තනි cursor file එකක් හෝ image කීපයක් එක් කර සාදා ගන්නා තනි cursor file එකක් වුවද ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Cursor File Format (.cur)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි පළමු 6 bytes සම්පූර්ණ cursor එකටම අදාල වේ. පළමු බයිට 4, 0x00000200 ලෙස වේ. ඊලග 2 bytes මගින් cursor images ගනන දක්වා ඇත. ඉන් පසු එක් image එකක් සදහා 16 bytes බැගින් වන headers තිබේ. එම header එකක පළමු 2 bytes මගින් dimentions දක්වා ඇත‍. මීලග 2 bytes මගින් Bit depth දක්වා තිබුනද 0x0000 යන අගයේද තිබිය හැක. එය 0x0000 ලෙස ඇත්නම් True color වේ. එම අගය ලබා ගත යුත්තේ RT_CURSORGROUP යන ස්ථානයෙන් වේ. මීලග 2 bytes මගින් click point එකෙහි x කණ්ඩාංකය දක්වා ඇත. එලෙසම ඊලග 2 bytes මගින් y කණ්ඩාංක දක්වා ඇත. මීලග 4 bytes මගින් cursor data හි විශාලත්වය දක්වා ඇත. මීලග 4 bytes මගින් cursor එකෙහි data ආරම්හ වන ස්ථානය headers හි ආරම්භක ස්ථානයට සාපේක්ෂව දක්වා ඇත. ඉන් පසුව cursor data පිහිටා ඇත. එහි පිහිටීම පහත රෑප සටහනේ දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/Sxy8z6TV5DI/AAAAAAAAAGA/bGO57iSP9ss/s1600-h/Untitled-40.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 428px; height: 419px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/Sxy8z6TV5DI/AAAAAAAAAGA/bGO57iSP9ss/s400/Untitled-40.jpg" alt="" id="BLOGGER_PHOTO_ID_5412408452202226738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;cursor data වෙත ගිය විට ඇත්තේ එම cursor එකෙහි x හා y කණ්ඩාංක හා cursor data පමණි. මෙහි dimentions, cursor data තුලින් ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RT_BITMAP (0x00000002)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ PE එක සදහා යොදා ගන්නා pictures වේ. ඒවා .bmp ආකාරයෙන් තිබේ. මෙහිද සම්පූර්ණ picture එක දක්නට නොලැබේ. එය අප picture data තුලින් නිර්මාණය කර ගත යුතු වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Bitmap Image File Format (.bmp)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම format එකෙහි පළමු 2 bytes 0x424D ලෙස වේ. මීලග 4 bytes මගින් image data හි විශාලත්වය දක්වා ඇත. මීලග 4 bytes 0x00000000 ලෙස තබන්න. මීලග 4 bytes, bit depth මත තීරනය වේ. නිල් පාටින් දක්වා ඇති ස්ථානයේ ඇත්තේ 0x00000000 නම්, රතු පාටින් දක්වා ඇති ස්ථානයේ අගය 0x0004 වන විට 0x00000076 ලෙසද, 0x0008 වන විට 0x00000436 ලෙසද, 0x0018 හෝ 0x0020 වන විට 0x00000036 ලෙසද විය යුතුය. නිල් පාටින් ඇති ස්ථානයේ වෙනත් අගයක් ඇත්නම් එම අගය 0x04 න් ගුණ කර 0x36 ක් එකතු කර ලිවිය යුතුය. ඉන් පසුව image data තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/Sxy9a478vPI/AAAAAAAAAGI/BkfZRvFZyRQ/s1600-h/Untitled-41.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 258px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/Sxy9a478vPI/AAAAAAAAAGI/BkfZRvFZyRQ/s400/Untitled-41.jpg" alt="" id="BLOGGER_PHOTO_ID_5412409121850572018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RT_ICON (0x00000003)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ PE එක සදහා භාවිතා කරන icons වේ. මෙයට ඇත්තේ cursor format එකට සමාන format එකකි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Icon File Format (.ico)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එහි පළමු 4 bytes, 0x00000100 ලෙස යොදන්න. ඊලග 2 bytes මගින් icon images ගනන දක්වා ඇත. header එකක පළමු 2 bytes මගින් dimentions දක්වා ඇත. ඊලග 2 bytes මගින් bit depth එක දක්වා ඇත. එය 0x0000 ලෙස ඇත්නම් True color වේ. එම අගය ලබා ගත යුත්තේ RT_ICONGROUP යන ස්ථානයෙන් වේ. මීලග 4 bytes සදහා 0x00000000 යොදන්න. මීලග 4 bytes මගින් icon data හි විශාලත්වය දක්වා ඇත. මීලග 4 bytes මගින් icon එකෙහි data ආරම්හ වන ස්ථානය දක්වා ඇත. ඉන් පසුව icon image එකට අදාල data තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/Sxy-KGUWCqI/AAAAAAAAAGQ/2Za4D9RNk7A/s1600-h/Untitled-42.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 289px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/Sxy-KGUWCqI/AAAAAAAAAGQ/2Za4D9RNk7A/s400/Untitled-42.jpg" alt="" id="BLOGGER_PHOTO_ID_5412409932896406178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;group කරන ලද icon එකෙහි පිහිටීමද මෙහි දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/Sxy-Xp-fwuI/AAAAAAAAAGY/Kn0AO2XNzkQ/s1600-h/Untitled-43.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 205px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/Sxy-Xp-fwuI/AAAAAAAAAGY/Kn0AO2XNzkQ/s400/Untitled-43.jpg" alt="" id="BLOGGER_PHOTO_ID_5412410165806744290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RT_MENU (0x00000004)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි තිබෙන්නේ PE එකෙහි ඇති Menus වේ. මෙහි menu ආකාර දෙකකින් තිබේ. මෙහි පළමු byte එක 0x00 ලෙස ඇත්නම් එක් ආකාරයක්ද, 0x01 ලෙස ඇත්නම් තවත් ආකාරයක්ද වේ. එය පහත විස්තර කර ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;පළමු byte එක 0x00 ලෙස ඇත්නම්,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පළමු 4 bytes අත් හරින්න. පසුව ඇත්තේ menu items වේ. එක් menu item එකක් ගත් විට&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එහි පළමු 2 bytes මගින් පෙන්නුම් කරනුයේ attributes වේ. එය bit ආකාරයෙන් ගත් විට එහි 9 වැනි bit එක 1 ලෙස සටහන්ව ඇත්නම් එම menu item එක එම munu level එකෙහි අවසන් munu item එක වේ. එසේම 12 වැනි bit එක 1 ලෙස ඇත්නම් එම menu item එකෙන් sub menu එකක් ආරම්භ වේ. මෙම 2 bytes 0x0000 ලෙස ඇත්නම් එය ඉහත ආකාර දෙකට අයත් නොවන menu item එකක් වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;දෙවන 2 bytes මගින් menu item ID එක දැක්වේ. මෙම ආකාරයේ menu වල sub menu එකක් ආරම්භ වන items (popup items) commands ලබා දීම සදහා භාවිතයට නොගනී. එම නිසා එකම item ID එක වුවද තිබිය හැක.  මීලගට ඇත්තේ menu text එක වේ. එය 2 bytes බැගින් 0x0000 හමු වන තෙක් කියවිය යුතුය. menu text එක NULL අගයක් නම් එමගින් කියවනුයේ එය separator එකක් බවය.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එක් menu item හි සැකසුම පහත ආකාර වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/Sxy_D7CUbOI/AAAAAAAAAGg/q7wUmooIQG8/s1600-h/Untitled-44.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 245px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/Sxy_D7CUbOI/AAAAAAAAAGg/q7wUmooIQG8/s400/Untitled-44.jpg" alt="" id="BLOGGER_PHOTO_ID_5412410926300425442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි පළමු item එකෙහි පළමු 2 bytes හි 12 වන bit එක 1 බැවින් එමගින් sub menu එකක් ආරම්භ වේ. එම නිසා Properties යන item එක Printer යන item එකෙහි sub menu එකක් වේ. Close යන item එකෙහි පළමු 2 bytes හි 9 වැනි bit එක 1 ලෙස ඇති බැවින් එම ස්ථානයෙන් sub menu එක අවසන් වේ. එම නිසා Document යන්න Printer යන item එක ඇති level එකෙහිම ඇති item එකක් වේ. Help යන item එකෙහි පළමු 2 bytes හි 9 වැනි bit එක 1 බැවින් එම ස්ථානයෙන් menu එක අවසන් වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;පළමු byte එක 0x01 ලෙස ඇත්නම්,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පළමු 8 bytes අත් හරින්න. ඒවායින් කෙරෙනුයේ menu එකෙහි වර්ගය හදුනා ගැනීමයි. ඉන් පසුව ඇත්තේ menu items වේ. මෙම සෑම menu item එකක්ම ආරම්භ වනුයේ file offset එක 4 හි ගුණාකාරයක් වන ස්ථානයකිනි. එනම් මෙම කොටසෙහි file alignment එක 4 ක් වේ. මෙම එක් menu item එකක් ගත් විට&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එහි පළමු 8 bytes මගින් properties පෙන්නුම් කරයි. properties පහත ආකාර විය හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_STRING&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි අඩංගු වන්නේ string එකක් බව කියවේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/Sxy_wB_5oUI/AAAAAAAAAGo/dfWAYHPmXZA/s1600-h/Untitled-45.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 195px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/Sxy_wB_5oUI/AAAAAAAAAGo/dfWAYHPmXZA/s400/Untitled-45.jpg" alt="" id="BLOGGER_PHOTO_ID_5412411684083573058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_SEPARATOR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම 8 bytes හි 7 වන byte එක 0x08 ලෙස ඇත්නම් මෙය separator එකක් බව කියවේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzAFUfZwII/AAAAAAAAAGw/IiHqTVyzsqU/s1600-h/Untitled-46.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 195px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzAFUfZwII/AAAAAAAAAGw/IiHqTVyzsqU/s400/Untitled-46.jpg" alt="" id="BLOGGER_PHOTO_ID_5412412049824792706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_RADIOCHECK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 7 වන byte එක 0x02 ලෙස ඇත්නම් menu item කිහිපයක් අතුරින් එක් item එකක් පමණක් තෝරා ගත හැකි සේ සැකසේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SxzAVNP53aI/AAAAAAAAAG4/aQLB-YSnwZI/s1600-h/Untitled-47.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 253px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SxzAVNP53aI/AAAAAAAAAG4/aQLB-YSnwZI/s400/Untitled-47.jpg" alt="" id="BLOGGER_PHOTO_ID_5412412322758647202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_RIGHTORDER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 7 වන byte එක 0x20 ලෙස ඇත්නම් එම ස්ථානයේ සි‍ට එකම level එකෙහි ඉදිරියට ඇති menu items දකුණු කෙලවරේ සිට සැකසේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzAhyv1f8I/AAAAAAAAAHA/46smhiQOi5A/s1600-h/Untitled-48.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 305px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzAhyv1f8I/AAAAAAAAAHA/46smhiQOi5A/s400/Untitled-48.jpg" alt="" id="BLOGGER_PHOTO_ID_5412412538983120834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_RIGHTJUSTIFY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 7 වන byte එක 0x40 ලෙස ඇත්නම් menu bar එකෙහි එම ස්ථානයේ සි‍ට ඉදිරියට ඇති menu items දකුණු කෙලවරේ සිට සැකසේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzAx0-zNmI/AAAAAAAAAHI/dPV3NBddrHs/s1600-h/Untitled-49.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 145px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzAx0-zNmI/AAAAAAAAAHI/dPV3NBddrHs/s400/Untitled-49.jpg" alt="" id="BLOGGER_PHOTO_ID_5412412814460663394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_MENUBARBREAK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 8 වන byte එක 0x20 ලෙස ඇත්නම් menu bar එක දෙකකට වෙන් වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SxzBCnSL6kI/AAAAAAAAAHQ/PUixA7x8DRQ/s1600-h/Untitled-50.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 196px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SxzBCnSL6kI/AAAAAAAAAHQ/PUixA7x8DRQ/s400/Untitled-50.jpg" alt="" id="BLOGGER_PHOTO_ID_5412413102841653826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFT_MENUBREAK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 8 වන byte එක 0x40 ලෙස ඇත්නම් menu එක දෙකකට වෙන් වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzBY1zRQWI/AAAAAAAAAHY/braKn4Ad6AQ/s1600-h/Untitled-51.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 231px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzBY1zRQWI/AAAAAAAAAHY/braKn4Ad6AQ/s400/Untitled-51.jpg" alt="" id="BLOGGER_PHOTO_ID_5412413484695634274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFS_DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3 වන byte එක 0x10 ලෙස ඇත්නම් select වී තිබිය යුතු menu item එක දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzBnG8om8I/AAAAAAAAAHg/s6iVmr6YKN0/s1600-h/Untitled-52.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 218px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzBnG8om8I/AAAAAAAAAHg/s6iVmr6YKN0/s400/Untitled-52.jpg" alt="" id="BLOGGER_PHOTO_ID_5412413729816484802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFS_CHECKED&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;4 වන byte එක 0x08 ලෙස ඇත්නම් මෙහි checked = true ලෙස සැකසේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzB6R6_AmI/AAAAAAAAAHo/YdwCBTNvH_8/s1600-h/Untitled-53.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 258px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzB6R6_AmI/AAAAAAAAAHo/YdwCBTNvH_8/s400/Untitled-53.jpg" alt="" id="BLOGGER_PHOTO_ID_5412414059179868770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFS_ENABLED&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් menu item එක enable බව කියවේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;MFS_GRAYED&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;4 වන byte එක 0x03 ලෙස ඇත්නම් එම menu item එක disable බව කියවේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzCfvgWamI/AAAAAAAAAHw/6nnNh5s5TBI/s1600-h/Untitled-54.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 228px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SxzCfvgWamI/AAAAAAAAAHw/6nnNh5s5TBI/s400/Untitled-54.jpg" alt="" id="BLOGGER_PHOTO_ID_5412414702776380002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;properties වලින් පසුව ඇති 4 bytes මගින් menu item ID එක දැක්වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ඉන් පසු ඇති 2 bytes මගින් attributes දක්වා ඇත. මෙය bit ආකාරයෙන් ගත් විට 9 වැනි bit එක 1 ලෙස ඇත්නම් එම menu item එක එම level එකෙහි අවසන් menu item එක වේ. එසේම 16 වන bit එක 1 ලෙස ඇත්නම් එම ස්ථානයෙන් sub menu එකක් ආරම්භ වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ඉන් පසුව ඇත්තේ menu item text එක වේ. එය 2 bytes බැගින් 0x0000 හමු වන තෙක් කියවිය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;අදාල menu item එක sub menu එකක ආරම්භක ස්ථානයක් නම් menu text එකට පසුව bytes 4 ක් 0x00000000 ලෙස තැබිය යුතුය. ඉන් පසුව file alignment එකට අදාල bytes ප්‍රමානය 0x00 ලෙස තැබිය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzC7mM4h9I/AAAAAAAAAH4/gQaHNz_WotE/s1600-h/Untitled-55.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 236px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SxzC7mM4h9I/AAAAAAAAAH4/gQaHNz_WotE/s400/Untitled-55.jpg" alt="" id="BLOGGER_PHOTO_ID_5412415181315147730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;අදට ලියන එක මෙතනින් නවත්වනවා. ආයෙමත් කොටසක් ලගදීම ලියනවා.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-351001206519179033?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/351001206519179033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/12/win32-portable-executable-format-part-7.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/351001206519179033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/351001206519179033'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/12/win32-portable-executable-format-part-7.html' title='සිංහලෙන් win32 Portable Executable format - part 7'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-8693744389134823380</id><published>2009-10-26T16:58:00.082+05:30</published><updated>2009-11-04T09:57:06.929+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 6</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;ගිය සතියෙ ලිව්වෙ Import table එක ගැනයි. මේ සතියෙ ලියන්නෙ Resource table  එක ගැනයි. මේක ප්‍රමානයෙන් විශාල table එකක්. ඒක හින්ද කොටස් කීපයකට ලියන්න වෙනවා.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-size:130%;" &gt;&lt;u&gt;Resources (IMAGE_RESOURCE_DIRECTORY)&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ dialog boxes, menus, icons වැනි resources වේ. මෙම කොටස පහසුවෙන් වෙනස් කිරීමක් කල හැක. මෙහි GUI සම්බන්ධ කොටස් ඇත. මෙය .rsrc යන section එක තුල තිබේ. මෙම section එක ආරම්භක ස්ථානය සෙවීමට වෙනත් sections ආරම්භ වන ස්ථාන සොයන ආකාරයට කල නොහැක. මෙය ආරම්භ වනුයේ IMAGE_SECTION_HEADER හි .rsrc යටතේ ඇති PointerToRowData හි ඇති offset එකෙන් වේ. මෙම section එකෙහි IMAGE_SCN_CNT_INITIALIZED_DATA හා IMAGE_SCN_MEM_READ යන්න 1 ලෙස සටහන්ව තිබිය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://www.7-zip.org/" target="_blank"&gt;7-Zip File Manager&lt;/a&gt; මගින් Excutable එකක Sections බලා ගත හැක. එක් එක් Sections හි Properties ලබා ගැනීමෙන් ඒවායේ අමතර විස්තරද ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ_AZzglII/AAAAAAAAAFo/vK9dcJi-l2I/s1600-h/Untitled-37.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 410px; height: 167px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ_AZzglII/AAAAAAAAAFo/vK9dcJi-l2I/s400/Untitled-37.jpg" alt="" id="BLOGGER_PHOTO_ID_5397140848353776770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි resources තිබෙන ආකාරය tree එකක් ආකාරයෙන් දැක්විය හැක.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ0Z2hwuJI/AAAAAAAAAEg/L4DZ_-wlMcI/s1600-h/Untitled-29.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 409px; height: 198px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ0Z2hwuJI/AAAAAAAAAEg/L4DZ_-wlMcI/s400/Untitled-29.jpg" alt="" id="BLOGGER_PHOTO_ID_5397129190932789394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;එහි root එක RT_CURSOR, RT_BITMAP, RT_ICON වැනි කොටස් වලට වෙන් කල හැක. එක් කොටසක resources කීපයක් තිබිය හැක. පසුව එම resources විශේෂිත අංකයකින් හෝ නමකින් හදුන්වයි. එම resouces, languages එකකින් හෝ කීපයකින් තිබිය හැක. language කීපයකින් තිබෙන resources, win 95 තුලදී ක්‍රියාත්මක නොවේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;resources පහත ආකාරයෙන් අංක කර ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0x00000001&lt;/td&gt;&lt;td&gt;RT_CURSOR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000002&lt;/td&gt;&lt;td&gt;RT_BITMAP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000003&lt;/td&gt;&lt;td&gt;RT_ICON&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000004&lt;/td&gt;&lt;td&gt;RT_MENU&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000005&lt;/td&gt;&lt;td&gt;RT_DIALOG&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000006&lt;/td&gt;&lt;td&gt;RT_STRING&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000007&lt;/td&gt;&lt;td&gt;RT_FONTDIR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000008&lt;/td&gt;&lt;td&gt;RT_FONT&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000009&lt;/td&gt;&lt;td&gt;RT_ACCELERATOR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000000A&lt;/td&gt;&lt;td&gt;RT_RCDATA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000000B&lt;/td&gt;&lt;td&gt;RT_MESSAGETABLE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000000C&lt;/td&gt;&lt;td&gt;RT_CURSORGROUP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000000E&lt;/td&gt;&lt;td&gt;RT_ICONGROUP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000010&lt;/td&gt;&lt;td&gt;RT_VERSIONINFO&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;වෙනත් අංකයක් ඇත්නම් එය අංකයේ නමින්ම හදුන්වයි. ඒවා custom resources වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පහත රූප සටහනෙහි දක්වා ඇත්තේ shell32.dll හි resources වේ. මෙහි AVI, REGINST, TYPELIB, UIFILE, 23, 24 ලෙස ඇත්තේ custom resources වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZzs2iMa8I/AAAAAAAAAEY/wNzxGap4BpY/s1600-h/Untitled-28.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 206px; height: 428px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZzs2iMa8I/AAAAAAAAAEY/wNzxGap4BpY/s400/Untitled-28.jpg" alt="" id="BLOGGER_PHOTO_ID_5397128417840491458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි 1033 ලෙස ඇත්තේ languages ID එක වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;1033 = 0x00000409 = en-us, English (United States)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;languages පහත ආකාරයෙන් අංක කර ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0x00000436&lt;/td&gt;&lt;td&gt;af&lt;/td&gt;&lt;td&gt;Afrikaans&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041C&lt;/td&gt;&lt;td&gt;sq&lt;/td&gt;&lt;td&gt;Albanian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000001&lt;/td&gt;&lt;td&gt;ar&lt;/td&gt;&lt;td&gt;Arabic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000401&lt;/td&gt;&lt;td&gt;ar-sa&lt;/td&gt;&lt;td&gt;Arabic (Saudi Arabia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000801&lt;/td&gt;&lt;td&gt;ar-iq&lt;/td&gt;&lt;td&gt;Arabic (Iraq)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C01&lt;/td&gt;&lt;td&gt;ar-eg&lt;/td&gt;&lt;td&gt;Arabic (Egypt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001001&lt;/td&gt;&lt;td&gt;ar-ly&lt;/td&gt;&lt;td&gt;Arabic (Libya)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001401&lt;/td&gt;&lt;td&gt;ar-dz&lt;/td&gt;&lt;td&gt;Arabic (Algeria)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001801&lt;/td&gt;&lt;td&gt;ar-ma&lt;/td&gt;&lt;td&gt;Arabic (Morocco)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001C01&lt;/td&gt;&lt;td&gt;ar-tn&lt;/td&gt;&lt;td&gt;Arabic (Tunisia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002001&lt;/td&gt;&lt;td&gt;ar-om&lt;/td&gt;&lt;td&gt;Arabic (Oman)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002401&lt;/td&gt;&lt;td&gt;ar-ye&lt;/td&gt;&lt;td&gt;Arabic (Yemen)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002801&lt;/td&gt;&lt;td&gt;ar-sy&lt;/td&gt;&lt;td&gt;Arabic (Syria)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002C01&lt;/td&gt;&lt;td&gt;ar-jo&lt;/td&gt;&lt;td&gt;Arabic (Jordan)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00003001&lt;/td&gt;&lt;td&gt;ar-lb&lt;/td&gt;&lt;td&gt;Arabic (Lebanon)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00003401&lt;/td&gt;&lt;td&gt;ar-kw&lt;/td&gt;&lt;td&gt;Arabic (Kuwait)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00003801&lt;/td&gt;&lt;td&gt;ar-ae&lt;/td&gt;&lt;td&gt;Arabic (U.A.E.)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00003C01&lt;/td&gt;&lt;td&gt;ar-bh&lt;/td&gt;&lt;td&gt;Arabic (Bahrain)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00004001&lt;/td&gt;&lt;td&gt;ar-qa&lt;/td&gt;&lt;td&gt;Arabic (Qatar)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000042D&lt;/td&gt;&lt;td&gt;eu&lt;/td&gt;&lt;td&gt;Basque&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000402&lt;/td&gt;&lt;td&gt;bg&lt;/td&gt;&lt;td&gt;Bulgarian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000423&lt;/td&gt;&lt;td&gt;be&lt;/td&gt;&lt;td&gt;Belarusian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000403&lt;/td&gt;&lt;td&gt;ca&lt;/td&gt;&lt;td&gt;Catalan&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000004&lt;/td&gt;&lt;td&gt;zh&lt;/td&gt;&lt;td&gt;Chinese&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000404&lt;/td&gt;&lt;td&gt;zh-tw&lt;/td&gt;&lt;td&gt;Chinese (Taiwan)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000804&lt;/td&gt;&lt;td&gt;zh-cn&lt;/td&gt;&lt;td&gt;Chinese (China)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C04&lt;/td&gt;&lt;td&gt;zh-hk&lt;/td&gt;&lt;td&gt;Chinese (Hong Kong SAR)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001004&lt;/td&gt;&lt;td&gt;zh-sg&lt;/td&gt;&lt;td&gt;Chinese (Singapore)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041A&lt;/td&gt;&lt;td&gt;hr&lt;/td&gt;&lt;td&gt;Croatian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000405&lt;/td&gt;&lt;td&gt;cs&lt;/td&gt;&lt;td&gt;Czech&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000406&lt;/td&gt;&lt;td&gt;da&lt;/td&gt;&lt;td&gt;Danish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000413&lt;/td&gt;&lt;td&gt;nl&lt;/td&gt;&lt;td&gt;Dutch (Netherlands)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000813&lt;/td&gt;&lt;td&gt;nl-be&lt;/td&gt;&lt;td&gt;Dutch (Belgium)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000009&lt;/td&gt;&lt;td&gt;en&lt;/td&gt;&lt;td&gt;English&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000409&lt;/td&gt;&lt;td&gt;en-us&lt;/td&gt;&lt;td&gt;English (United States)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000809&lt;/td&gt;&lt;td&gt;en-gb&lt;/td&gt;&lt;td&gt;English (United Kingdom)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C09&lt;/td&gt;&lt;td&gt;en-au&lt;/td&gt;&lt;td&gt;English (Australia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001009&lt;/td&gt;&lt;td&gt;en-ca&lt;/td&gt;&lt;td&gt;English (Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001409&lt;/td&gt;&lt;td&gt;en-nz&lt;/td&gt;&lt;td&gt;English (New Zealand)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001809&lt;/td&gt;&lt;td&gt;en-ie&lt;/td&gt;&lt;td&gt;English (Ireland)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001C09&lt;/td&gt;&lt;td&gt;en-za&lt;/td&gt;&lt;td&gt;English (South Africa)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002009&lt;/td&gt;&lt;td&gt;en-jm&lt;/td&gt;&lt;td&gt;English (Jamaica)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002809&lt;/td&gt;&lt;td&gt;en-bz&lt;/td&gt;&lt;td&gt;English (Belize)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002C09&lt;/td&gt;&lt;td&gt;en-tt&lt;/td&gt;&lt;td&gt;English (Trinidad)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000425&lt;/td&gt;&lt;td&gt;et&lt;/td&gt;&lt;td&gt;Estonian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000438&lt;/td&gt;&lt;td&gt;fo&lt;/td&gt;&lt;td&gt;Faeroese&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000429&lt;/td&gt;&lt;td&gt;fa&lt;/td&gt;&lt;td&gt;Farsi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040B&lt;/td&gt;&lt;td&gt;fi&lt;/td&gt;&lt;td&gt;Finnish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040C&lt;/td&gt;&lt;td&gt;fr&lt;/td&gt;&lt;td&gt;French (France)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000080C&lt;/td&gt;&lt;td&gt;fr-be&lt;/td&gt;&lt;td&gt;French (Belgium)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C0C&lt;/td&gt;&lt;td&gt;fr-ca&lt;/td&gt;&lt;td&gt;French (Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000100C&lt;/td&gt;&lt;td&gt;fr-ch&lt;/td&gt;&lt;td&gt;French (Switzerland)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000140C&lt;/td&gt;&lt;td&gt;fr-lu&lt;/td&gt;&lt;td&gt;French (Luxembourg)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000043C&lt;/td&gt;&lt;td&gt;gd&lt;/td&gt;&lt;td&gt;Gaelic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000407&lt;/td&gt;&lt;td&gt;de&lt;/td&gt;&lt;td&gt;German (Germany)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000807&lt;/td&gt;&lt;td&gt;de-ch&lt;/td&gt;&lt;td&gt;German (Switzerland)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C07&lt;/td&gt;&lt;td&gt;de-at&lt;/td&gt;&lt;td&gt;German (Austria)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001007&lt;/td&gt;&lt;td&gt;de-lu&lt;/td&gt;&lt;td&gt;German (Luxembourg)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001407&lt;/td&gt;&lt;td&gt;de-li&lt;/td&gt;&lt;td&gt;German (Liechtenstein)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000408&lt;/td&gt;&lt;td&gt;el&lt;/td&gt;&lt;td&gt;Greek&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040D&lt;/td&gt;&lt;td&gt;he&lt;/td&gt;&lt;td&gt;Hebrew&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000439&lt;/td&gt;&lt;td&gt;hi&lt;/td&gt;&lt;td&gt;Hindi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040E&lt;/td&gt;&lt;td&gt;hu&lt;/td&gt;&lt;td&gt;Hungarian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040F&lt;/td&gt;&lt;td&gt;is&lt;/td&gt;&lt;td&gt;Icelandic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000421&lt;/td&gt;&lt;td&gt;in&lt;/td&gt;&lt;td&gt;Indonesian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000410&lt;/td&gt;&lt;td&gt;it&lt;/td&gt;&lt;td&gt;Italian (Italy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000810&lt;/td&gt;&lt;td&gt;it-ch&lt;/td&gt;&lt;td&gt;Italian (Switzerland)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000411&lt;/td&gt;&lt;td&gt;ja&lt;/td&gt;&lt;td&gt;Japanese&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000412&lt;/td&gt;&lt;td&gt;ko&lt;/td&gt;&lt;td&gt;Korean&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000426&lt;/td&gt;&lt;td&gt;lv&lt;/td&gt;&lt;td&gt;Latvian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000427&lt;/td&gt;&lt;td&gt;lt&lt;/td&gt;&lt;td&gt;Lithuanian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000042F&lt;/td&gt;&lt;td&gt;mk&lt;/td&gt;&lt;td&gt;FYRO Macedonian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000043E&lt;/td&gt;&lt;td&gt;ms&lt;/td&gt;&lt;td&gt;Malay (Malaysia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000043A&lt;/td&gt;&lt;td&gt;mt&lt;/td&gt;&lt;td&gt;Maltese&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000414&lt;/td&gt;&lt;td&gt;no&lt;/td&gt;&lt;td&gt;Norwegian (Bokmal)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000814&lt;/td&gt;&lt;td&gt;no&lt;/td&gt;&lt;td&gt;Norwegian (Nynorsk)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000415&lt;/td&gt;&lt;td&gt;pl&lt;/td&gt;&lt;td&gt;Polish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000416&lt;/td&gt;&lt;td&gt;pt-br&lt;/td&gt;&lt;td&gt;Portuguese (Brazil)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000816&lt;/td&gt;&lt;td&gt;pt&lt;/td&gt;&lt;td&gt;Portuguese (Portugal)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000417&lt;/td&gt;&lt;td&gt;rm&lt;/td&gt;&lt;td&gt;Rhaeto-Romanic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000418&lt;/td&gt;&lt;td&gt;ro&lt;/td&gt;&lt;td&gt;Romanian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000818&lt;/td&gt;&lt;td&gt;ro-mo&lt;/td&gt;&lt;td&gt;Romanian (Moldova)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000419&lt;/td&gt;&lt;td&gt;ru&lt;/td&gt;&lt;td&gt;Russian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000819&lt;/td&gt;&lt;td&gt;ru-mo&lt;/td&gt;&lt;td&gt;Russian (Moldova)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C1A&lt;/td&gt;&lt;td&gt;sr&lt;/td&gt;&lt;td&gt;Serbian (Cyrillic)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000081A&lt;/td&gt;&lt;td&gt;sr&lt;/td&gt;&lt;td&gt;Serbian (Latin)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041B&lt;/td&gt;&lt;td&gt;sk&lt;/td&gt;&lt;td&gt;Slovak&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000424&lt;/td&gt;&lt;td&gt;sl&lt;/td&gt;&lt;td&gt;Slovenian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000042E&lt;/td&gt;&lt;td&gt;sb&lt;/td&gt;&lt;td&gt;Sorbian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000040A&lt;/td&gt;&lt;td&gt;es&lt;/td&gt;&lt;td&gt;Spanish (Traditional Sort)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000080A&lt;/td&gt;&lt;td&gt;es-mx&lt;/td&gt;&lt;td&gt;Spanish (Mexico)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000C0A&lt;/td&gt;&lt;td&gt;es&lt;/td&gt;&lt;td&gt;Spanish (International Sort)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000100A&lt;/td&gt;&lt;td&gt;es-gt&lt;/td&gt;&lt;td&gt;Spanish (Guatemala)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000140A&lt;/td&gt;&lt;td&gt;es-cr&lt;/td&gt;&lt;td&gt;Spanish (Costa Rica)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000180A&lt;/td&gt;&lt;td&gt;es-pa&lt;/td&gt;&lt;td&gt;Spanish (Panama)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00001C0A&lt;/td&gt;&lt;td&gt;es-do&lt;/td&gt;&lt;td&gt;Spanish (Dominican Republic)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000200A&lt;/td&gt;&lt;td&gt;es-ve&lt;/td&gt;&lt;td&gt;Spanish (Venezuela)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000240A&lt;/td&gt;&lt;td&gt;es-co&lt;/td&gt;&lt;td&gt;Spanish (Colombia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000280A&lt;/td&gt;&lt;td&gt;es-pe&lt;/td&gt;&lt;td&gt;Spanish (Peru)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00002C0A&lt;/td&gt;&lt;td&gt;es-ar&lt;/td&gt;&lt;td&gt;Spanish (Argentina)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000300A&lt;/td&gt;&lt;td&gt;es-ec&lt;/td&gt;&lt;td&gt;Spanish (Ecuador)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000340A&lt;/td&gt;&lt;td&gt;es-cl&lt;/td&gt;&lt;td&gt;Spanish (Chile)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000380A&lt;/td&gt;&lt;td&gt;es-uy&lt;/td&gt;&lt;td&gt;Spanish (Uruguay)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00003C0A&lt;/td&gt;&lt;td&gt;es-py&lt;/td&gt;&lt;td&gt;Spanish (Paraguay)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000400A&lt;/td&gt;&lt;td&gt;es-bo&lt;/td&gt;&lt;td&gt;Spanish (Bolivia)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000440A&lt;/td&gt;&lt;td&gt;es-sv&lt;/td&gt;&lt;td&gt;Spanish (El Salvador)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000480A&lt;/td&gt;&lt;td&gt;es-hn&lt;/td&gt;&lt;td&gt;Spanish (Honduras)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00004C0A&lt;/td&gt;&lt;td&gt;es-ni&lt;/td&gt;&lt;td&gt;Spanish (Nicaragua)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000500A&lt;/td&gt;&lt;td&gt;es-pr&lt;/td&gt;&lt;td&gt;Spanish (Puerto Rico)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000430&lt;/td&gt;&lt;td&gt;sx&lt;/td&gt;&lt;td&gt;Sutu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041D&lt;/td&gt;&lt;td&gt;sv&lt;/td&gt;&lt;td&gt;Swedish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000081D&lt;/td&gt;&lt;td&gt;sv-fi&lt;/td&gt;&lt;td&gt;Swedish (Finland)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041E&lt;/td&gt;&lt;td&gt;th&lt;/td&gt;&lt;td&gt;Thai&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000431&lt;/td&gt;&lt;td&gt;ts&lt;/td&gt;&lt;td&gt;Tsonga&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000432&lt;/td&gt;&lt;td&gt;tn&lt;/td&gt;&lt;td&gt;Tswana&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000041F&lt;/td&gt;&lt;td&gt;tr&lt;/td&gt;&lt;td&gt;Turkish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000422&lt;/td&gt;&lt;td&gt;uk&lt;/td&gt;&lt;td&gt;Ukrainian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000420&lt;/td&gt;&lt;td&gt;ur&lt;/td&gt;&lt;td&gt;Urdu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000042A&lt;/td&gt;&lt;td&gt;vi&lt;/td&gt;&lt;td&gt;Vietnamese&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000434&lt;/td&gt;&lt;td&gt;xh&lt;/td&gt;&lt;td&gt;Xhosa&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000043D&lt;/td&gt;&lt;td&gt;ji&lt;/td&gt;&lt;td&gt;Yiddish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x00000435&lt;/td&gt;&lt;td&gt;zu&lt;/td&gt;&lt;td&gt;Zulu&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;වෙනත් languages ID ද තිබිය හැක. පරිගනකයේ ඇති languages බලා ගැනීමට පහත command එක command prompt එකෙහි type කරන්න.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:arial;"&gt;reg query hklm\SOFTWARE\Classes\MIME\Database\Rfc1766 /s &gt;&gt; c:\langID.txt&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එවිට c:\ හි langID.txt නමින් file එකක් සෑදේ. එහි language ID සමග language name එක තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:arial;font-size:130%;"  &gt;&lt;u&gt;IMAGE_RESOURCE_DIRECTORY format&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය ප්‍රධාන කොටස් 5 කට වෙන් කල හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Resource Directory Tables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Resource Directory Entries&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Resource Directory Strings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Resource Data Description&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Resource Data&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Resource Directory Tables&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි විශාලත්වය 16 bytes වේ. මෙය කොටස් 6 කට වෙන් කෙරේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SuZ0wzCjI6I/AAAAAAAAAEo/ioZeop9JqdA/s1600-h/Untitled-30.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 411px; height: 141px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SuZ0wzCjI6I/AAAAAAAAAEo/ioZeop9JqdA/s400/Untitled-30.jpg" alt="" id="BLOGGER_PHOTO_ID_5397129585133560738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_RESOURCE_DIRECTORY {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Characteristics;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   TimeDateStamp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    MajorVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    MinorVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    NumberOfNamedEntries;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    NumberOfIdEntries;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Characteristics&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;භාවිතා නොවේ. 0x00000000 යන අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;TimeDateStamp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;resource table එක නිර්මාණය කල දිනය හා වේලාව දක්වා ඇත. මෙහි 0x00000000 යන අගයද තිබිය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;MajorVersion&lt;/span&gt; හා &lt;span style="font-weight: bold;"&gt;MinorVersion&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;resource table හි version එක ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;NumberOfNamedEntries&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;string මගින් හදුන්වා ඇති resource ගනන දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;NumberOfIdEntries‍&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;integer මගින් හදුන්වා ඇති resource ගනන දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි NumberOfNamedEntries+NumberOfIdEntries‍ මගින් මෙහි ඇති මුළු resources ගනන දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Resource Directory Entries&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය array එකක් ලෙස ගත හැක. එහි මුළු resources ගනනට සමාන කොටස් ප්‍රමාණයක් තිබේ. එක් කොටසක විශාලත්වය 8 bytes වේ. එහි එක් කොටසක් පහත ආකාරයට වෙන් කල හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ1RgmRDwI/AAAAAAAAAEw/8OEYCCStpzA/s1600-h/Untitled-31.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 409px; height: 271px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ1RgmRDwI/AAAAAAAAAEw/8OEYCCStpzA/s400/Untitled-31.jpg" alt="" id="BLOGGER_PHOTO_ID_5397130147118780162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ1-jJDqLI/AAAAAAAAAE4/9XhhZSbmy48/s1600-h/Untitled-32.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 409px; height: 127px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ1-jJDqLI/AAAAAAAAAE4/9XhhZSbmy48/s400/Untitled-32.jpg" alt="" id="BLOGGER_PHOTO_ID_5397130920895686834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_RESOURCE_DIRECTORY_ENTRY {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;union&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;struct&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt; NameOffset:31;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt; NameIsString:1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Name;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    Id;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;union&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   OffsetToData;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;struct&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   OffsetToDirectory:31;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   DataIsDirectory:1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;දෙවන 32 bits ප්‍රමාණය ගත් විට එහි පළමු bit එක 1 ලෙස ඇත්නම් ඉතිරි 31 bits ප්‍රමාණයෙන් දැක්වෙන්නේ data ඇති sub directory එකකට offset එකකි. එවිට පළමු 32 bits ප්‍රමාණයේ, එහි පළමු bit එක 1 ලෙස ඇත්නම් අනෙක් 31 bits මගින් දැක්වෙන්නේ resource type එකට අදාල Name එකෙහි offset එක වේ. පළමු bit එක 0 ලෙස ඇත්නම් අනෙක් 31 bits මගින් දැක්වෙන්නේ resource ID එක වේ. resource ID ඉහතින් දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ28lUhDEI/AAAAAAAAAFI/iAWj8GPW9r4/s1600-h/Untitled-34.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 411px; height: 356px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SuZ28lUhDEI/AAAAAAAAAFI/iAWj8GPW9r4/s400/Untitled-34.jpg" alt="" id="BLOGGER_PHOTO_ID_5397131986632510530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SuZ9Yifsv_I/AAAAAAAAAFY/SagFD-c6rGw/s1600-h/Untitled-35.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 409px; height: 332px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SuZ9Yifsv_I/AAAAAAAAAFY/SagFD-c6rGw/s400/Untitled-35.jpg" alt="" id="BLOGGER_PHOTO_ID_5397139063980212210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;සැ.යු. මෙහිදී file offset එක ගනනය කිරීමට section එකෙහි ආරම්භක offset එකට අදාල අගය එකතු කල යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා:- shell32.dll හි .rsrc section එකෙහි ආරම්භක offset එක 0x00205400 වේ. එහි පළමු resource type එකට අදාල මුල් 32 bits 0x8001A3F0 ලෙස ඇත. එවිට එහි resource type එකට අදාල Name එකෙහි offset එක&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x00205400 + 0x0001A3F0 = 0x0021F7F0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම names තිබෙන්නේ Resource Directory Strings යන කොටසෙහි වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි sub directory එකට ඇති offset එක හරහා ගිය වි‍ට, එය නැවතත් Resource Directory Tables හි ආකාරයේ structure එකකට පැමිණේ. මෙම sub directories වල Characteristics,TimeDateStamp, MajorVersion, MinorVersion යන ඒවා 0 යන අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;එසේම&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;දෙවන 32 bits ප්‍රමාණයේ එහි පළමු bit එක 0 ලෙස ඇත්නම් ඉතිරි ප්‍රමාණයෙන් දැක්වෙන්නේ data සදහා offset එකකට ඇති offset එකකි. එය පිහිටා ඇත්තේ Resource Data Description තුලය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SuZ-GrKmF5I/AAAAAAAAAFg/52bh-WpShD8/s1600-h/Untitled-36.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 409px; height: 333px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SuZ-GrKmF5I/AAAAAAAAAFg/52bh-WpShD8/s400/Untitled-36.jpg" alt="" id="BLOGGER_PHOTO_ID_5397139856581597074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;තවද මෙවිට පළමු 32 bits ප්‍රමාණයෙන් දැක්වෙන්නේ resource එකට අදාල language ID එක වේ. language IDs ඉහත දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Resource Directory Strings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ Unicode strings වේ. එය මෙලෙස හැදින්විය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_RESOURCE_DIR_STRING_U {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    Length;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;WCHAR&lt;/span&gt;   NameString[ 1 ];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ_jkmjoBI/AAAAAAAAAFw/aGVOZKVQgmA/s1600-h/Untitled-38.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 411px; height: 166px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SuZ_jkmjoBI/AAAAAAAAAFw/aGVOZKVQgmA/s400/Untitled-38.jpg" alt="" id="BLOGGER_PHOTO_ID_5397141452547661842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි string එක කියවීමේදී length එකට සමාන අකුරු ප්‍රමාණයක් කියවිය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:130%;"  &gt;Resource Data Description&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි data තිබෙන ස්ථාන සදහා offset එක, එහි විශාලත්වය වැනි දත්ත තිබේ. එය පහත ආකාරයට දැක්විය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_RESOURCE_DATA_ENTRY {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   OffsetToData;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Size;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   CodePage;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Reserved;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SuaATgODhJI/AAAAAAAAAF4/49DFvW0TtoI/s1600-h/Untitled-39.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 410px; height: 347px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SuaATgODhJI/AAAAAAAAAF4/49DFvW0TtoI/s400/Untitled-39.jpg" alt="" id="BLOGGER_PHOTO_ID_5397142276004873362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;OffsetToData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් data ඇති ස්ථානයේ offset එක ඇත.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් file offset එක ලබා ගැනීමට පහත ආකාරයට කල යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;file offset = data_offset - [.rsrc].VirtualAddress + [.rsrc].PointerToRowData&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා:- shell32.dll හි AVI sub directory හි resource ID එක 150 වන resource එකෙහි data_offset එක 0x00011870 වේ. .rsrc හි VirtualAddress එක 0x00219000 වේ. .rsrc හි PointerToRowData එක 0x00205400 වේ. එවිට එහි&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;‍file offset  = 0x003A6460 - 0x00219000 + 0x00205400&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt; = 0x00392860&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි කියවිය යුතු data හි විශාලත්වය දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;CodePage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;decode කිරීම් සදහා යොදා ගනී. බොහෝ අවස්ථාවල 0x00000000 යන අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Reserved&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x00000000 යන අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;අදට ලිව්ව ඇති. මීලග කොටසින් Resource directory එක ගැන වැඩි දුරටත් ලියනවා.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-8693744389134823380?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/8693744389134823380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/10/win32-portable-executable-format-part-6.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8693744389134823380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8693744389134823380'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/10/win32-portable-executable-format-part-6.html' title='සිංහලෙන් win32 Portable Executable format - part 6'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-5257551832800854729</id><published>2009-10-13T10:20:00.028+05:30</published><updated>2009-10-15T13:33:56.471+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 5</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;මුලින්ම පසුගිය කලාපයේ සිදු වූ අතපසු වීමක් නිවැරැදි කල යුතුයි. ගිය වර කලාපයේ DLL Name RVA සම්බන්ධ පින්තූර සටහන යෙදීමේදී අතපසු වීමක් සිදු වී ඇත. එය නිවැරැදි කිරීමක් සිදු කර ඇත.&lt;br /&gt;මේ සතියේ ලිවීමට ඇත්තේ Import table එක ගැනයි.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;&lt;br /&gt;Imported symbols&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම කොටස සෑම PE එකකම වාගේ දක්නට ඇත. මෙහි දැක්වෙනුයේ PE එක ක්‍රියාත්මක වීමට අවශ්‍ය නමුත් වෙනත් object files වලින් ලබා ගත යුතු functions වල list එකකි. වෙනත් අයුරකින් කිවහොත් PE එකට අවශ්‍ය dependencies වේ. මෙම functions, object file එකේ export table හි අඩංගු ඒවා වේ. මෙම table එක IMAGE_DIRECTORY_ENTRY_IMPORT ලෙස IMAGE_DATA_DIRECTORY හි හදුන්වා ඇත. මේ හා සම්බන්ධ වන data directory කීපයක් ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IMAGE_DIRECTORY_ENTRY_EXPORT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IMAGE_DIRECTORY_ENTRY_RESOURCE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IMAGE_DIRECTORY_ENTRY_BASERELOC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IMAGE_DIRECTORY_ENTRY_IAT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;* මෙහි initialized data තිබීම හා readable වීම අත්‍යාවශ්‍ය වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙයද array එකක් ආකාරයෙන් පවතී. මෙම array එකෙහි විශාලත්වය import කරන dll ගනනට සමාන වේ. මෙම array එක IMAGE_IMPORT_DESCRIPTOR හි array එකකි. එහි එක් කොටසක් ගත් විට, එය කොටස් 5 කට වෙන් කළ හැක. array එකෙහි අවසාන කොටස null වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/StQRhbcqdhI/AAAAAAAAADQ/mBksLQuqK_Y/s1600-h/Untitled-23.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 393px; height: 190px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/StQRhbcqdhI/AAAAAAAAADQ/mBksLQuqK_Y/s400/Untitled-23.jpg" alt="" id="BLOGGER_PHOTO_ID_5391953919870662162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_IMPORT_DESCRIPTOR {&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;union&lt;/span&gt; {&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Characteristics;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   OriginalFirstThunk;&lt;br /&gt;};&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   TimeDateStamp;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   ForwarderChain;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   Name;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt;   FirstThunk;&lt;br /&gt;} IMAGE_IMPORT_DESCRIPTOR;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef&lt;/span&gt; IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"  &gt;OriginalFirstThunk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි සදහන් වනුයේ function names (IMAGE_IMPORT_BY_NAME) වලට තිබෙන RVA අඩංගු array එකකට තිබෙන RVA එකකි. function names පහත ආකාරයට ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි මුලින්ම තිබෙන්නේ Ordinal number (16 bits) එක වේ. පසුව 0x00 හමුවන තෙක් කියවීමෙන් function name එක ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SsQj5nnHoII/AAAAAAAAADA/BH8zdDsVMso/s1600-h/Untitled-22.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 399px; height: 184px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SsQj5nnHoII/AAAAAAAAADA/BH8zdDsVMso/s400/Untitled-22.jpg" alt="" id="BLOGGER_PHOTO_ID_5387470527034531970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_IMPORT_BY_NAME {&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;WORD&lt;/span&gt;    Hint;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;BYTE&lt;/span&gt;    Name[1];&lt;br /&gt;} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_THUNK_DATA32 {&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;union&lt;/span&gt; {&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;PBYTE&lt;/span&gt;  ForwarderString;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;PDWORD&lt;/span&gt; Function;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DWORD&lt;/span&gt; Ordinal;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;PIMAGE_IMPORT_BY_NAME&lt;/span&gt;  AddressOfData;&lt;br /&gt;} u1;&lt;br /&gt;} IMAGE_THUNK_DATA32;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;" &gt;TimeDateStamp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය භාවිතා නොවේ. මෙය 0x00000000 හෝ 0x‍FFFFFFFF යන අගයන්හි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;ForwarderChain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙයද සාමාන්‍යයෙන් 0x‍FFFFFFFF යන අගයෙහි පවතී. නමුත් භාවිතා කරන අවස්ථාද තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;DLL Name RVA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;DLL එකෙහි නම ඇති ස්ථානයේ RVA එක වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:arial;" &gt;&lt;u&gt;Ordinal numbers, function names හා DLL Name පිහිටා ඇති ආකාරය&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/StQUeTbJPNI/AAAAAAAAADY/Tno5bpFWjSk/s1600-h/Untitled-26.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 396px; height: 397px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/StQUeTbJPNI/AAAAAAAAADY/Tno5bpFWjSk/s400/Untitled-26.jpg" alt="" id="BLOGGER_PHOTO_ID_5391957164712082642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි &lt;/span&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#00ff0c" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් වට කර ඇති ප්‍රදේශයේ එක් Object එකක විස්තර ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#878787" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් වට කර ඇති ස්ථාන වල Ordinal number එකද,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#6d66ff" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් වට කර ඇති ස්ථානයේ function name එකද ඇත. එසේ එක් Object file එකක් සදහා functions කීපයක් තිබිය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#fe87ff" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් Object file name එක ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි Ordinal numbers, function names හෝ DLL Name එකක alignment එක 2 වේ. එම නිසා ඒවා ආරම්භ වනුයේ 2 හි ගුණාකාරයක් වන ‍file offset වලිනි. එම නිසා &lt;/span&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#faff78" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් ඇති කොටස් අත් හැර දමයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;FirstThunk (IMAGE_THUNK_DATA)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි සදහන්ව ඇත්තේ import කළ යුතු function එකෙහි VA එක ඇති ස්ථානයේ RVA එක වේ. මෙය RAM එකට load වූවාට පසු සත්‍ය VA එක මෙයට replace වීමක් සිදු වේ. jmp [VA] මගින් dll එක හා සම්බන්ධ වේ. මෙම VA ඇත්තේ IMAGE_DIRECTORY_ENTRY_IAT යන table එකෙහි වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/StQXs1iquYI/AAAAAAAAADo/61W7QpVNHy0/s1600-h/Untitled-24.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 444px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/StQXs1iquYI/AAAAAAAAADo/61W7QpVNHy0/s400/Untitled-24.jpg" alt="" id="BLOGGER_PHOTO_ID_5391960712923494786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Import කල යුතු function එකක විස්තර ලබා ගන්නා ආකාරය පහත දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/StQXtdAsEZI/AAAAAAAAADw/hc1811zsFew/s1600-h/Untitled-25.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 404px; height: 560px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/StQXtdAsEZI/AAAAAAAAADw/hc1811zsFew/s400/Untitled-25.jpg" alt="" id="BLOGGER_PHOTO_ID_5391960723518394770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ඉහත රූප සටහනෙහි &lt;/span&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#fbff00" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගිය විට Ordinal number හා function name එක ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#ff00cb" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගිය විට Object file name එක ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;table style="font-family: arial;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#00cdff" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගිය විට import කළ යුතු function එකෙහි VA එක ලබා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ලබා ගන්නා දත්ත පහත ආකාරයට දැක්විය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/StabQpYQz-I/AAAAAAAAAD4/A1gE4BHhTlc/s1600-h/Untitled-1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 418px; height: 152px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/StabQpYQz-I/AAAAAAAAAD4/A1gE4BHhTlc/s400/Untitled-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5392668314110578658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම වගුවෙහි දැක්වෙනුයේ එක් එක් Object files වලින් import කල හැකි functions වල විස්තර වේ.&lt;br /&gt;&lt;br /&gt;shell32.dll හි import table හි පිහිටීම පහත දක්වා ඇත.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/StafvEw7ThI/AAAAAAAAAEA/2tot8deRe_A/s1600-h/Untitled-33.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 412px; height: 599px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/StafvEw7ThI/AAAAAAAAAEA/2tot8deRe_A/s400/Untitled-33.jpg" alt="" id="BLOGGER_PHOTO_ID_5392673234904370706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;‍ගිය සතියෙ ලියපු Export table සටහනේ, shell32.dll දී Export table හි පිහිටීමද මෙහි දක්වා ඇත.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/StakmitA07I/AAAAAAAAAEI/-myL4IMSeyk/s1600-h/Untitled-20.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 406px; height: 345px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/StakmitA07I/AAAAAAAAAEI/-myL4IMSeyk/s400/Untitled-20.jpg" alt="" id="BLOGGER_PHOTO_ID_5392678585880335282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Export table බලා ගත හැකි Application එකක් හා එහි Source code එක &lt;a href="http://win32assembly.online.fr/files/pe-tut07.zip"&gt;මෙතනින් Download&lt;/a&gt; කර ගත හැක.&lt;br /&gt;&lt;br /&gt;Import table බලා ගත හැකි Application එකක් හා එහි Source code එක &lt;a href="http://win32assembly.online.fr/files/pe-tut06.zip"&gt;මෙතනින් Download&lt;/a&gt; කර ගත හැක.&lt;br /&gt;&lt;br /&gt;අදට ලිව්වා ඇති. ලබන සතියේ ආයෙත් ලියනවා. ලබන සතියෙ ලියන්න තියෙන්නෙ Resource table එක ගැනයි.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-5257551832800854729?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/5257551832800854729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/10/win32-portable-executable-format-part-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/5257551832800854729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/5257551832800854729'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/10/win32-portable-executable-format-part-5.html' title='සිංහලෙන් win32 Portable Executable format - part 5'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-8224868919262945148</id><published>2009-09-30T10:35:00.065+05:30</published><updated>2009-10-13T11:31:55.890+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 4</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;පසුගිය ක&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ලාපයේ අප සාකච්චා කලේ &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;IMAGE_OPTIONAL_HEADER &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ගැනයි. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;මීලගට&lt;/span&gt; අපට ඇත්තේ Image Section headers යන කොටස විස්තර කිරීමටයි. නමුත් ඊට ප්‍රථම Relative Virtual Address(RVA) හා Virtual Address(VA) පිළිබදව විස්තර කිරීමක් සිදු කල යුතුය.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-size:130%;" &gt;&lt;u&gt;RVA හා VA&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;RVA යනු PE එක RAM එකට load  වූ පසු එහි ආරම්භක ස්ථානයට සාපේක්ෂ address එකයි. VA යනු එහි සත්‍ය address එකයි. එය පහත ආකාරයට දැක්විය හැක.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;VA = RVA + PE එක RAM එකෙහි ආරම්භක ස්ථානය&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RVA මගින් file offset එක සොයන ආකාරය&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;උදා: calc.exe හි Import table හි RVA = 0x00012B80 වේ. .text section හි pointer to row data =0x00000400, virtual address = 0x00001000 හා virtual size = 0x000126B0 වේ.&lt;br /&gt;තවද මෙහි SectionAlignment = 0x00001000 හා SizeOfHeaders = 0x00000400 වේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;RVA යනු RAM එකේදී සාපේක්ෂ address එකයි. file එකේදී සෙවීමට නම් පළමුව එය අයත් section එක සොයා ගත යුතුය. .text හි පරාසය 0x00001000 - 0x000136B0 වේ. එම නිසා import table අයත් වනුයේ .text section එකටය. එවිට,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;file offset = RVA - Section.VirtualAddress + Section.FileOffset&lt;br /&gt;ලෙස විය යුතුය.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;මෙහි Section යනු, RVA එක අයත් Section එක වේ.&lt;br /&gt;එම නිසා Import table හි ආරම්භක file offset එක&lt;br /&gt;&lt;br /&gt;= 0x00012B80 - 0x00001000 + 0x00000400&lt;br /&gt;= 0x00011F80&lt;br /&gt;&lt;br /&gt;ට සමාන වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SsMj_TLwX2I/AAAAAAAAACo/NBW-wMsKZeo/s1600-h/Untitled-14.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 435px; height: 245px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SsMj_TLwX2I/AAAAAAAAACo/NBW-wMsKZeo/s400/Untitled-14.jpg" alt="" id="BLOGGER_PHOTO_ID_5387189149653557090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;සෑම අවස්ථාවකම වාගේ පළමු වන section එක RAM එකෙහි ආරම්භ වනුයේ SectionAlignment එක RVA වන address එකේදීය &lt;span style="color: rgb(51, 51, 255);"&gt;(&lt;/span&gt;FileAlignment නොමැතිව ගත් විට headers හි විශාලත්වය&lt;span style="color: rgb(51, 255, 51);"&gt;(&lt;/span&gt;=0x000002DE&lt;span style="color: rgb(51, 255, 51);"&gt;)&lt;/span&gt;, SectionAlignment එකට වඩා කුඩා නිසා.&lt;span style="color: rgb(51, 102, 255);"&gt;)&lt;/span&gt;. එලෙසම file එකේදී පළමු section එක ආරම්භ වන ස්ථානය SizeOfHeaders යන අගයට සමාන වේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;මෙතෙක් අප සාකච්චා කල කොටස් වල රූපමය සටහනක් පහත දක්වා ඇත.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;img src="http://4.bp.blogspot.com/_DjOXME_LTpo/SsLvqpMRLPI/AAAAAAAAACQ/uJYxgfbFa-M/s400/Untitled-23.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 165px; height: 847px;" alt="" id="BLOGGER_PHOTO_ID_5387131620179389682" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;font-family:arial;font-size:130%;" class="Apple-style-span"  &gt;&lt;u&gt;Image Section headers&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;මීලගට අප නැවතත් Image Section headers ගැන විස්තර කරමු. මෙය ප්‍රධාන කොටස් 2 කට වෙන් කරන්න පුළුවන්.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;1. IMAGE_SECTION_HEADER&lt;br /&gt;2. IMAGE_SECTION&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;font-family:arial;font-size:130%;" class="Apple-style-span"  &gt;&lt;u&gt;IMAGE_SECTION_HEADER&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;පළමුව IMAGE_SECTION_HEADER පිළිබදව සලකා බලමු. මෙය තවත් කොටස් වලට බෙදේ. එම වෙන් කෙරෙන කොටස් ගනන PE එකෙහි තිබෙන section ගනනට සමාන වේ. එම එක් එක් කොටස් තවත් කොටස් 10 කට වෙන් කෙරේ.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Name&lt;/li&gt;&lt;li&gt;VirtualSize&lt;/li&gt;&lt;li&gt;VirtualAddress&lt;/li&gt;&lt;li&gt;SizeOfRowData&lt;/li&gt;&lt;li&gt;PointerToRowData&lt;/li&gt;&lt;li&gt;PointerToRelocations&lt;/li&gt;&lt;li&gt;PointerToLineNumbers&lt;/li&gt;&lt;li&gt;NumberOfRelocations&lt;/li&gt;&lt;li&gt;NumberOfLineNumbers&lt;/li&gt;&lt;li&gt;Characteristics&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Name&lt;/span&gt;&lt;br /&gt;මෙහි සදහන්ව ඇත්තේ section එකෙහි නම වේ. එය UTF-8 string එකකි.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VirtualSize&lt;/span&gt;&lt;br /&gt;RAM එකට load වූවාට පසු section එකෙහි size එක මෙමගින් දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VirtualAddress&lt;/span&gt;&lt;br /&gt;RAM එකට load වූවාට පසු section එකෙහි ImageBase එකට සාපේක්ෂ ආරම්භක address එක මෙමගින් දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SizeOfRowData&lt;/span&gt;&lt;br /&gt;file එකේදී section එකේ විශාලත්වය මෙමගින් දක්වා ඇත. එය VirtualSize එකට වඩා විශාල විය යුතුය.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;calc.exe හි .text section හි පිහිටීම&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMlI3AHu5I/AAAAAAAAACw/YupBtmRucj8/s1600-h/Untitled-16.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 379px; height: 400px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMlI3AHu5I/AAAAAAAAACw/YupBtmRucj8/s400/Untitled-16.jpg" alt="" id="BLOGGER_PHOTO_ID_5387190413398883218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PointerToRowData&lt;/span&gt;&lt;br /&gt;මෙමගින් section එකෙහි ආරම්භක file offset එක දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PointerToRelocations&lt;/span&gt;&lt;br /&gt;Relocations table හි file offset එක දක්වා ඇත. මෙය object files සදහා පමණක් වලංගු වේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PointerToLineNumbers&lt;/span&gt;&lt;br /&gt;line number information සදහා file offset එක දක්වා ඇත. මෙයද object files සදහා පමණක් වලංගු වේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NumberOfRelocations&lt;/span&gt;&lt;br /&gt;Relocations ගනන දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NumberOfLineNumbers&lt;/span&gt;&lt;br /&gt;line number informations ගනන දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Characteristics&lt;/span&gt;&lt;br /&gt;මෙමගින් අදාල section හි Characteristics විස්තර කරයි. පළමුව මෙය පහත ආකාරයට වෙන් කර ගත යුතුය.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 0&lt;/span&gt; (IMAGE_SCN_MEM_WRITE) - The section can be written to.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 1&lt;/span&gt; (IMAGE_SCN_MEM_READ) - The section can be read.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 2&lt;/span&gt; (IMAGE_SCN_MEM_EXECUTE) - The section can be executed as code.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 3&lt;/span&gt; (IMAGE_SCN_MEM_SHARED) - The section can be shared in memory.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 4&lt;/span&gt; (IMAGE_SCN_MEM_NOT_PAGED) - The section is not pageable.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 5&lt;/span&gt; (IMAGE_SCN_MEM_NOT_CACHED) - The section cannot be cached.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 6&lt;/span&gt; (IMAGE_SCN_MEM_DISCARDABLE) - The section can be discarded as needed.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 7&lt;/span&gt; (IMAGE_SCN_LNK_NRELOC_OVFL) - The section contains extended relocations.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 1&lt;/span&gt; (IMAGE_SCN_ALIGN_1BYTE) - Align data on a 1-byte boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 2&lt;/span&gt; (IMAGE_SCN_ALIGN_2BYTES) - Align data on a 2-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 3&lt;/span&gt; (IMAGE_SCN_ALIGN_4BYTES) - Align data on a 4-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 4&lt;/span&gt; (IMAGE_SCN_ALIGN_8BYTES) - Align data on a 8-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 5&lt;/span&gt; (IMAGE_SCN_ALIGN_16BYTES) - Align data on a 16-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bits of byte 2&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;) == 6&lt;/span&gt; (IMAGE_SCN_ALIGN_32BYTES) - Align data on a 32-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 7&lt;/span&gt; (IMAGE_SCN_ALIGN_64BYTES) - Align data on a 64-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 8&lt;/span&gt; (IMAGE_SCN_ALIGN_128BYTES) - Align data on a 128-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 9&lt;/span&gt; (IMAGE_SCN_ALIGN_256BYTES) - Align data on a 256-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 10&lt;/span&gt; (IMAGE_SCN_ALIGN_512BYTES) - Align data on a 512-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 11&lt;/span&gt; (IMAGE_SCN_ALIGN_1024BYTES) - Align data on a 1024-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 12&lt;/span&gt; (IMAGE_SCN_ALIGN_2048BYTES) - Align data on a 2048-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 13&lt;/span&gt; (IMAGE_SCN_ALIGN_4096BYTES) - Align data on a 4096-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ASCII_Code(1st 4 bits of byte 2) == 14&lt;/span&gt; (IMAGE_SCN_ALIGN_8192BYTES) - Align data on a 8192-bytes boundary. Valid only for object files.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 12&lt;/span&gt; (IMAGE_SCN_MEM_LOCKED) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 13&lt;/span&gt; (IMAGE_SCN_MEM_16BIT) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 14&lt;/span&gt; (IMAGE_SCN_MEM_PURGEABLE) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 15&lt;/span&gt; (IMAGE_SCN_MEM_SYSHEAP) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 16&lt;/span&gt; (IMAGE_SCN_MEM_FARDATA) - The section contains data referenced through the global pointer (GP).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 17&lt;/span&gt; (IMAGE_SCN_NO_DEFER_SPEC_EXC) - Not Used.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 18&lt;/span&gt; - Not Used.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 19&lt;/span&gt; (IMAGE_SCN_LNK_COMDAT) - The section contains COMDAT data.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 20&lt;/span&gt; (IMAGE_SCN_LNK_REMOVE) - The section will not become part of the image.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 21&lt;/span&gt; (IMAGE_SCN_TYPE_OVER) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 22&lt;/span&gt; (IMAGE_SCN_LNK_INFO) - The section contains comments or other information.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 23&lt;/span&gt; (IMAGE_SCN_LNK_OTHER) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 24&lt;/span&gt; (IMAGE_SCN_CNT_UNINITIALIZED_DATA) - The section contains uninitialized data.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 25&lt;/span&gt; (IMAGE_SCN_CNT_INITIALIZED_DATA) - The section contains initialized data.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 26&lt;/span&gt; (IMAGE_SCN_CNT_CODE) - The section contains executable code.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 27&lt;/span&gt; (IMAGE_SCN_TYPE_COPY) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 28&lt;/span&gt; (IMAGE_SCN_TYPE_NO_PAD) - The section should not be padded to the next boundary.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 29&lt;/span&gt; (IMAGE_SCN_TYPE_GROUP) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 30&lt;/span&gt; (IMAGE_SCN_TYPE_NOLOAD) - Reserved for future use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bit 31&lt;/span&gt; (IMAGE_SCN_TYPE_DSECT) - Reserved for future use.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;උදා: 0x60000020 ලෙස ඇත්නම්,&lt;br /&gt;[The section can be read.],[The section can be executed as code.],[The section contains executable code.] යන Characteristics ඇත.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;calc.exe හි IMAGE_SECTION_HEADER &lt;/span&gt;පිහිටීම&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMCEo2IrII/AAAAAAAAACY/zR309cPtIpQ/s1600-h/Untitled-21.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 417px; height: 214px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMCEo2IrII/AAAAAAAAACY/zR309cPtIpQ/s400/Untitled-21.jpg" alt="" id="BLOGGER_PHOTO_ID_5387151857972456578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SsMjOxGVpbI/AAAAAAAAACg/7bQCgoTZnBM/s1600-h/Untitled-15.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 251px; height: 535px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SsMjOxGVpbI/AAAAAAAAACg/7bQCgoTZnBM/s400/Untitled-15.jpg" alt="" id="BLOGGER_PHOTO_ID_5387188315870307762" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;මීලගට ඇත්තේ IMAGE_SECTION යන කොටසයි.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:arial;font-size:130%;" class="Apple-style-span"  &gt;&lt;u&gt;IMAGE_SECTION&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;මෙහි PE හි ක්‍රියාකාරීත්වයට අදාල Instructions තිබෙන්නේ මෙය තුලය.&lt;br /&gt;මෙය පහත දැක්වෙන ලෙස section හා tables වලට වෙන් කල හැක.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;code section&lt;br /&gt;data section&lt;br /&gt;bss section&lt;br /&gt;Copyright (IMAGE_DIRECTORY_ENTRY_COPYRIGHT)&lt;br /&gt;Exported symbols (IMAGE_DIRECTORY_ENTRY_EXPORT)&lt;br /&gt;Imported symbols (IMAGE_DIRECTORY_ENTRY_IMPORT)&lt;br /&gt;Resources (IMAGE_DIRECTORY_ENTRY_RESOURCE)&lt;br /&gt;Relocations (IMAGE_DIRECTORY_ENTRY_BASERELOC)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;code section&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙහි execute කරන code එක තිබේ. මෙමගින් execute කරීම ආරම්භ කිරීමට නම් අවම වශයෙන් පහත කරුනු තෘප්ත විය යුතුය.&lt;br /&gt;&lt;br /&gt;IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE හා IMAGE_SCN_MEM_READ යන ඒවා 1 ලෙස තිබිය යුතුය.&lt;br /&gt;AddressOfEntryPoint මෙම code එක තුල යම් ස්ථානයකට සම්බන්ධ කර තිබිය යුතුය.&lt;br /&gt;&lt;br /&gt;බොහෝ අවස්ථා වලදී BaseOfCode මගින් මෙහි ආරම්භක ස්ථානය දක්වා ඇත. මෙහි .text, .code වැනි section අඩංගුව තිබේ. මෙය Disassemble කරන ආකාරය පසුව විස්තර කරන්නෙමි.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;&lt;u&gt;data section&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙහි initialized static variables අඩංගුව ඇත.&lt;br /&gt;උදා: static int b = 8;&lt;br /&gt;මෙහි IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ හා IMAGE_SCN_MEM_WRITE යන ඒවා 1 ලෙස සටහන්ව තිබිය යුතුය. final ලෙස හදුන්වා ඇත්නම් IMAGE_SCN_MEM_WRITE යන්න 0 ලෙස තිබේ(.rdata තුලදී). මෙය BaseOfData යන ස්ථානයෙන් ආරම්භ වේ. එහි විශාලත්වය SizeOfInitializedData මගින් දක්වා ඇත. මෙහි .data, .edata වැනි section අඩංගුව තිබේ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;u&gt;bss section&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙහි uninitialized static variables අඩංගුව ඇත.&lt;br /&gt;&lt;br /&gt;මෙහි IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ හා IMAGE_SCN_MEM_WRITE යන ඒවා 1 ලෙස සටහන්ව තිබිය යුතුය.&lt;br /&gt;&lt;br /&gt;PointerToRawData මගින් ආරම්භක ස්ථානය දක්වා ඇත. SizeOfUninitializedData මගින් විශාලත්වය දක්වා ඇත. මෙහි .bss වැනි section අඩංගුව තිබේ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;u&gt;Copyright&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙය ඉතා කුඩා කොටසකි. මෙහි Copyrights පිළිබදව හැදින්වීමක් වාක්‍යක් ලෙස ලියා ඇත. IMAGE_SCN_CNT_INITIALIZED_DATA යන්න 1 ලෙස තිබීම අවශ්‍ය වේ. මෙය .descr වැනි section එකක් තුල තිබේ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;u&gt;Exported symbols&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;මෙය සාමාන්‍යයෙන් dll තුල දක්නට ලැබේ. මෙහි අඩංගු වනුයේ PE එක මගින් Export කළ හැකි funtions වල Entry point  list එකකි. PE එකකට වෙනත් PE එකකින් funtions import කළ හැක. එසේ import කරනුයේ එහි export table හි ඇති funtions වේ.මෙම table එක IMAGE_DIRECTORY_ENTRY_EXPORT ලෙස IMAGE_DATA_DIRECTORY හි හදුන්වා ඇත. funtion එකක් සදහා properties වශයෙන් Name හා Name Ordinal පවතී. මෙම export table එක බොහෝ විට .edata section එක තුල තිබිය හැක. මෙහි initialized data තිබීම හා readable වීම අත්‍යාවශ්‍ය වේ.   PE එකකට, funtion එකේ RVA සෙවීමට GetProcAddress() යන method එකෙන් run වීමේදී call කිරීම සිදු වේ. එමනිසා එය discardable නොවිය යුතුය.&lt;br /&gt;&lt;br /&gt;මෙය කොටස් 11 කට වෙන් කෙරේ.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SsQkilfOB_I/AAAAAAAAADI/W5uv6qVKHxs/s1600-h/Untitled-18.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 231px; height: 400px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SsQkilfOB_I/AAAAAAAAADI/W5uv6qVKHxs/s400/Untitled-18.jpg" alt="" id="BLOGGER_PHOTO_ID_5387471230839162866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_EXPORT_DIRECTORY {&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   Characteristics;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   TimeDateStamp;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MajorVersion;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MinorVersion;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   Name;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   Base;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   NumberOfFunctions;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   NumberOfNames;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   AddressOfFunctions;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   AddressOfNames;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   AddressOfNameOrdinals;&lt;br /&gt;} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Characteristics&lt;/span&gt;&lt;br /&gt;මෙය භාවිතා නොකරන අතර 0x00000000 අගයෙහි පවතී.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TimeDateStamp&lt;/span&gt;&lt;br /&gt;table එක නිර්මානය කළ දිනය හා වේලාව දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MajorVersion&lt;/span&gt; හා &lt;span style="font-weight: bold;"&gt;MinorVersion&lt;/span&gt; මගින් version එක දැක්වූවද 0x0000 යන අගයෙහි පවතී.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DLL Name RVA&lt;/span&gt;&lt;br /&gt;මෙහි DLL එකේ නම තිබෙන RVA එක ඇත. එම RVA එක ඔස්සේ ගිය විට පහත ආකාරයට දැක ගත හැක. එය 0-terminated ASCII string එකක් ලෙස ඇත. එය කියවීමේදී 0x00 යන අගය හමුවන තෙක් කියවිය යුතුය.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/StQV79kCw4I/AAAAAAAAADg/6TKbWiD2Luk/s1600-h/Untitled-27.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 420px; height: 210px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/StQV79kCw4I/AAAAAAAAADg/6TKbWiD2Luk/s400/Untitled-27.jpg" alt="" id="BLOGGER_PHOTO_ID_5391958773751530370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ordinal Base&lt;/span&gt;&lt;br /&gt;මෙමගින් දැක්වෙනුයේ array එකක ආරම්භක index එකට අදාල ordinal number එක වේ. windows kernel මගින් මෙම table එකෙහි export ordinal තබා ගනුයේ array එකක් ආකාරයෙනි. මෙය බොහෝ විට 1 ලෙස තිබේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NumberOfFunctions&lt;/span&gt;&lt;br /&gt;export කරන funtions ගනන මෙයින් දක්වා ඇත. එකම name ordinal එකෙන් හා එකම name එකෙන් funtions කීපයක් export කළ හැක.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NumberOfNames&lt;/span&gt;&lt;br /&gt;export කරන names ගනන මෙයින් දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AddressOfFunctions&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;මෙහි තිබෙනුයේ funtions වල RVA list එක තිබෙන ස්ථානයේ RVA එකයි. මේ ඔස්සේ ගිය විට අපට ලැබෙනුයේ funtions, NumberOfFunctions ප්‍රමාණයකි. ඒවා array එකකට ඇතුලත් කර ගන්න. එම array එකෙහි තිබෙන RVA හරහා ගිය විට ඊට ආදාල funtion එක ලබා ගත හැක. එවිට එය පහත ආකාරයට දැක්විය හැක.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AddressOfNames&lt;/span&gt;&lt;br /&gt;මෙයද ඉහත ආකාරයේම RVA list එකකට ඇති RVA එකකි. එම RVA හරහා ගිය විට ලැබෙනුයේ අදාල funtion එකෙහි name එක වේ.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AddressOfNameOrdinals&lt;/span&gt;&lt;br /&gt;මෙයද ඉහත ආකාරයම වේ. මෙය හරහා ගිය විට ලැබෙනුයේ name ordinal එක වේ.&lt;br /&gt;shell32.dll එක otherdll ලෙස හදුන්වා ඇත්නම් හා එහි name ordinal 0x0066 වන Activate_RunDLL නැමති funtion එකට call කිරීමට අවශ්‍ය නම්, otherdll.#66 ලෙස හෝ otherdll.Activate_RunDLL ලෙස call කළ හැක.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;Function එකක් ගැන සම්පූර්ණ විස්තරයක් ලබා ගන්නා ආකාරය පහත දක්වා ඇත.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMlwBBWM2I/AAAAAAAAAC4/ILdKmuSGDxk/s1600-h/Untitled-19.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 402px; height: 436px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SsMlwBBWM2I/AAAAAAAAAC4/ILdKmuSGDxk/s400/Untitled-19.jpg" alt="" id="BLOGGER_PHOTO_ID_5387191086103278434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;ඉහත දැක්වෙන රූප සටහනෙහි&lt;/span&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#db00fc" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගිය විට name RVA එක හා name එක ලැබේ. එය පහත ආකාරයට වගුවකට ඇතුලත් කර ගන්න.&lt;br /&gt;පසුව &lt;/span&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#f9d99e" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගිය විට Ordinal numbers ලැබේ. එයද වගුවට ඇතුලත් කර ගන්න.&lt;br /&gt;එලෙසම &lt;/span&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#61e5e7" height="10" width="50"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; වර්ණයෙන් ඇති line එක දිගේ ගොස් function RVA හා offset එකද ඇතුලත් කරන්න.&lt;br /&gt;&lt;/span&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr bg="" style="color: rgb(211, 219, 219);"&gt;&lt;td style="color: rgb(0, 0, 0); font-weight: bold;" width="110"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="color: rgb(0, 0, 0); font-weight: bold;" width="200"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Name&lt;/span&gt;&lt;/td&gt;&lt;td style="color: rgb(0, 0, 0); font-weight: bold;" width="120"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Ordinal number&lt;/span&gt;&lt;/td&gt;&lt;td style="color: rgb(0, 0, 0); font-weight: bold;" width="120"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Function RVA&lt;/span&gt;&lt;/td&gt;&lt;td style="color: rgb(0, 0, 0); font-weight: bold;" width="120"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Function offset&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Function 1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Activate_RunDLL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x0066&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x00036F8F&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x0003638F&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Function 2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;AppCompat_RunDLL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x0067&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x000F3876&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x000F2C76&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;Function n&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;shlwapi.PathGetDriveNumberW&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x028A&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x000EE2CA&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style=";font-family:arial;font-size:85%;"  &gt;0x000ED6CA&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;මෙම වගුවෙහි Row එකක් ගත් විට එහි අඩංගු වනුයේ export කළ හැකි එක් function එකක් ගැන විස්තර වේ.&lt;br /&gt;&lt;br /&gt;මේ සතියට ලිව්ව ඇති. ආයෙත් ලබන සතියේ ලියනවා. මේ දවස්වල Assignment ගොඩ ගැහිලා. blog එක ලියන්න වෙලාවක් සොයා ගන්නත් අමාරුයි. ලබන සතියේ Import table ගැන ලියනවා.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;FB.init("19065279be9c67e8785d7a8631d2af01");&lt;/script&gt;&lt;fb:comments&gt; &lt;/fb:comments&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-8224868919262945148?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/8224868919262945148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/imageoptionalheader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8224868919262945148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8224868919262945148'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/imageoptionalheader.html' title='සිංහලෙන් win32 Portable Executable format - part 4'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-851440225811786798</id><published>2009-09-23T10:27:00.030+05:30</published><updated>2009-09-23T13:03:33.591+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 3</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;පසුගිය සටහනෙන් අප සාකච්චා කළේ IMAGE_NT_SIGNATURE හා IMAGE_FILE_HEADER ගැනයි. එය IMAGE_NT_HEADERS හි ප්‍රධාන කොටස් 3 න් 2 කි.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මීලගට ඇත්තේ තවත් ප්‍රධාන කොටසක් වන IMAGE_OPTIONAL_HEADER යන්නයි.මෙය තවත් කොටස් 31 කට වෙන් කල හැක.&lt;/span&gt; පහත දක්වා ඇත්තේ එයට අදාල source එක වේ.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_DATA_DIRECTORY {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   VirtualAddress;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   Size;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#define&lt;/span&gt; IMAGE_NUMBEROF_DIRECTORY_ENTRIES    16&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;//&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;// Optional header format.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;//&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_OPTIONAL_HEADER {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(0, 153, 0);"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;   // Standard fields.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;   //&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    Magic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;BYTE&lt;/span&gt;    MajorLinkerVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;BYTE&lt;/span&gt;    MinorLinkerVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfCode;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfInitializedData;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfUninitializedData;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   AddressOfEntryPoint;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   BaseOfCode;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   BaseOfData;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;   //&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;   // NT additional fields.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:arial;" &gt;   //&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   ImageBase;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SectionAlignment;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   FileAlignment;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MajorOperatingSystemVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MinorOperatingSystemVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MajorImageVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MinorImageVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MajorSubsystemVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    MinorSubsystemVersion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   Win32VersionValue;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfImage;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfHeaders;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   CheckSum;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    Subsystem;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;    DllCharacteristics;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfStackReserve;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfStackCommit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfHeapReserve;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   SizeOfHeapCommit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   LoaderFlags;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;   NumberOfRvaAndSizes;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DATA_DIRECTORY&lt;/span&gt; DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SrCA5DoOw6I/AAAAAAAAABM/qdiYWBfpH5s/s1600-h/Untitled-10.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 404px; height: 287px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SrCA5DoOw6I/AAAAAAAAABM/qdiYWBfpH5s/s400/Untitled-10.jpg" alt="" id="BLOGGER_PHOTO_ID_5381943272422687650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම පින්තූරයෙන් දක්වා ඇත්තේ calc.exe හි IMAGE_OPTIONAL_HEADER පිහිටා ඇති ආකාරය වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;1. Magic&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් අදාල PE එක PE32 හෝ PE32+ ද යන වග බලා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x010B - PE32 Executable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x020B - PE32+ Executable&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;2. MajorLinkerVersion&lt;/span&gt; හා&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;3. MinorLinkerVersion&lt;/span&gt; මගින් PE එක නිර්මානය කිරීමට යොදා ගත් linker එකෙහි version එක බලා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා: MajorLinkerVersion - 0x07 හා MinorLinkerVersion - 0x00 නම්&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;linker version - 7.00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;4. SizeOfCode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Code(text) section හි විශාලත්වය bytes වලින් දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;5. SizeOfInitializedData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Initialized data(data) section හි විශාලත්වය bytes වලින් දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;6. SizeOfUninitializedData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Uninitialized Data(bss) section හි විශාලත්වය bytes වලින් දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;7. AddressOfEntryPoint&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් PE එක execute වීම ආරම්භක ස්ථානය දක්වා ඇත. මෙය exe එකක නම් main() එකත් dll එකක නම් LibMain() එකත් Driver file එකක නම් DriverEntry() යන ස්ථාන වේ. මෙය ImageBase එකට සාපේක්ෂ ස්ථානය වේ. මෙම කොටසින් පසුව Virtual address හා Relative Virtual Address පිළිබදව විස්තර කරනු ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;8. BaseOfCode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය ImageBase එකට සාපේක්ෂ code section හි ආරම්භක ස්ථානය වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;9. BaseOfData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය ImageBase එකට සාපේක්ෂ data section හි ආරම්භක ස්ථානය වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;10. ImageBase&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් PE එක memory එකට load විය යුතු ස්ථානය දක්වයි. එම ස්ථානය free space ‍නොමැති නම් ඉදිරියට free space ඇති ස්ථානයකට load වේ. මෙය 64k මගින් ගුණකර ගත යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;11. SectionAlignment&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් Sections, memory එකට load වීමේදී පිහිටිය යුතු ආකාරය දක්වයි. load වන address එක මෙහි ගුණාකාරයක් විය යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා: SectionAlignment - 0x00001000 නම්&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පළමු section එකෙහි විශාලත්වය 75440 bytes හා එය load වූයේ 0x00101000 යන ස්ථානය‍ට යැයි සිතන්න.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එවිට දෙවන section එක load වනුයේ 0x00114000 යන ස්ථානයට වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;12. FileAlignment&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය ඉහත SectionAlignment මෙන්ම file එකෙහි තිබෙන ආකාරයයි. මෙය SectionAlignment එකට වඩා කුඩා හෝ සමා‍න වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;13. MajorOSVersion&lt;/span&gt; හා&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;14. MinorOSVersion&lt;/span&gt; මගින් linker version ලබා ගත් ආකාරයටම OS Version එක ලබා ගත හැකි වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;15. MajorImageVersion&lt;/span&gt; හා&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;16. MinorImageVersion&lt;/span&gt; මගින් Image Version එක ලබා ගත හැකි වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;17. MajorSubsystemVersion&lt;/span&gt; හා&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;18. MinorSubsystemVersion&lt;/span&gt; මගින් Subsystem Version(Win32 version හෝ the POSIX version) එක ලබා ගත හැකි වේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;19. Win32VersionValue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය 0x00000000 අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;20. SizeOfImage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි දක්වා ඇත්තේ PE එක memory එකට load වූ පසු ගන්නා මුළු ඉඩ ප්‍රමාණයයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;21. SizeOfHeaders&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙමගින් දක්වා ඇත්තේ MS-DOS Stub, PE header හා section headers සදහා ගන්නා ලද මුළු ඉඩ ප්‍රමාණයයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;22. CheckSum&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි ඇත්තේ NT version එක වේ. එය අවශ්‍ය වනුයේ NT Drivers සදහා පමණි. වෙනත් format සදහා මෙය පරීක්ෂා නොකරයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;23. Subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙම‍ PE එක run කිරීමට අවශ්‍ය subsystem එක දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පහත අගයන් තිබිය හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0000&lt;/span&gt; (IMAGE_SUBSYSTEM_UNKNOWN) - An unknown subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0001&lt;/span&gt; (IMAGE_SUBSYSTEM_NATIVE) - Device drivers and native Windows processes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0002&lt;/span&gt; (IMAGE_SUBSYSTEM_WINDOWS_GUI) - The Windows graphical user interface (GUI) subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0003&lt;/span&gt; (IMAGE_SUBSYSTEM_WINDOWS_CUI) - The Windows character subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0005&lt;/span&gt; (IMAGE_SUBSYSTEM_OS2_CUI) - The OS/2 character subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0007&lt;/span&gt; (IMAGE_SUBSYSTEM_POSIX_CUI) - The Posix character subsystem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0008&lt;/span&gt; (IMAGE_SUBSYSTEM_NATIVE_WINDOWS) - Native Win9x driver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x0009&lt;/span&gt; (IMAGE_SUBSYSTEM_WINDOWS_CE_GUI) - Windows CE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x000A&lt;/span&gt; - An Extensible Firmware Interface (EFI) application&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x000B&lt;/span&gt; - An EFI driver with boot services&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x000C&lt;/span&gt; - An EFI driver with run-time services&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x000D&lt;/span&gt; - An EFI ROM image&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;0x000E&lt;/span&gt; - XBOX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;24. DLLCharacteristics&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය dll සදහා පමණක් වලංගු වේ. මෙමගින් dll එකෙහි Characteristics පෙන්වා දෙයි.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙයද bits වලට වෙන් කර ගත යුතුය. bit වලට 1 යන අගය තිබේ නම් පහත ගුණාංග තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="70"&gt;bit 0&lt;/td&gt;&lt;td&gt; - Terminal Server aware.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 1&lt;/td&gt;&lt;td&gt; - Not used.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 2&lt;/td&gt;&lt;td&gt; - A WDM driver.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 3&lt;/td&gt;&lt;td&gt; - Reserved, must be zero.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 4&lt;/td&gt;&lt;td&gt; - Do not bind the image.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 5&lt;/td&gt;&lt;td&gt; - Does not use structured exception (SE) handling. No SE handler may be called in this image.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 6&lt;/td&gt;&lt;td&gt; - Isolation aware, but do not isolate the image.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 7&lt;/td&gt;&lt;td&gt; - Image is NX compatible.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 8&lt;/td&gt;&lt;td&gt; - Code Integrity checks are enforced&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 9&lt;/td&gt;&lt;td&gt; - DLL can be relocated at load time.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 10&lt;/td&gt;&lt;td&gt; - Not used.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 11&lt;/td&gt;&lt;td&gt; - Not used.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 12&lt;/td&gt;&lt;td&gt; - Reserved, must be zero.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 13&lt;/td&gt;&lt;td&gt; - Reserved, must be zero.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 14&lt;/td&gt;&lt;td&gt; - Reserved, must be zero.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bit 15&lt;/td&gt;&lt;td&gt; - Reserved, must be zero.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;25. SizeOfStackReserve&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PE එක සදහා අවශ්‍ය වන අමතර stack එකෙහි විශාලත්වය දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;26. SizeOfStackCommit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PE එක සදහා අවශ්‍ය වන stack එකෙහි විශාලත්වය දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;27. SizeOfHeapReserve&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PE එක සදහා අවශ්‍ය වන අමතර heap එකෙහි විශාලත්වය දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;28. SizeOfHeapCommit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PE එක සදහා අවශ්‍ය වන heap එකෙහි විශාලත්වය දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;29. LoaderFlags&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x00000000 අගයෙහි පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;30. NumberOfRvaAndSizes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Data directory වල address ගනනෙහි හා size ගනනෙහි එකතුව දක්වා ඇත.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;31. IMAGE_DATA_DIRECTORY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙය තවත් කොටස් 32 කට වෙන් කරනු ලබයි. මෙය array එකක් ලෙස ගනී. එය පහත ආකාරයට දක්වයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_EXPORT&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Export Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_EXPORT&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_IMPORT&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Import Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_IMPORT&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_RESOURCE&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Resource Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_RESOURCE&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_EXCEPTION&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Exception Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_EXCEPTION&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_SECURITY&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Security Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_SECURITY&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_BASERELOC&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Base Relocation Table&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_BASERELOC&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_DEBUG&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Debug Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_DEBUG&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_ARCHITECTURE&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Architecture Specific Data&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_ARCHITECTURE&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_GLOBALPTR&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;RVA of GP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_GLOBALPTR&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_TLS&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;TLS Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_TLS&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Load Configuration Directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Bound Import Directory in headers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_IAT&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Import Address Table&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_IAT&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;Delay Load Import Descriptors&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;COM Runtime descriptor&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR&lt;/span&gt;.Size&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_RESERVED&lt;/span&gt;.VirtualAddress - &lt;span style="color: rgb(0, 153, 0);"&gt;RESERVED&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;IMAGE_DIRECTORY_ENTRY_RESERVED&lt;/span&gt;.Size  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ඉහත එක් එක් කොටස් තුල එම Directories සදහා relative virtual address හා size දක්වා ඇත. පිහිටා නොමැති Directories සදහා 0x00000000 යන අගය ඇත.&lt;br /&gt;&lt;br /&gt;පහත දැක්වෙන වගුවෙන් දක්වා ඇත්තේ IMAGE_NT_HEADERS පිහිටීම හා calc.exe හි ඇති දත්ත වේ.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SrnN8glZ5vI/AAAAAAAAACI/8V8-S-omtOs/s1600-h/Untitled-13.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 418px; height: 475px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SrnN8glZ5vI/AAAAAAAAACI/8V8-S-omtOs/s400/Untitled-13.jpg" alt="" id="BLOGGER_PHOTO_ID_5384561268920805106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;දැන් නම් අදට ඇති කියල හිතෙනවා. ඒක නිසා අදට නවත්වනවා. ලබන සතියෙ ආයෙමත් ලියනවා. මෙතනින් IMAGE_NT_HEADERS ගැන ලියල ඉවරයි. ලබන සතියෙ ලියන්නෙ Image Section headers ගැනයි.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-851440225811786798?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/851440225811786798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-3.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/851440225811786798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/851440225811786798'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-3.html' title='සිංහලෙන් win32 Portable Executable format - part 3'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-8396043442048507777</id><published>2009-09-16T10:59:00.035+05:30</published><updated>2009-09-16T13:58:44.054+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 2</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;ගිය සතියේ මෙතුලින් අප කතා කලේ IMAGE_DOS_HEADER එක ගැනයි. මීලගට අප හට ඇත්තේ IMAGE_NT_HEADERS යන කොටසයි. මෙම කොටස තුල program එකක ‍වැදගත්ම කොටස ති&lt;/span&gt;&lt;span style="font-family:arial;"&gt;බේ. මෙහි file offset එක සොයා ගැනීම ඉතා පහසුය. IMAGE_DOS_HEADER යටතේ ඇති e_lfanew මගින් මෙහි file offset එක සොයා ගත හැක. ‍මෙම කොටසේ විශාලත්වය 248 bytes වේ. එය PE32 application එකක් සදහා නියත අගයකි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එය ප්‍රධාන කොටස් 3 කට වෙන් කළ හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;1. IMAGE_NT_SIGNATURE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2. IMAGE_FILE_HEADER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3. IMAGE_OPTIONAL_HEADER&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-family:arial;" &gt;IMAGE_NT_SIGNATURE&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි IMAGE_NT_SIGNATURE යනු 32 bits විශාලත්වයක් ඇති Dword එකකි. එහි 0x00004550 (PE) යන අගය පවතී.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;IMAGE_FILE_HEADER&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මීලගට තිබෙන්නේ IMAGE_FILE_HEADER යන කොටසයි. මෙය තවත් කොටස් 7 කට වෙන් කල හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_FILE_HEADER {&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;WORD        &lt;/span&gt;Machine;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;        NumberOfSections;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;    TimeDateStamp;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;    PointerToSymbolTable&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;DWORD&lt;/span&gt;    NumberOfSymbols;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;        SizeOfOptionalHeader;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;        Characteristics;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;  *(මෙය microsoft ආයතනයෙන් සකසන ලද winnt.h නැමැති source file එකෙහි හදුන්වා ඇති ආකාරය වේ.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;මෙහි Machine මගින් දක්වනුයේ අදාල program එක සුදුසු වන CPU platform එකයි. මේ සදහා පහත අගයන් තිබිය හැක.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="80"&gt;0x01D3&lt;/td&gt;&lt;td&gt; - Matsushita AM33&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x8664&lt;/td&gt;&lt;td&gt; - x64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01C0&lt;/td&gt;&lt;td&gt; - ARM little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0EBC&lt;/td&gt;&lt;td&gt; - EFI byte code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x014C&lt;/td&gt;&lt;td&gt; - Intel 386 or later processors and compatible processors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x014D&lt;/td&gt;&lt;td&gt; - Intel 486 or later processors and compatible processors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x014E&lt;/td&gt;&lt;td&gt; - Intel pentium or later processors and compatible processors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0020&lt;/td&gt;&lt;td&gt; - Intel Itanium processor family&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x9401&lt;/td&gt;&lt;td&gt; - Mitsubishi M32R little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0200&lt;/td&gt;&lt;td&gt; - Intel 64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0266&lt;/td&gt;&lt;td&gt; - MIPS16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0366&lt;/td&gt;&lt;td&gt; - MIPS with FPU&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0466&lt;/td&gt;&lt;td&gt; - MIPS16 with FPU&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0160&lt;/td&gt;&lt;td&gt; - R3000 (MIPS) processor, big endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0162&lt;/td&gt;&lt;td&gt; - R3000 (MIPS) processor, little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0166&lt;/td&gt;&lt;td&gt; - R4000 (MIPS) processor, little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0168&lt;/td&gt;&lt;td&gt; - R10000 (MIPS) processor, little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0169&lt;/td&gt;&lt;td&gt; - MIPS little-endian WCE v2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0184&lt;/td&gt;&lt;td&gt; - DEC Alpha AXP processor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0284&lt;/td&gt;&lt;td&gt; - ALPHA64 or AXP64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01F0&lt;/td&gt;&lt;td&gt; - IBM Power PC, little endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01F1&lt;/td&gt;&lt;td&gt; - Power PC with floating point support&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01A2&lt;/td&gt;&lt;td&gt; - Hitachi SH3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01A3&lt;/td&gt;&lt;td&gt; - Hitachi SH3 DSP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01a4&lt;/td&gt;&lt;td&gt; - SH3E little-endian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01A6&lt;/td&gt;&lt;td&gt; - Hitachi SH4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01A8&lt;/td&gt;&lt;td&gt; - Hitachi SH5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x01C2&lt;/td&gt;&lt;td&gt; - Thumb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x0000&lt;/td&gt;&lt;td&gt; - Any machine type&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;NumberOfSections&lt;/span&gt; - මගින් දැක්වෙන්නේ අදාල program එක තුල ඇති sections ගනනයි. අප sections ගනන වෙනස් කරන්නේ නම් මෙහි ඇති අගයද වෙනස් කල යුතුය. sections පිළිබදව පසුව ලිවීමට බළාපොරොත්තු වෙනවා.&lt;/span&gt;&lt;table&gt;  &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;TimeDateStamp&lt;/span&gt; - මගින් දැක්වෙන්නේ program එ&lt;/span&gt;&lt;table&gt;   &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;span style="font-family:arial;"&gt;ක නිර්මානය කල දිනය හා වේලාවයි. එහි සදහන්ව ඇත්තේ 1970 ජනවාරි මස 1 දින පෙ.ව. 12.00.00 සි‍ට ගත වූ තත්පර ගනනෙහි hex value එකයි.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා - 0x3B7D8410 ලෙස ඇත්නම්&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;998081552 seconds = 31:07:15  20:52:32&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;PointerToSymbolTable&lt;/span&gt; හා &lt;span style="font-weight: bold;"&gt;NumberOfSymbols&lt;/span&gt; සෑම අවස්ථාවකම 0x00000000 අගයෙහි පවතී. එය debug කිරීම් සදහා යොදා ගනී.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;   &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;SizeOfOptionalHeader&lt;/span&gt; - මෙමගින් IMAGE_OPTIONAL_HEADER හි විශාලත්වය දක්වා ඇත. එය PE file එකෙහි නිරවද්‍යතාව පරීක්ෂා කිරීමට යොදා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SrCA5-G6xoI/AAAAAAAAABc/UBIFv7ug1vU/s1600-h/Untitled-12.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 412px; height: 291px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SrCA5-G6xoI/AAAAAAAAABc/UBIFv7ug1vU/s400/Untitled-12.jpg" alt="" id="BLOGGER_PHOTO_ID_5381943288120657538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Characteristics මගින් අදාල program එක dll හෝ exe එකක්ද යන්න&lt;/span&gt;&lt;table&gt;    &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;span style="font-family:arial;"&gt; බලා ගත හැක.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Characteristics ලබා ගැනීමට නම් පළමුව එය bit වශයෙන් පහත ආකාරයට වෙන් කර ගත යුතුය.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;     &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;table&gt;    &lt;tbody align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SrCA5mU1_iI/AAAAAAAAABU/minqdwmRmzk/s1600-h/Untitled-11.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 418px; height: 128px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SrCA5mU1_iI/AAAAAAAAABU/minqdwmRmzk/s400/Untitled-11.jpg" alt="" id="BLOGGER_PHOTO_ID_5381943281736613410" border="0" /&gt;&lt;/a&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;පහත දැක්වෙන bits, 1 ලෙස සටහන්ව ඇත්නම් ඒවාට පහත Characteristics තිබේ.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 0&lt;/span&gt; (IMAGE_FILE_BYTES_REVERSED_HI) - Big endian: the MSB precedes the LSB in memory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 1&lt;/span&gt; (IMAGE_FILE_UP_SYSTEM_ONLY) - The file should be run only on a uniprocessor machine.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 2&lt;/span&gt; (IMAGE_FILE_DLL) - The image file is a dynamic-link library (DLL).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 3&lt;/span&gt; (IMAGE_FILE_SYSTEM) - The image file is a system file, not a user program. (ex: driver)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 4&lt;/span&gt; (IMAGE_FILE_NET_RUN_FROM_SWAP) - If the image is on network media, fully load it and copy it to the swap file.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;      &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 5&lt;/span&gt; (IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP) - If the image is on removable media, fully load it and copy it to the swap file.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 6&lt;/span&gt; (IMAGE_FILE_DEBUG_STRIPPED) - Debugging information is removed from the image file.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 7&lt;/span&gt; (IMAGE_FILE_32BIT_MACHINE) - Machine is based on a 32-bit-word architecture.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 8&lt;/span&gt; (IMAGE_FILE_BYTES_REVERSED_LO) - Little endian: the least significant bit (LSB) precedes the most significant bit (MSB) in memory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 9&lt;/span&gt; - This flag is reserved for future use.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 10&lt;/span&gt; (IMAGE_FILE_LARGE_ADDRESS_AWARE) - Application can handle &gt; 2 GB addresses.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 11&lt;/span&gt; (IMAGE_FILE_AGGRESIVE_WS_TRIM) - Obsolete. Aggressively trim working set.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 12&lt;/span&gt; (IMAGE_FILE_LOCAL_SYMS_STRIPPED) - COFF symbol table entries for local symbols have been removed.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;       &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt; &lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 13&lt;/span&gt; (IMAGE_FILE_LINE_NUMS_STRIPPED) - COFF line numbers have been removed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 14&lt;/span&gt; (IMAGE_FILE_EXECUTABLE_IMAGE) - Image only.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;bit 15&lt;/span&gt; (IMAGE_FILE_RELOCS_STRIPPED) - Image only, Windows CE, and Windows NT® and later.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;උදා:- 0x010F ලෙස ඇත්නම් එය 2 පාදයට ගත් විට 0000000100001111 ලෙස වේ.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;එවිට මෙය - [Machine is based on a 32-bit-word architecture.],[COFF symbol table entries for local symbols have been removed.],[COFF line numbers have been removed.],[Image only.],[Image only, Windows CE, and Windows NT® and later.]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;මෙහි දක්වා තිබෙන්නේ IMAGE_NT_HEADERS හි උප කොටස් වේ.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;        &lt;tbody align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SrCA5DoOw6I/AAAAAAAAABM/qdiYWBfpH5s/s1600-h/Untitled-10.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 404px; height: 287px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SrCA5DoOw6I/AAAAAAAAABM/qdiYWBfpH5s/s400/Untitled-10.jpg" alt="" id="BLOGGER_PHOTO_ID_5381943272422687650" border="0" /&gt;&lt;/a&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;අදට මෙතනින් ලියන එක නවත්වනවා ලබන සතියේ IMAGE_OPTIONAL_HEADER ගැන විස්තර කරන්න බලාපොරොත්තු වෙනවා.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-8396043442048507777?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/8396043442048507777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-2.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8396043442048507777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/8396043442048507777'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-2.html' title='සිංහලෙන් win32 Portable Executable format - part 2'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-683477099906219379</id><published>2009-09-07T09:39:00.116+05:30</published><updated>2009-09-11T09:49:15.316+05:30</updated><title type='text'>සිංහලෙන් win32 Portable Executable format - part 1</title><content type='html'>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s1600-h/Untitled-3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 109px; height: 120px;" src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s320/Untitled-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5378582070971625874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;මේ දවස්වල නිකන්ම ඉන්න හින්ද මොනව හරි ලියන්න හිතුන. ඒ හින්ද අද ඉදල දන්න සිංහලෙන් blog එක ලියනවා. මේ ලියන blog එක කොටස් කීපයකට ලියන්න වෙනවා. අද පළවෙනි කොටස ලියනවා. මේ ලියන දේවල් සේරම මම සොයා ගත්තේ අවුරැදු 1 1/2 ක් විතර Internet එක පාවිච්චි කරල. සමහර විට මේ ලිපි වල වැරදි තියෙන්න පුළුවන්, පුලුවන්නම් ඒවා නිවරැදි කරන්න.&lt;/span&gt;  &lt;u  style="font-family:arial;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PE Format&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;මම මේ ලිපිය ලියන්නේ වින්‍‍ඩෝස් වල තියෙන PE Format එක ගැනයි. මේ ලිපිය ලියද්දි භාවිතා කරන භාෂා විලාසය පිළිබදව සමාවන්න, මේක පැහැදිලිව ලියන්න නම් මේ විදියටම ලියන්න වෙනවා. PE කියන්නෙ Porta&lt;/span&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DjOXME_LTpo/SqSMgCtm5TI/AAAAAAAAAAM/CKiIV4wT22w/s1600-h/Untitled-1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 56px;" src="http://1.bp.blogspot.com/_DjOXME_LTpo/SqSMgCtm5TI/AAAAAAAAAAM/CKiIV4wT22w/s320/Untitled-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5378578337099081010" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;ble Executable යන්නයි. මේ PE Files .exe (Programs) , .dll (Dynamic Link Library), .ocx (Active&lt;/span&gt;&lt;span style="font-family:arial;"&gt;X Contr&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ol)  හෝ වෙනත් විදියකට තියෙන්න පුලුවන්. මේ වර්ගයේ files භාවිතා වෙන්නෙ Windows NT, Wind&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ows 95 හා Wi&lt;/span&gt;&lt;span style="font-family:arial;"&gt;n32 files වලයි. Windows NT Drivers තියෙන්නෙත් මේ format එකෙන්ම තමයි. මේ ගැන අවබෝධයක් ලබා ගත්තොත් අපට පුළුවන් Executable එකක Source එක ලබා ගන්නත්, අර්ධ වශයෙන් වෙනස් කරන්නත් පුළුවන්. PE වල Source Code එක තියෙන්නෙ Machine Instruction විධියටමයි. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;ඒ නිසා වෙනස් කරද්දි ගැටළු මතු වෙනවා. නමුත් GUI සම්බන්ධ කොටස් වල Source එක පහසුවෙන් ‍තේරැම් ගන්නත්, වෙනස් කරන්නත් පුළුවන්. මේ ගැන පැහැදිලි දැනුමක් තියෙනවනම් Source එක වෙනස් කරන්න පුළුවන් Software එකක් වුනත් හදන්න පුළුවන්. පහතින් දැක්වෙනුයේ මාවිසින් නිර්මානය කරන ලද එවැනි Source එක වෙනස් කර re-compile කල හැකි මෘදුකාංගයකි.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN4Vao3OI/AAAAAAAAAAU/yzc2Ds2gB_0/s1600-h/Untitled-5.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN4Vao3OI/AAAAAAAAAAU/yzc2Ds2gB_0/s320/Untitled-5.jpg" alt="" id="BLOGGER_PHOTO_ID_5378579853948280034" border="0" height="128" width="175" /&gt;&lt;/a&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN4gnbMmI/AAAAAAAAAAc/ekjoYwV322w/s1600-h/Untitled-6.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN4gnbMmI/AAAAAAAAAAc/ekjoYwV322w/s320/Untitled-6.jpg" alt="" id="BLOGGER_PHOTO_ID_5378579856954700386" border="0" height="127" width="175" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN5pGzlxI/AAAAAAAAAAs/_FMPqFUy1DM/s1600-h/Untitled-8.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_DjOXME_LTpo/SqSN5pGzlxI/AAAAAAAAAAs/_FMPqFUy1DM/s320/Untitled-8.jpg" alt="" id="BLOGGER_PHOTO_ID_5378579876413675282" border="0" height="128" width="175" /&gt;&lt;/a&gt; &lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SqSN5PmnjcI/AAAAAAAAAAk/VbLjfYp-Pos/s1600-h/Untitled-7.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_DjOXME_LTpo/SqSN5PmnjcI/AAAAAAAAAAk/VbLjfYp-Pos/s320/Untitled-7.jpg" alt="" id="BLOGGER_PHOTO_ID_5378579869567782338" border="0" height="127" width="175" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;* පින්තූර විශාලනය කිරීමට එය &lt;/span&gt;&lt;span style="font-family:arial;"&gt;මත click කරන්න.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;* Software එකක Source එක වෙනස් කිරීමට ප්‍රථම එහි Copyrights පිළිබදව සැලකිලිමත් වන්න.&lt;/span&gt;   &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;මෙහි සියලුම උදාහරණ හා පහදාදීම් සදහා c:\windows\system32\calc.exe හා c:\windows\system32\shell32.dll යොදා ගෙන ඇත.&lt;/span&gt;  &lt;u  style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;br /&gt;Program එකක් Execute වීම.&lt;/span&gt;&lt;/u&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;මෙහි c:\windows\system32\calc.exe හි MS-DOS හිදී Instructions කීපයක් දක්වා ඇත.&lt;/span&gt;                          &lt;span style="font-family:arial;"&gt;නිල් වර්ණයෙන් දක්වා ඇත්තේ ඒවාය.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DjOXME_LTpo/SqSSA9whkXI/AAAAAAAAAA8/qtfDVoB893M/s1600-h/Untitled-9.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 411px; height: 367px;" src="http://3.bp.blogspot.com/_DjOXME_LTpo/SqSSA9whkXI/AAAAAAAAAA8/qtfDVoB893M/s320/Untitled-9.jpg" alt="" id="BLOGGER_PHOTO_ID_5378584400262959474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;මෙහිදී calc.exe, MS-DOS තුලදී run කල නොහැකි නිසා calc.exe ට අයත් Instrucions 7 ක් තුලදී terminate වීම සිදුවේ. (නමුත් calc.exe ක්‍රියාත්මක කිරීමට windows kernel මගින් විශාල instructions ප්‍රමාණයක් යොදවයි.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- මෙහි AX හි දැක්වෙනුයේ EAX registry එකෙහි AX කොටසයි.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;අවසන් instruction එකේදී AX=0x4C01 යනුවෙන් ඇත.&lt;/span&gt; &lt;span style="font-family:arial;"&gt; මෙහි 4C යනු Exit යන්නත්, 01 යනු return value එකත් වේ.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;- මෙහි&lt;/span&gt;&lt;span style="font-family:arial;"&gt; BX, CX යනුවෙන් දැක්වෙන්නේ EBX, ECX registry වේ.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;මෙමගින් Execute වන Program එකෙහි විශාලත්වය පෙන්වයි.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;[(0001 BE00)hex] bytes&lt;/span&gt; &lt;span style="font-family:arial;"&gt;= 114176 bytes&lt;/span&gt; &lt;span style="font-family:arial;"&gt;මෙය calc.exe හි විශාලත්වයට සමාන නොවේ.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;(මේ සදහා&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;IMAGE_DOS_HEADER  ---&gt;  64 bytes&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;Windows® header  ---&gt;  448 bytes&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;එක් වු විට calc.exe හි විශාලත්වයට සමාන වේ.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- මෙහි DX මගින් දැක්වෙනුයේ Data register එකට ගත යුතු data හි starting offset එකයි.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;DX=0x000E ලෙස ඇත. මෙමගින් කියවෙනුයේ 0x000E ස්ථානයේ සිට කියවිය යුතු බවය. (මෙහිදී 24 hex value එක හමුවෙන ‍තෙක් read කිරීම සිදු කරයි. එමගින් This program cannot be run in DOS mode. යන්න data register එකට යයි.)&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;මෙහි&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;SP - stack pointer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;DS - data segment&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;CS - code segment&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;IP - instruction pointer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;(Assembly language ගැන පසුව හොදින් විස්තර කිරීමට බලාපොරොත්තු වෙනවා.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ඉහත program එක execute වීමේදී ආරම්භයේ සිට අවසානය තෙක් execute නොවේ. එය යම් කිසි ක්‍රමයකට සිදු වේ. මෙමගින් පැහැදිලි වනුයේ මේ සදහා විශේෂිත file format එකක් ඇති බවයි.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;මේ file format එක නිර්මානය කලේ Microsoft ආයතනයෙන්, මේක සම්මත කලේ TIS (Tool Interface Standard) Committee (Microsoft, Intel, Bordland, Watcom, IBM and Others) මගින් 1993 දීය. මේ format එක සමහර Unix හා VMS ව&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ලදීද භාවිතා වෙනවා.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;PE file එකක් සරලව පහත ආකාරයට දක්වන්න පුළුවන්&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;table style="font-family: arial;" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100"&gt;MS-DOS Stub&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IMAGE_NT_HEADERS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Image Section headers&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Section 1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Section 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;..........&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Section n&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;PE File එකක් run කිරීමේදී පළමුවම සිදුවනුයේ MS-DOS Stub කියවා එහි validity එක පරීක්ෂා කිරීමයි. MS-DOS Stub එක යනු MS-DOS වැඩසටහකි. එය 16 bit-windows වැඩසටහනකි. පසුව එය valid නම් IMAGE_NT_HEADERS වෙත ගොස් Execute කිරීම ආරම්භ කරයි. IMAGE_NT_HEADERS සිට ඉදිරියට තිබෙන්නේ 32 bit-windows වැඩසටහනකි.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;PE file එකක් logical disk එකක් යැයි සිතන්න. එවිට IMAGE_NT_HEADERS යනු logical disk එකෙහි Boot Sector එක ලෙස ගත හැ&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ක. එවිට Sections, logical disk හි ඇති files ලෙස ගත හැක. Files සදහා read-only, hidden, system, archive ලෙස attributes තිබිය හැක. මෙලෙස Sections සදහාද attributes තිබිය හැක. එම attributes තබා ගනුයේ Image Section headers හිය. එය array එකක් ආකාරයෙන් පවතී. එහි එක් එක් Sections සදහා වෙන වෙනම attributes තබා ගනී. Sections n ප්‍රමාණයක් තිබේ නම්, Image Section headers හි කොටස් n ප්‍රමාණයක attributes තබා ගනී. මෙම Sections .code, .data, .idata, .edata හා තවත් ආකාර වලින් තිබිය හැක.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;මෙහි උඩින්ම තියෙන්නෙ MS-DOS Stub එකයි. මෙම‍ගින් අපට පුලුවන් අදාල Executable එක valid Executable එකක්ද කියල දැනගන්න. මේ DOS Stub තවත් කොටස් 2 ක‍ට බෙදන්න පුළුවන්.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;1. IMAGE_DOS_HEADER&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;2. MS-DOS_STUB_PROGRAM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u  style="font-family:arial;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;IMAGE_DOS_HEADER&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;IMAGE_DOS_HEADER එක තවත් කොටස් කීපයකට වෙන් කරන්න පුළුවන්&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="40"&gt;i.&lt;/td&gt;&lt;td width="100"&gt;e_magic&lt;/td&gt;&lt;td&gt;Magic number&lt;br /&gt;e_magic සදහා තිබිය හැකි අගයන්&lt;br /&gt;IMAGE_DOS_SIGNATURE - 0x5A4D, MZ&lt;br /&gt;IMAGE_OS2_SIGNATURE - 0x454E, NE&lt;br /&gt;IMAGE_OS2_SIGNATURE_LE - 0x454C, LE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ii.&lt;/td&gt;&lt;td&gt;e_cblp&lt;/td&gt;&lt;td&gt;Bytes on last page of file&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;iii.&lt;/td&gt;&lt;td&gt;e_cp&lt;/td&gt;&lt;td&gt;Pages in file&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;iv.&lt;/td&gt;&lt;td&gt;e_crlc&lt;/td&gt;&lt;td&gt;Number of relocation entries stored after the header.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;v.&lt;/td&gt;&lt;td&gt;e_cparhdr&lt;/td&gt;&lt;td&gt;Size of header in paragraphs&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;vi.&lt;/td&gt;&lt;td&gt;e_minalloc&lt;/td&gt;&lt;td&gt;Minimum extra paragraphs needed&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;vii.&lt;/td&gt;&lt;td&gt;e_maxalloc&lt;/td&gt;&lt;td&gt;Maximum extra paragraphs needed&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;viii.&lt;/td&gt;&lt;td&gt;e_ss&lt;/td&gt;&lt;td&gt;Relative value of the stack segment.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ix.&lt;/td&gt;&lt;td&gt;e_sp&lt;/td&gt;&lt;td&gt;Initial value of the SP register.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;x.&lt;/td&gt;&lt;td&gt;e_csum&lt;/td&gt;&lt;td&gt;Word checksum.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xi.&lt;/td&gt;&lt;td&gt;e_ip&lt;/td&gt;&lt;td&gt;Initial value of the IP register.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xii.&lt;/td&gt;&lt;td&gt;e_cs&lt;/td&gt;&lt;td&gt;Initial value of the CS register.(relative to the segment the program was loaded at.)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xiii.&lt;/td&gt;&lt;td&gt;e_lfarlc&lt;/td&gt;&lt;td&gt;File address of relocation table&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xiv.&lt;/td&gt;&lt;td&gt;e_ovno&lt;/td&gt;&lt;td&gt;Overlay number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xv.&lt;/td&gt;&lt;td&gt;e_res(0)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xvi.&lt;/td&gt;&lt;td&gt;e_res(1)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xvii.&lt;/td&gt;&lt;td&gt;e_res(2)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xviii.&lt;/td&gt;&lt;td&gt;e_res(3)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xix.&lt;/td&gt;&lt;td&gt;e_oemid&lt;/td&gt;&lt;td&gt;OEM identifier (for e_oeminfo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xx.&lt;/td&gt;&lt;td&gt;e_oeminfo&lt;/td&gt;&lt;td&gt;OEM information&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xxi.&lt;/td&gt;&lt;td&gt;e_res2(0)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xxii.&lt;/td&gt;&lt;td&gt;e_res2(1)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xxiii.&lt;/td&gt;&lt;td&gt;e_res2(2)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xiv.&lt;/td&gt;&lt;td&gt;e_res2(3)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xv.&lt;/td&gt;&lt;td&gt;e_res2(4)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xvi.&lt;/td&gt;&lt;td&gt;e_res2(5)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xvii.&lt;/td&gt;&lt;td&gt;e_res2(6)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xviii.&lt;/td&gt;&lt;td&gt;e_res2(7)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xxix.&lt;/td&gt;&lt;td&gt;e_res2(8)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xxx.&lt;/td&gt;&lt;td&gt;e_res2(9)&lt;/td&gt;&lt;td&gt;Reserved words&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;xxxi.&lt;/td&gt;&lt;td&gt;e_lfanew&lt;/td&gt;&lt;td&gt;File address of new exe header&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial;"&gt;DQ - Qword    DD - Dword    DW - Word    DB - Byte&lt;/pre&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;MS-DOS_STUB_PROGRAM හිදී Executable එක invalid නම් "This program cannot be run in DOS mode." හෝ වෙනත් Text එකක් දර්ශනය කරමින් ඉවත් වේ. මෙම දර්ශනය වන Text එක assembler/compiler එක මගින් යොදන Text එකකි. Executable එක valid නම් IMAGE_NT_HEADERS සිට ඉදිරියට ඇති වැඩසටහන ආරම්භ කරයි. ඉහත e_lfarlc මගින් MS-DOS_STUB_PROGRAM හි ආරම්භක ස්ථානයත් e_lfnew මගින් IMAGE_NT_HEADERS හි ආරම්භක ස්ථානයත් දක්වා ඇත. එමගින් අපට MS-DOS_STUB_PROGRAM හි විශාලත්වය ලබා ගත හැක.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;මෙහි DOS_STUB_PROGRAM හි ආරම්භක ස්ථානය දක්වා ඇත්තේ 16 bit word එකකිනි. IMAGE_NT_HEADERS හි ආරම්භක ස්ථානය දක්වා ඇත්තේ 3&lt;/span&gt;&lt;span style="font-family:arial;"&gt;2 bit word එකකිනි. එමගින් පැහැදිලි වනුයේ DOS Stub එක 16 bit-windows වැඩසටහක් බවත් IMAGE_NT_HEADERS සිට ඉදිරියට 32 bit-windows වැඩසටහනක් ඇති බවත්ය.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;MS-DOS Stub හි පිහිටීම&lt;br /&gt;&lt;/span&gt;&lt;pre style="font-family: arial;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DjOXME_LTpo/SqXnmN3auhI/AAAAAAAAABE/m9UMdTJFRO4/s1600-h/Untitled-4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 415px; height: 315px;" src="http://2.bp.blogspot.com/_DjOXME_LTpo/SqXnmN3auhI/AAAAAAAAABE/m9UMdTJFRO4/s400/Untitled-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5378959973707069970" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;සැ.යු. :- Data කියවීමේදී Right-to-Left Order එක‍ට කියවිය යුතුය.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;උදා:-  F0 00 00 00 ලෙස ඇත්නම් 00 00 00 F0 වන ආකාරයට කියවිය යුතුය.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;12 34 56 78 ලෙස ඇත්නම් 78 56 34 12 වන ආකාරය‍ට කියවිය යුතුය.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#include&lt;/span&gt; "pshpack1.h"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#define&lt;/span&gt; IMAGE_DOS_SIGNATURE                 0x4D5A      &lt;span style="color: rgb(0, 153, 0);"&gt;// MZ&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#define&lt;/span&gt; IMAGE_OS2_SIGNATURE                 0x4E45      &lt;span style="color: rgb(0, 153, 0);"&gt;// NE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#define&lt;/span&gt; IMAGE_OS2_SIGNATURE_LE              0x4C45      &lt;span style="color: rgb(0, 153, 0);"&gt;// LE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#define&lt;/span&gt; IMAGE_NT_SIGNATURE                  0x50450000  &lt;span style="color: rgb(0, 153, 0);"&gt;// PE00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; _IMAGE_DOS_HEADER {      &lt;span style="color: rgb(0, 153, 0);"&gt;// DOS .EXE header&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_magic;                     &lt;span style="color: rgb(0, 153, 0);"&gt;// Magic number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_cblp;                      &lt;span style="color: rgb(0, 153, 0);"&gt;// Bytes on last page of file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_cp;                        &lt;span style="color: rgb(0, 153, 0);"&gt;// Pages in file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_crlc;                      &lt;span style="color: rgb(0, 153, 0);"&gt;// Relocations&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_cparhdr;                   &lt;span style="color: rgb(0, 153, 0);"&gt;// Size of header in paragraphs&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_minalloc;                  &lt;span style="color: rgb(0, 153, 0);"&gt;// Minimum extra paragraphs needed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_maxalloc;                  &lt;span style="color: rgb(0, 153, 0);"&gt;// Maximum extra paragraphs needed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_ss;                        &lt;span style="color: rgb(0, 153, 0);"&gt;// Initial (relative) SS value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_sp;                        &lt;span style="color: rgb(0, 153, 0);"&gt;// Initial SP value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_csum;                      &lt;span style="color: rgb(0, 153, 0);"&gt;// Checksum&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_ip;                        &lt;span style="color: rgb(0, 153, 0);"&gt;// Initial IP value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_cs;                        &lt;span style="color: rgb(0, 153, 0);"&gt;// Initial (relative) CS value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_lfarlc;                    &lt;span style="color: rgb(0, 153, 0);"&gt;// File address of relocation table&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_ovno;                      &lt;span style="color: rgb(0, 153, 0);"&gt;// Overlay number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_res[4];                    &lt;span style="color: rgb(0, 153, 0);"&gt;// Reserved words&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_oemid;                     &lt;span style="color: rgb(0, 153, 0);"&gt;// OEM identifier (for e_oeminfo)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_oeminfo;                   &lt;span style="color: rgb(0, 153, 0);"&gt;// OEM information; e_oemid specific&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;WORD&lt;/span&gt;   e_res2[10];                  &lt;span style="color: rgb(0, 153, 0);"&gt;// Reserved words&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;LONG&lt;/span&gt;   e_lfanew;                    &lt;span style="color: rgb(0, 153, 0);"&gt;// File address of new exe header&lt;/span&gt;&lt;br /&gt;} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;(මෙය microsoft ආයතනයෙන් සකසන ලද winnt.h නැමැති source file එකෙහි හදුන්වා ඇති ආකාරය වේ.)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-683477099906219379?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/683477099906219379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/683477099906219379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/683477099906219379'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/09/win32-portable-executable-format-part-1.html' title='සිංහලෙන් win32 Portable Executable format - part 1'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_DjOXME_LTpo/SqSP5YeMcZI/AAAAAAAAAA0/EWdVGYVBWco/s72-c/Untitled-3.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-7414696438409518038</id><published>2009-06-18T14:53:00.003+05:30</published><updated>2009-06-18T14:59:20.212+05:30</updated><title type='text'></title><content type='html'>For free download software/Games/Films visit my web page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maduranga.page.tl"&gt;http://maduranga.page.tl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-7414696438409518038?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/7414696438409518038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/06/for-free-download-softwaregamesfilms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7414696438409518038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7414696438409518038'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/06/for-free-download-softwaregamesfilms.html' title=''/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1888360075675984083.post-7609276881984340347</id><published>2009-06-09T10:42:00.000+05:30</published><updated>2009-06-09T10:47:09.320+05:30</updated><title type='text'>Life without computer</title><content type='html'>&lt;b&gt;&lt;span style="color:blue;"&gt;An application was for employment&lt;br /&gt;A program was a TV show&lt;br /&gt;A cursor used profanity&lt;br /&gt;And a keyboard was on a piano!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Memory was something that you lost with age&lt;br /&gt;And a CD was a bank account&lt;br /&gt;And if you had a corrupted disk&lt;br /&gt;It would hurt when you found out!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Compress was what you did to garbage&lt;br /&gt;Not something you did to a file&lt;br /&gt;And if you unzipped anything in public&lt;br /&gt;You'd be in jail for a while!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Log on was adding wood to a fire&lt;br /&gt;A hard drive was a trip on the road&lt;br /&gt;A mouse pad was where a mouse lived&lt;br /&gt;And a backup happened to the commode!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cutting, you did with a pocket knife,&lt;br /&gt;Pasting, you did with glue.&lt;br /&gt;The Web was where a spider lived&lt;br /&gt;And a virus was the flu! &lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1888360075675984083-7609276881984340347?l=gmaduranga.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gmaduranga.blogspot.com/feeds/7609276881984340347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gmaduranga.blogspot.com/2009/06/life-without-computer.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7609276881984340347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1888360075675984083/posts/default/7609276881984340347'/><link rel='alternate' type='text/html' href='http://gmaduranga.blogspot.com/2009/06/life-without-computer.html' title='Life without computer'/><author><name>Maduranga</name><uri>http://www.blogger.com/profile/08376785012564153439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DjOXME_LTpo/TLgoyl2ynlI/AAAAAAAAAJ8/1Cw9DBPxFcY/S220/AD34hIhqznTs--CsHnc8XXj-JWKHWFnWAF5nQISczN5mwwIK7IlcK6kg3sO2KfthTJWToAq9kWvyq3SH_ZZhHYSKbmAj_nv1w8vcw7G8sp_WYJNvZ6gOG-4.jpeg'/></author><thr:total>2</thr:total></entry></feed>
