<?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-8553936691209849313</id><updated>2012-02-05T08:54:01.487-08:00</updated><category term='SYSTEM ADMIN TOOLS- TCPview'/><category term='FPort'/><category term='TABLE QUERY'/><category term='WIRELESS BATTERY- LIMITED POWER SUPPLY'/><category term='or Vision'/><category term='ASP.NET VS SQL SERVER'/><category term='registry'/><category term='Airfare'/><category term='SQL MULTIPLE'/><category term='hydro technology'/><category term='SYMBANION'/><category term='from SCCP (Skinny)'/><category term='Phishing Scam'/><category term='IEEE Workshops on Wireless LAN'/><category term='Military'/><category term='for'/><category term='SSL Clone'/><category term='TROJAN AGE ON A'/><category term='How a Smurf Attack Works'/><category term='Scary Unmanned Aerial'/><category term='Different Connecting Strings'/><category term='CONNECTION'/><category term='CD/DVD'/><category term='to SIP Firmware'/><category term='task manager'/><category term='STRING'/><category term='on XP XML'/><category term='restore firewall'/><category term='using IP'/><category term='DropDownList1_SelectedIndexChanged'/><category term='Inzider'/><category term='SQL SUB QUERY'/><category term='VARIOUS TYPES OF SCAM - NOW A DAY Work at Home Scam'/><category term='WITH CONDITION'/><category term='VIEW'/><category term='Address'/><category term='CLOSE LOOK AT'/><category term='Check Scams'/><category term='Enable'/><category term='ASP.NET 1.1 WINDOWS SERVER 2003  IIS6.0 RUNNABLE CODES'/><category term='Shipping Scam'/><category term='Drive'/><category term='Active Ports'/><category term='N ASP.NET'/><category term='IN ASP.NET'/><category term='AND'/><category term='Vehicles Used by the'/><category term='CONNECTING'/><category term='INJECTION IN SQL - PHP BY REVEAL CODES'/><category term='SQL DATABASE'/><category term='error solution'/><category term='Converting a Cisco IP Phone'/><category term='JSP Processing Error'/><category term='Core Differences Between IIS and the ASP.NET Development Server'/><category term='VB.NET 2008 DATA PROGRAMMING WITH CRYSTAL REPORT'/><category term='POCOS IN VS.NET 2010'/><category term='Enabling ASP.NET 2.0 in Vista RTM'/><category term='KORNETO'/><category term='Geo-Location'/><category term='CONTROLLOR AND POCOS I'/><category term='PASSWORD SNIFFER'/><category term='ASP.Net'/><category term='MODEL'/><title type='text'>ALOKRAJ- HITECH</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-4700079574074423496</id><published>2011-09-17T00:04:00.000-07:00</published><updated>2011-09-17T00:06:54.280-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drive'/><category scheme='http://www.blogger.com/atom/ns#' term='CD/DVD'/><category scheme='http://www.blogger.com/atom/ns#' term='Enable'/><title type='text'>Enable CD/DVD Drive</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-5NUUyHOQc48/TnRHBjIUI_I/AAAAAAAACH0/OjPNzjzqEN8/s1600/Photo2080.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-5NUUyHOQc48/TnRHBjIUI_I/AAAAAAAACH0/OjPNzjzqEN8/s320/Photo2080.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5653221524192371698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Enable CD/DVD Drive&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Refresh the CD and DVD drivers list in the Windows registry. &lt;br /&gt;&lt;br /&gt;Disclaimer: The registry contains system-related information that is critical to your computer and applications. Before modifying the registry, be sure to make a backup copy of it. Adobe doesn't provide support for problems that arise from improperly modifying the registry. Adobe strongly recommends that you have experience editing system files before you modify the registry. For information on the Windows Registry Editor, see the Windows documentation or contact Microsoft Technical Support.&lt;br /&gt;&lt;br /&gt;To refresh the CD and DVD drivers list in the Windows registry:&lt;br /&gt;&lt;br /&gt;Important: After you refresh the driver list in the Windows registry, you may need to reinstall any other CD or DVD burning applications on your computer. If you restart Windows after this procedure and other CD or DVD burning applications do not recognize the CD or DVD drive, then reinstall those applications.&lt;br /&gt;&lt;br /&gt;1.Uninstall your Adobe application. &lt;br /&gt;2.Open Registry Editor: &lt;br /&gt;&lt;br /&gt;◦On Windows 2000 and XP: Choose Start &gt; Run. Type regedit in the Open text box and click OK. &lt;br /&gt;◦On Windows Vista: Choose Start. Type regedit in the Search text box, and press Enter. &lt;br /&gt;3.In the left pane of Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class and select the {4D36E965-E325-11CE-BFC1-08002BE10318} key, which appears as a folder. &lt;br /&gt;4.Select File &gt; Export (Windows XP and Vista) or Registry &gt; Export Registry File (Windows 2000). &lt;br /&gt;5.In the Export Registry File dialog box, select Selected Branch under Export Range, name the file (for example, CDDVDkey.reg), and click Save to save the file to the Desktop. &lt;br /&gt;6.In the right panel of the Registry Editor, select the LowerFilters line, and then choose Edit &gt; Delete. Click Yes in the Confirm Key Delete dialog box. &lt;br /&gt;7.Select the UpperFilters line, and then choose Edit &gt; Delete. Click Yes in the Confirm Key Delete dialog box. &lt;br /&gt;8.Close Registry Editor. &lt;br /&gt;9.Open Device Manager: &lt;br /&gt;&lt;br /&gt;◦On Windows 2000 and XP: Choose Start &gt; Control Panel. Double-click the System icon, click on the Hardware Tab, then click on Device Manager. &lt;br /&gt;◦On Windows Vista: Choose Start &gt; Control Panel, double-click System, then click Device Manager in the Tasks pane. &lt;br /&gt;10.Click on the plus symbol next to DVD/CD-ROM Drives. &lt;br /&gt;11.For each DVD-ROM or CD-ROM drive listed, select the icon then choose Action &gt; Uninstall. &lt;br /&gt;12.Restart Windows. &lt;br /&gt;13.Windows will automatically detect and reinstall your DVD-ROM or CD-ROM drives. You can verify that the drives are installed by viewing them in Device Manager (see step 9). If the drives are not present, open Device Manger and choose Actions &gt; Scan For Hardware Changes. &lt;br /&gt;14.Reinstall your Adobe application. &lt;br /&gt;15.Restart Windows. &lt;br /&gt;Important: If this solution doesn't resolve the problem with the application you reinstalled, then you should restore the CD and DVD drivers list in the Windows registry.&lt;br /&gt;&lt;br /&gt;To restore the exported CD and DVD drivers list:&lt;br /&gt;&lt;br /&gt;1.Double-click the registry key you exported. &lt;br /&gt;2.Close the Registry Editor. &lt;br /&gt;3.Restart Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-4700079574074423496?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/4700079574074423496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/09/enable-cddvd-drive.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/4700079574074423496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/4700079574074423496'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/09/enable-cddvd-drive.html' title='Enable CD/DVD Drive'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-5NUUyHOQc48/TnRHBjIUI_I/AAAAAAAACH0/OjPNzjzqEN8/s72-c/Photo2080.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-8753547833484132851</id><published>2011-07-25T04:20:00.001-07:00</published><updated>2011-07-25T04:26:53.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TABLE QUERY'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL MULTIPLE'/><category scheme='http://www.blogger.com/atom/ns#' term='WITH CONDITION'/><title type='text'>SQL MULTIPLE TABLE QUERY WITH CONDITION</title><content type='html'>&lt;blockquote&gt;SQL MULTIPLE TABLE QUERY WITH CONDITION&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-KJpe_fgcj60/Ti1RmNQ_rcI/AAAAAAAACHs/f4QNLgRRLkI/s1600/ty.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-KJpe_fgcj60/Ti1RmNQ_rcI/AAAAAAAACHs/f4QNLgRRLkI/s320/ty.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5633248425748180418" /&gt;&lt;/a&gt;&lt;br /&gt;  If Not Page.IsPostBack Then&lt;br /&gt;    Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;    Dim adp As New SqlDataAdapter("select DEPT_NAME from DEPTT" , conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;    adp.Fill(dset, "DEPTT")&lt;br /&gt;    datagrid1.datasource=dset&lt;br /&gt;    datagrid1.databind()&lt;br /&gt;    Dropdownlist1.DataSource = dset&lt;br /&gt;    Dropdownlist1.DataTextField = "DEPT_NAME"&lt;br /&gt;    Dropdownlist1.DataValueField = "DEPT_NAME"&lt;br /&gt;    Dropdownlist1.DataBind()&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;Sub DropDownList1_SelectedIndexChanged(sender As Object, e As System.EventArgs)&lt;br /&gt;     Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;     Dim adp1 As New SqlDataAdapter("select SECT_NAME from sectmast where ( dept_code = (select dept_code from deptt where &lt;br /&gt;&lt;br /&gt;dept_name=" &amp; "'" &amp; Dropdownlist1.TEXT &amp; "'" &amp; "))" , conn)&lt;br /&gt;     Dim dset1 As New Data.DataSet&lt;br /&gt;     adp1.Fill(dset1, "sectmast")&lt;br /&gt;     Dropdownlist2.DataSource = dset1&lt;br /&gt;     Dropdownlist2.DataTextField = "SECT_NAME"&lt;br /&gt;     Dropdownlist2.DataValueField = "SECT_NAME"&lt;br /&gt;     Dropdownlist2.DataBind()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Sub DropDownList3_SelectedIndexChanged(sender As Object, e As System.EventArgs)&lt;br /&gt;     Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;     Dim adp2 As New SqlDataAdapter("SELECT innder.EMP_CODE, innder.F_NAME, innder.L_NAME, DESGNMAS.DESGN_DTL,innder.PBASIC, &lt;br /&gt;&lt;br /&gt;innder.SALARY_HD FROM EMPMAST innder INNER JOIN DESGNMAS ON innder.DESGN_CD = DESGNMAS.DESGN_CD  where ( dept_code IN (select &lt;br /&gt;&lt;br /&gt;dept_code from deptt where dept_name=" &amp; "'" &amp; Dropdownlist1.TEXT &amp; "'" &amp; ") AND SECT_CODE IN (select  SECT_CODE from &lt;br /&gt;&lt;br /&gt;sectmast where sect_name=" &amp; "'" &amp; Dropdownlist2.TEXT &amp; "'" &amp; ")) AND salary_hd=" &amp; "'" &amp; Dropdownlist3.TEXT &amp; "'", conn)&lt;br /&gt;     Dim dset2 As New Data.DataSet&lt;br /&gt;     adp2.Fill(dset2, "innder")&lt;br /&gt;     datagrid1.datasource=dset2&lt;br /&gt;     datagrid1.databind()&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;" HERE IN MULTIPLE QUERY WE HAVE TO USE ALIAS NAME OF OUR FIRST TABLE AS WE HAVE TAKEN "indder" in place of our table "EMPMAST" in query as well as we use "IN" in place of '=' condition and we have to use "INNER JOIN" in place of From EMPMAST, DESGNMAS as well as to link between both table we have to use :&lt;br /&gt;ON innder.Desgn_cd=Desgnmas.Desgn_cd  but If we want to unite two table result in one DATASET then we may use this like:&lt;br /&gt;Select EMP_CODE FROM EMPMAST UNION SELECT DESGN_CD FROM DESGNMAS...&lt;br /&gt;&lt;br /&gt;IN BODY :&lt;br /&gt;&lt;br /&gt;&lt;asp:DropDownList ID="DropDownList1" runat="server" Width="128px" &lt;br /&gt;&lt;br /&gt;OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"&gt;&lt;br /&gt;          &lt;br /&gt;&lt;asp:ListItem&gt;DEPARTMENT&lt;/asp:ListItem&gt;&lt;br /&gt;        &lt;/asp:DropDownList&gt;&lt;br /&gt;        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;asp:Label ID="Label2" runat="server" Font-Bold="True" ForeColor="green" Text=" SECTION :"&lt;br /&gt;            Width="104px"&gt;&lt;/asp:Label&gt;&lt;br /&gt;        &amp;nbsp; &amp;nbsp;&lt;br /&gt; &lt;asp:DropDownList ID="DropDownList2" runat="server" Width="128px"&gt;&lt;br /&gt;          &lt;br /&gt;&lt;asp:ListItem&gt;SECTION&lt;/asp:ListItem&gt;&lt;br /&gt;        &lt;/asp:DropDownList&gt;&lt;br /&gt;        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;asp:Label ID="Label3" runat="server" Font-Bold="True" ForeColor="green" Text="PLAN/NON PLAN :"&lt;br /&gt;            Width="104px"&gt;&lt;/asp:Label&gt;&lt;br /&gt;        &amp;nbsp; &amp;nbsp;&lt;br /&gt;        &lt;asp:DropDownList ID="DropDownList3" runat="server" Width="128px" &lt;br /&gt;&lt;br /&gt;OnSelectedIndexChanged="DropDownList3_SelectedIndexChanged" AutoPostBack="true"&gt;&lt;br /&gt;          &lt;br /&gt;&lt;asp:ListItem&gt;N&lt;/asp:ListItem&gt;&lt;br /&gt;&lt;asp:ListItem&gt;P&lt;/asp:ListItem&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/asp:DropDownList&gt;&lt;br /&gt;        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;        &lt;/asp:DropDownList&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-8753547833484132851?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/8753547833484132851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/sql-multiple-table-query-with-condition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8753547833484132851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8753547833484132851'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/sql-multiple-table-query-with-condition.html' title='SQL MULTIPLE TABLE QUERY WITH CONDITION'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-KJpe_fgcj60/Ti1RmNQ_rcI/AAAAAAAACHs/f4QNLgRRLkI/s72-c/ty.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-1663862795356224858</id><published>2011-07-23T04:19:00.000-07:00</published><updated>2011-07-23T04:27:38.136-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL SUB QUERY'/><category scheme='http://www.blogger.com/atom/ns#' term='DropDownList1_SelectedIndexChanged'/><category scheme='http://www.blogger.com/atom/ns#' term='AND'/><title type='text'>DropDownList1_SelectedIndexChanged AND SQL SUB QUERY</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-w9v_1oWdV9E/TiqvT0CP1DI/AAAAAAAACHc/XE5lguTNxOY/s1600/as.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://3.bp.blogspot.com/-w9v_1oWdV9E/TiqvT0CP1DI/AAAAAAAACHc/XE5lguTNxOY/s320/as.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632507038900671538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;DropDownList1_SelectedIndexChanged AND SQL SUB QUERY&lt;/blockquote&gt;&lt;br /&gt;Let Suppose you need to refine Dropdownlist2 contents according to list item of Dropdownlist1 which are connected with data base then first you have to use :&lt;br /&gt;  &lt;asp:DropDownList ID="DropDownList1" runat="server" Width="128px" &lt;br /&gt;&lt;br /&gt;OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"&gt;&lt;br /&gt;&lt;br /&gt;autopostback should true and on indexchanged event you have to fire :&lt;br /&gt;Sub DropDownList1_SelectedIndexChanged(sender As Object, e As System.EventArgs)&lt;br /&gt;     Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;     Dim adp1 As New SqlDataAdapter("select SECT_NAME from sectmast where ( dept_code = (select dept_code from deptt where &lt;br /&gt;&lt;br /&gt;dept_name=" &amp; "'" &amp; Dropdownlist1.TEXT &amp; "'" &amp; "))" , conn)&lt;br /&gt;     Dim dset1 As New Data.DataSet&lt;br /&gt;     adp1.Fill(dset1, "sectmast")&lt;br /&gt;     Dropdownlist2.DataSource = dset1&lt;br /&gt;     Dropdownlist2.DataTextField = "SECT_NAME"&lt;br /&gt;     Dropdownlist2.DataValueField = "SECT_NAME"&lt;br /&gt;     Dropdownlist2.DataBind()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;where at load event already you have loaded dropdownlist1 with data like :&lt;br /&gt;&lt;br /&gt;If Not Page.IsPostBack Then&lt;br /&gt;    Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;    Dim adp As New SqlDataAdapter("select DEPT_NAME from DEPTT" , conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;    adp.Fill(dset, "DEPTT")&lt;br /&gt;    datagrid1.datasource=dset&lt;br /&gt;    datagrid1.databind()&lt;br /&gt;    Dropdownlist1.DataSource = dset&lt;br /&gt;    Dropdownlist1.DataTextField = "DEPT_NAME"&lt;br /&gt;    Dropdownlist1.DataValueField = "DEPT_NAME"&lt;br /&gt;    Dropdownlist1.DataBind()&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-JcM6oQ2tqSo/TiqvmSC1XfI/AAAAAAAACHk/WSiMdsTjdiA/s1600/se.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 261px; height: 320px;" src="http://3.bp.blogspot.com/-JcM6oQ2tqSo/TiqvmSC1XfI/AAAAAAAACHk/WSiMdsTjdiA/s320/se.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632507356193840626" /&gt;&lt;/a&gt;&lt;br /&gt; and your header should be :&lt;br /&gt;&lt;%@ Page Language="VB" %&gt;&lt;br /&gt;&lt;%@ import Namespace="System.Data.Sqlclient" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Data" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Web.UI.WebControls" %&gt;&lt;br /&gt;&lt;br /&gt;dropdownlist should be like :&lt;br /&gt;&lt;asp:DropDownList ID="DropDownList1" runat="server" Width="128px" &lt;br /&gt;&lt;br /&gt;OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"&gt;&lt;br /&gt;          &lt;br /&gt;&lt;asp:ListItem&gt;MEMO_NO&lt;/asp:ListItem&gt;&lt;br /&gt;        &lt;/asp:DropDownList&gt;&lt;br /&gt;but here since you are initiating your dropdownlist at run tine loading with datatable then here listitem should not be added.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-1663862795356224858?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/1663862795356224858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/dropdownlist1selectedindexchanged-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1663862795356224858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1663862795356224858'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/dropdownlist1selectedindexchanged-and.html' title='&lt;blockquote&gt;DropDownList1_SelectedIndexChanged AND SQL SUB QUERY&lt;/blockquote&gt;'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-w9v_1oWdV9E/TiqvT0CP1DI/AAAAAAAACHc/XE5lguTNxOY/s72-c/as.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-2905404500528424995</id><published>2011-07-22T00:32:00.000-07:00</published><updated>2011-07-22T00:52:58.931-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONNECTION'/><category scheme='http://www.blogger.com/atom/ns#' term='IN ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL DATABASE'/><title type='text'>SQL DATABASE CONNECTION IN ASP.NET</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-VlvXeW8E2qw/Tikn4uVt5II/AAAAAAAACGc/Aerk7UxhtNI/s1600/a6.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://3.bp.blogspot.com/-VlvXeW8E2qw/Tikn4uVt5II/AAAAAAAACGc/Aerk7UxhtNI/s320/a6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632076664468792450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;SQL DATABASE CONNECTION IN ASP.NET&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;%@ Page Language="VB" %&gt;&lt;br /&gt;&lt;%@ import Namespace="System.Data.Sqlclient" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Data" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Web.UI.WebControls" %&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub Page_Load&lt;br /&gt;&lt;br /&gt;  If Not Page.IsPostBack Then&lt;br /&gt;    Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;    Dim adp As New SqlDataAdapter("select * from ALLCDMAS", conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;    adp.Fill(dset, "ALLCDMAS")&lt;br /&gt;    datagrid1.datasource=dset&lt;br /&gt;    datagrid1.databind()&lt;br /&gt;  End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-sL43DjvYJkE/Tikq284eIYI/AAAAAAAACGk/EqocnZpTqGk/s1600/a1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/-sL43DjvYJkE/Tikq284eIYI/AAAAAAAACGk/EqocnZpTqGk/s320/a1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632079932547801474" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-nylL-KlWkkQ/TikrA4OfaHI/AAAAAAAACGs/40N8KfEEaaY/s1600/a2.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/-nylL-KlWkkQ/TikrA4OfaHI/AAAAAAAACGs/40N8KfEEaaY/s320/a2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080103096674418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-atdAxshCvd0/TikrH0IXQxI/AAAAAAAACG0/i5Dj-dFNBEE/s1600/a3.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/-atdAxshCvd0/TikrH0IXQxI/AAAAAAAACG0/i5Dj-dFNBEE/s320/a3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080222256317202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/--_RrcxOOVKg/TikrO2oaFvI/AAAAAAAACG8/swakB03Lk90/s1600/a4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/--_RrcxOOVKg/TikrO2oaFvI/AAAAAAAACG8/swakB03Lk90/s320/a4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080343186675442" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-Fy0eu8-6m8A/TikrVDU1QKI/AAAAAAAACHE/ctLV3udsYw0/s1600/a5.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/-Fy0eu8-6m8A/TikrVDU1QKI/AAAAAAAACHE/ctLV3udsYw0/s320/a5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080449673445538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;BEFORE DOING THIS, YOU MUST HAVE TO GRANT ACCESSING PERMISSION FOR ASP.NET CLIENT USER TO YOUR SQL SERVER USING SQL SERVER &gt; ENTERPRISE MANAGER &gt; CONSOLE ROOT &gt; MICROSOFT SERVER &gt; SERVER GROUP &gt; LOCAL SERVER &gt; SECURITY &gt; LOGINS &gt; RITGH CLICK AND SELECT NEW LOGIN OPTION THEN &gt; CLICK ... BUTTON AT NAME TEXTBOX &gt; THEN SELECT ASP.NET USER TYPE &gt; ADD &gt; OK &gt; THEN SPECIFY DEFAULT DATA BASE TO YOUR DATABASE NAME THEN ASSIGN SERVER ROLE &gt; SYSTEM ADMIN &gt; DATABASE ACCESS &gt; CHECK YOUR DATABASE NAME THEN OK.  NOW ENABLE NAMED PIPE FOR YOUR SERVER REMOTE ACCESS AS \\YOUR SERVER IP\pipe\sql\query , NOW GO TO YOUR CODE PAGE AND INSERT AS BELOW :&lt;br /&gt;&lt;br /&gt;let suppose our server is 10.182.186.100  and database is pay-roll and i need ALLCDMAS table accessing then i have to insert like this _________&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;%@ Page Language="VB" %&gt;&lt;br /&gt;&lt;%@ import Namespace="System.Data.Sqlclient" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Data" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Web.UI.WebControls" %&gt;&lt;br /&gt;&lt;br /&gt;Sub Page_Load&lt;br /&gt;&lt;br /&gt;  If Not Page.IsPostBack Then&lt;br /&gt;    Dim conn As New SqlConnection("Data Source=\\10.182.186.100\pipe\sql\query;Initial Catalog=pay-roll;")&lt;br /&gt;    Dim adp As New SqlDataAdapter("select * from ALLCDMAS", conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;    adp.Fill(dset, "ALLCDMAS")&lt;br /&gt;    datagrid1.datasource=dset&lt;br /&gt;    datagrid1.databind()&lt;br /&gt;  End If&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-h-sbxs98Unw/Tikrbcmwl6I/AAAAAAAACHM/_ozKSy_ayaU/s1600/A7.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/-h-sbxs98Unw/Tikrbcmwl6I/AAAAAAAACHM/_ozKSy_ayaU/s320/A7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080559538739106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-RfWEwZPAXgw/Tikrs28lNLI/AAAAAAAACHU/RztOj54tBgg/s1600/Photo2023.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-RfWEwZPAXgw/Tikrs28lNLI/AAAAAAAACHU/RztOj54tBgg/s320/Photo2023.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5632080858667365554" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-2905404500528424995?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/2905404500528424995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/sql-database-connection-in-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2905404500528424995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2905404500528424995'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/sql-database-connection-in-aspnet.html' title='SQL DATABASE CONNECTION IN ASP.NET'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-VlvXeW8E2qw/Tikn4uVt5II/AAAAAAAACGc/Aerk7UxhtNI/s72-c/a6.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-4045795820341097970</id><published>2011-07-21T01:08:00.000-07:00</published><updated>2011-07-21T01:26:17.938-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='for'/><category scheme='http://www.blogger.com/atom/ns#' term='Different Connecting Strings'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>Different Connecting Strings for ASP.Net</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-nfaBSGa4kEo/TifiWCLKKeI/AAAAAAAACGU/CvOUy9pz70c/s1600/2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 173px;" src="http://4.bp.blogspot.com/-nfaBSGa4kEo/TifiWCLKKeI/AAAAAAAACGU/CvOUy9pz70c/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5631718727218768354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Different Connecting Strings for ASP.Net&lt;/blockquote&gt;&lt;br /&gt;Standard security&lt;br /&gt;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;&lt;br /&gt;&lt;br /&gt;with DSN:&lt;br /&gt;ODBC DSNType:    ODBC Driver&lt;br /&gt;Usage:  DSN=myDSN or FILEDSN=c:\myDsnFile.dsnManufacturer:  Microsoft&lt;br /&gt;More info about this driver »Customize string&lt;br /&gt;example values »System DSN&lt;br /&gt;DSN=myDsn;Uid=myUsername;Pwd=;  File DSN&lt;br /&gt;FILEDSN=c:\myDsnFile.dsn;Uid=myUsername;Pwd=;  .NET Framework Data Provider for ODBCType:    .NET Framework Wrapper Class Library&lt;br /&gt;Usage:  System.Data.Odbc.OdbcConnectionManufacturer:  Microsoft&lt;br /&gt;More info about this wrapper class library »Customize string&lt;br /&gt;example values »Bridging to ODBC DSN&lt;br /&gt;This is just one connection string sample for the wrapping OdbcConnection class that calls the underlying ODBC Driver. See respective ODBC driver for more connection strings to use with this class.DSN=myDsn;Uid=myUsername;Pwd=;&lt;br /&gt;&lt;br /&gt;Connectingstring="DSN="mydsnname"&lt;br /&gt;&lt;br /&gt;With database password&lt;br /&gt;This is the connection string to use when you have an Access 2007 database protected with a password using the "Set Database Password" function in Access.Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;Some reports of problems with password longer than 14 characters. Also that some characters might cause trouble. If you are having problems, try change password to a short one with normal characters. DataDirectory functionality&lt;br /&gt;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Persist Security Info=False;  .NET Framework Data Provider for OLE DBType:    .NET Framework Wrapper Class Library&lt;br /&gt;Usage:  System.Data.OleDb.OleDbConnectionManufacturer:  Microsoft&lt;br /&gt;More info about this wrapper class library »Customize string example values »Bridging to ACE OLEDB 12.0&lt;br /&gt;This is just one connection string sample for the wrapping OleDbConnection class that calls the underlying OLEDB provider. See respective OLE DB provider for more connection strings to use with this class.Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;  Microsoft Access accdb ODBC DriverType:    ODBC Driver&lt;br /&gt;Usage:  Driver={Microsoft Access Driver (*.mdb, *.accdb}Manufacturer:  Microsoft&lt;br /&gt;Customize string example values »Standard Security&lt;br /&gt;Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\mydatabase.accdb;Uid=Admin;Pwd=;  Workgroup&lt;br /&gt;Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\mydatabase.accdb;SystemDB=C:\mydatabase.mdw;No changes were made to the .mdw file format for Office Access 2007. The Office Access 2007 Workgroup Manager creates .mdw files that are identical to those that are created in Access 2000 through Access 2003. The .mdw files that are created in those earlier versions can be used by databases in Office Access 2007.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-4045795820341097970?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/4045795820341097970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/different-connecting-strings-for-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/4045795820341097970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/4045795820341097970'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/different-connecting-strings-for-aspnet.html' title='Different Connecting Strings for ASP.Net'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-nfaBSGa4kEo/TifiWCLKKeI/AAAAAAAACGU/CvOUy9pz70c/s72-c/2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-3884282186634629799</id><published>2011-07-21T00:58:00.001-07:00</published><updated>2011-07-21T01:04:15.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='error solution'/><category scheme='http://www.blogger.com/atom/ns#' term='on XP XML'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>ASP.Net on XP XML error solution</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-Lrenb5tNqjk/TifcOQCKuII/AAAAAAAACGM/ToHWP5wJMT4/s1600/rto.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-Lrenb5tNqjk/TifcOQCKuII/AAAAAAAACGM/ToHWP5wJMT4/s320/rto.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5631711996430432386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;ASP.Net on XP XML error solution&lt;/blockquote&gt;&lt;br /&gt;You get this error when running your application:&lt;br /&gt;&lt;br /&gt;The XML page cannot be displayed.&lt;br /&gt;&lt;br /&gt;Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later. &lt;br /&gt;&lt;br /&gt;A name was started with an invalid character. Error processing resource 'http://localhost/MyApp1/...&lt;br /&gt;&lt;br /&gt;&lt;%@ Register Tagprefix="MyApp1" TagName="Header" Src="../Header &amp; Footer/Header.ascx" %&gt;&lt;br /&gt;&lt;br /&gt;This error occurs when your Microsoft .NET Framework is not properly installed, not properly configured or not registered with the Microsoft IIS web server.&lt;br /&gt;Just go to command prompt then type :&lt;br /&gt;" c:\windows\Microsoft.net\framework\v2.0.50727\aspnet_regiis.exe i "&lt;br /&gt;after this if you had installed asp.net 2.0.50727 in form of .net framework 2.0.50727 from internet into your computer then this will initialised .net framework to run asp.net page on your XP web server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-3884282186634629799?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/3884282186634629799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/aspnet-on-xp-xml-error-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3884282186634629799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3884282186634629799'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/07/aspnet-on-xp-xml-error-solution.html' title='ASP.Net on XP XML error solution'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Lrenb5tNqjk/TifcOQCKuII/AAAAAAAACGM/ToHWP5wJMT4/s72-c/rto.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-2634876927473643262</id><published>2011-01-18T01:57:00.000-08:00</published><updated>2011-01-18T01:59:45.399-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONNECTING'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET VS SQL SERVER'/><category scheme='http://www.blogger.com/atom/ns#' term='STRING'/><title type='text'>ASP.NET VS SQL SERVER CONNECTING STRING</title><content type='html'>&lt;blockquote&gt;ASP.NET VS SQL SERVER CONNECTING STRING&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How To Describe Connection to SQL Server&lt;br /&gt;We will use the System.Data.SqlClient and the System.Data namespaces of ADO.NET. The System.Data contains basic enumerations and classes, which we will use below. The System.Data.SqlClient provides data access to SQL servers such as MS SQL Server 2000 and higher. Add the next snippet to the beginning of your code page in order to get easy access to their classes:&lt;br /&gt;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient; &lt;br /&gt;&lt;br /&gt;To begin "communications" with our server we should define the SqlConnection class, initialize a new instance and set its connection string parameters. There is an example of a connection string below:&lt;br /&gt;&lt;br /&gt;string Connection = "server=ALDAN; uid=sa; pwd=sa; database=GAZCAD; Connect Timeout=10000";&lt;br /&gt;&lt;br /&gt;Let's understand what each parameter means:&lt;br /&gt;&lt;br /&gt;Keyword Description &lt;br /&gt;server &gt; The address of a SQL Server. If the server is on a same computer, where your website runs, define it as "local". If the server is remote, define it as an IP â€“ address, a domain name or a netbios name (as in the example string) of the server. &lt;br /&gt;Uid&gt; The login name, which is defined at your SQL Server to get access. Our login name is "sa". &lt;br /&gt;Pwd &gt;The password, which is defined at your SQL Server to get access. Our password is "sa". &lt;br /&gt;Database &gt;The database's name, which you connect to. Our database name is "GAZCAD". &lt;br /&gt;Connect timeout&gt; The time in milliseconds. When this time is over and the connection is not established, the timeout exception is thrown. This keyword is not necessary. In our case it equals 10,000 ms. Use so large timeouts when you request a lot of data from the server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-2634876927473643262?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/2634876927473643262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2011/01/aspnet-vs-sql-server-connecting-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2634876927473643262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2634876927473643262'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2011/01/aspnet-vs-sql-server-connecting-string.html' title='ASP.NET VS SQL SERVER CONNECTING STRING'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-7400788749521792928</id><published>2010-09-24T21:25:00.000-07:00</published><updated>2010-09-24T21:32:16.755-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Address'/><category scheme='http://www.blogger.com/atom/ns#' term='using IP'/><category scheme='http://www.blogger.com/atom/ns#' term='Geo-Location'/><title type='text'>Geo-Location using IP Address</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJ16jGNgIZI/AAAAAAAACFc/aMT9X4N0Uj4/s1600/TracertMap.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJ16jGNgIZI/AAAAAAAACFc/aMT9X4N0Uj4/s320/TracertMap.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5520703461607350674" /&gt;&lt;/a&gt;&lt;br /&gt;Geo-Location using IP Address&lt;br /&gt;Many web applications use IP address to find the geographical location of the web site visitors. It has uses from catering relevant advertisements to customizing the behavior of web site. Geo-location using IP address is normally done by using databases. There are two different options available: HostIP.info and MaxMind. HostIP.info has exposed its data through a web service. The access to the web service is free; however, the data is not very accurate. MaxMind offers both commercial solutions as well as free solutions. The free solutions also called the lite versions are not highly accurate but the commercial products are extremely accurate. The code presented in this article has been written to work with both MaxMind's database as well as HostIP.info's web service. The default is to use the HostIP.info. You can change the default, by setting NodeInfo.LocationService property.&lt;br /&gt;&lt;br /&gt;//Use Maxmind's Getloaction&lt;br /&gt;NodeInfo.LocationService = new Maxmind.NodeInfoLookupService(); &lt;br /&gt;&lt;br /&gt;//Use HostIP.info's Geolocation&lt;br /&gt;NodeInfo.LocationService = new HostIP.NodeInfoLookupService();&lt;br /&gt;The LocationService property is of the type INodeInfoLocationService which makes it easy to provide custom lookup services. In a later version the class name of the object to create can come from the configuration file. The INodeInfoLocationService is quite simple with just one method named Lookup.&lt;br /&gt;&lt;br /&gt;bool Lookup(IPAddress address, NodeInfo nodeInfo);&lt;br /&gt;The Lookup function takes an IP address and populates a NodeInfo object, which stores the latitude, longitude, city, region and the country name.&lt;br /&gt;&lt;br /&gt;The HostIP.info web site exposes its API through HTTP GET at the URL: http://api.hostip.info/. For example, you can get the location of the IP address 207.12.0.9 using the following URL:&lt;br /&gt;&lt;br /&gt;http://api.hostip.info?ip=207.12.0.9&lt;br /&gt;The response is returned as XML. The XML gives the latitude, longitude, city, state and country. In the parser implemented in this article, the HTTP GET request is issued through the XMLDocument.Load method.&lt;br /&gt;&lt;br /&gt;XmlDocument doc = new XmlDocument();&lt;br /&gt;doc.Load(String.Format("http://api.hostip.info/?ip={0}", address));&lt;br /&gt;The individual elements are extracted using XPath queries. For Example, the country name is extracted using the following query.&lt;br /&gt;&lt;br /&gt;node = doc.SelectSingleNode("//hostip:countryName", manager);&lt;br /&gt;&lt;br /&gt;if (node != null)&lt;br /&gt;{&lt;br /&gt;	nodeInfo.Country = node.InnerText;&lt;br /&gt;}	 &lt;br /&gt;One element of detail to understand here is how namespaces works with XPath. The argument manager, passed to the SelectSingleNode method, is of type XmlNamespaceManager class. The namespace prefixes are indicated using the following code:&lt;br /&gt;&lt;br /&gt;XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);&lt;br /&gt;manager.AddNamespace("gml", "http://www.opengis.net/gml");&lt;br /&gt;manager.AddNamespace("hostip", "http://www.hostip.info/api");&lt;br /&gt;The latitude, longitude, city and the state are extracted in the similar fashion using XPaths.&lt;br /&gt;&lt;br /&gt;The MaxMind lookup service is much simpler. MaxMind provides source code of the library that can read its databases. The code can be downloaded from this URL: http://www.maxmind.com/app/api. The Maxmind.NodeInfoLookupService uses the LookupService class provided by MaxMind. I have only made minor changes to the MaxMind's code and most of the MaxMind's code is retained as it is. Here is the code for the wrapper around MaxMind's code.&lt;br /&gt;&lt;br /&gt;LookupService svc = new LookupService(Path.Combine(&lt;br /&gt;	Path.GetDirectoryName(&lt;br /&gt;		this.GetType().Assembly.Location&lt;br /&gt;		), &lt;br /&gt;	"GeoLiteCity.dat")&lt;br /&gt;	);&lt;br /&gt;Location loc = svc.getLocation(address);&lt;br /&gt;&lt;br /&gt;if (loc != null)&lt;br /&gt;{&lt;br /&gt;  nodeInfo.Region = loc.region;&lt;br /&gt;  nodeInfo.Longitude = loc.longitude;&lt;br /&gt;}	 &lt;br /&gt;You need to download and extract the GeoCity Lite database from MaxMind.com. The compressed archive of the database is available at the following URL: http://www.maxmind.com/app/geolitecity. The GeoLiteCity.dat must be placed in the same directory as the executable.&lt;br /&gt;&lt;br /&gt;This was a brief description of the geo-location code. Now, let's examine how the Virtual Earth API is used in the code.&lt;br /&gt;&lt;br /&gt;Using the Virtual Earth API&lt;br /&gt;You can get the same mapping feature in your web applications as local.live.com using the Virtual earth API. The Virtual Earth API is JavaScript code and can be loaded in web pages by including a script:&lt;br /&gt;&lt;br /&gt;&lt;script &lt;br /&gt;  type="text/javascript" &lt;br /&gt;  src="http://dev.virtualearth.net/mapcontrol/v3/mapcontrol.js"&gt;&lt;br /&gt;&lt;/script&gt;		  &lt;br /&gt;Once the script is loaded, you can use Javascript classes available in the API. A comprehensive API reference is available at the following URL: http://dev.live.com/virtualearth/sdk/. Also, checkout the interactive SDK tutorial available at the same URL. To display the Virtual Earth map in your web page, you need to designate a &lt;div&gt; element where you want the map image to appear:&lt;br /&gt;&lt;br /&gt;&lt;div id="mapContainer"&gt;&lt;/div&gt;&lt;br /&gt;Next you will use some JavaScript to load the map into the designated element:&lt;br /&gt;&lt;br /&gt;map = new VEMap("mapContainer");&lt;br /&gt;map.LoadMap();&lt;br /&gt;Notice that so far I have only talked about Virtual earth API as a web based API. Since Tracert Map is a windows application, the question arises: how can we use Virtual Earth in windows application? The answer is simple: host the Internet Explorer in the desktop application. Luckily, the .Net Framework 2.0 provides the WebBrowser control. We need to create an HTML page where we can place all the HTML, JavaScript and CSS and load this page into the hosted web browser. An HTML page named tracert.htm needs to be placed in the directory of the executable, so as to make the following code work:&lt;br /&gt;&lt;br /&gt;mapBrowser.Navigate(Path.Combine(Path.&lt;br /&gt;		GetDirectoryName(&lt;br /&gt;			this.GetType().Assembly.Location&lt;br /&gt;		), &lt;br /&gt;		"tracert.htm")&lt;br /&gt;	);&lt;br /&gt;The code shown till now is sufficient to display the Map, but we need to control the map from C# code.  The JavaScript code in the web page also needs to invoke C# code. Luckily, the web browser control has a property called ObjectForScripting for this purpose. This property can be assigned any object, the only catch is that the class needs to be marked with the COMVisible attribute.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJ16zCywDrI/AAAAAAAACFs/uxuQj_w2Ws0/s1600/Popup.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 167px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJ16zCywDrI/AAAAAAAACFs/uxuQj_w2Ws0/s320/Popup.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5520703735567748786" /&gt;&lt;/a&gt;&lt;br /&gt;[ComVisible(true)] //So that scripts can access the methods&lt;br /&gt;public partial class TracertMapForm : Form	 &lt;br /&gt;	 A public method in the class declared as public void MapLoaded() can be accessed from JavaScript using window.external.MapLoaded() statement.  This is how JavaScript can use C# code, but how about C# code invoking JavaScript? This can be done by using the InvokeScript function. For Example, the code: mapBrowser.Document.InvokeScript("OnStartTrace"); invokes the JavaScript function OnStartTrace declared as: function OnStartTrace. Now that we know how two way communication between script and C# code can be achieved, let's look at the details of virtual earth API.&lt;br /&gt;&lt;br /&gt;We will be using Virtual Earth API to mark nodes on the map. This is called a pushpin in the Virtual Earth terminology. In order to do that we need the latitude and the longitude of the node which was obtained by the geolocation service. To display the pushpin we also need the URL of the image which will be used as pushpin. Images of numbers circled in red can obtained at the following URL: http://local.live.com/i/pins/RedCircleXX.gif, where XX can be replaced by a number. For Example the URL http://local.live.com/i/pins/RedCircle10.gif is the image representation of number 10 enclosed in a RedCircle. To represent the nth node as a pushpin in the map, we use the URL: http://local.live.com/i/pins/RedCircle{n}.gif where {n} is replaced by the actual number. Another, interesting feature of a pushpin is that when the mouse hovers over the pushpin it shows a popup as shown in the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The IP address is displayed in the bold text as the title of the popup and the DNS name in lighter text as the body of the popup. Virtual Earth API takes care of displaying the popup. All we need to do is to specify the popup title and the body when creating the pushpin:&lt;br /&gt;&lt;br /&gt;var location = new VELatLong(nodeInfo.Latitude, nodeInfo.Longitude);&lt;br /&gt;var imageURL = "http://local.live.com/i/pins/RedCircle" + hopNo + ".gif";&lt;br /&gt;var pushpin = new VEPushpin(hopNo, &lt;br /&gt;	location, //pushpin latitude and longitude&lt;br /&gt;	imageURL, //pushpin image&lt;br /&gt;	nodeInfo.Address, //Pushpin title&lt;br /&gt;	nodeInfo.HostName //Pushpin body&lt;br /&gt;	);&lt;br /&gt;map.AddPushpin(pushpin);&lt;br /&gt;		  The final aspect of the Virtual Earth API which is used in the tool is that of polylines. As seen in the first screenshot the nodes on the map are connected through a blue line. This can be created by using VEPolyline JavaScript object. The code to create a transparent blue polyline through an array of latitude and longitude pairs, named nodes, is shown below:&lt;br /&gt;&lt;br /&gt;var poly = new VEPolyline("route", nodes);&lt;br /&gt;poly.SetWidth(2);&lt;br /&gt;poly.SetColor(new VEColor(0, 0, 255, 0.5));&lt;br /&gt;map.AddPolyline(poly);&lt;br /&gt;Final Words&lt;br /&gt;I have described briefly how the tool works and its various elements. The tool is still under development and there are lots of features that need to be added. Please note that the pushpins may not represent the locations accurately. This is because the HostIP.info as well as MaxMind lite databases are not highly accurate. The HostIP.info site allows you to correct its database and I recommend you to correct the database and further improve the excellent and free GeoIP database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-7400788749521792928?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/7400788749521792928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/geo-location-using-ip-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/7400788749521792928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/7400788749521792928'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/geo-location-using-ip-address.html' title='Geo-Location using IP Address'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XbdOXdG5XQs/TJ16jGNgIZI/AAAAAAAACFc/aMT9X4N0Uj4/s72-c/TracertMap.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-2215845458870382474</id><published>2010-09-15T00:08:00.000-07:00</published><updated>2010-09-15T00:19:35.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vehicles Used by the'/><category scheme='http://www.blogger.com/atom/ns#' term='Scary Unmanned Aerial'/><category scheme='http://www.blogger.com/atom/ns#' term='Military'/><title type='text'>Scary Unmanned Aerial Vehicles Used by the Military</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBxTwZNjMI/AAAAAAAACEU/1ilskinqQTo/s1600/sdvfs.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 171px; height: 320px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBxTwZNjMI/AAAAAAAACEU/1ilskinqQTo/s320/sdvfs.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5517034127750958274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Scary Unmanned Aerial Vehicles Used by the Military &lt;/blockquote&gt; &lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/TJBx4QWaJdI/AAAAAAAACEc/fDHvkqD8Oy8/s1600/a.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/TJBx4QWaJdI/AAAAAAAACEc/fDHvkqD8Oy8/s320/a.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517034754804426194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The X-47B is designed to be launched either from land or catapult-launched from ships, and could be refueled in midair.&lt;br /&gt;&lt;br /&gt;Look out, everybody, because here come the unmanned aerial vehicles, otherwise known as UAVs or drones. They’ve been flourishing in the Iraq War, starting with just a few unarmed drones when the conflict began in 2003, and now growing in numbers to more than 7,000. Many are packing serious missiles and bombs, and some soon could be autonomous. This is undoubtedly the dawn of an entirely new era of military might: robot wars. (Pics)&lt;br /&gt;&lt;br /&gt;Flying over battlefields in a variety of shapes and sizes, the aircraft are controlled from either the battlefield itself, thousands of miles away, or anywhere in between. They can keep an eye on bad guys wherever they may roam, and some can even blow them up at a moment’s notice. One reason they’re so compelling for military types: They present no danger to their pilots. To help you recognize and identify these scary robotic birds, we picked out a representative sample of six of these these soulless, empty flyers for you to contemplate. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Micro Air Vehicle&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJByeRaQ1SI/AAAAAAAACEk/xjYxOmfpfU8/s1600/b.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 280px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJByeRaQ1SI/AAAAAAAACEk/xjYxOmfpfU8/s320/b.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517035407924057378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Honeywell’s insect-like micro air vehicles, affectionately known by soldiers as a “flying beer keg,” are used for surveillance. The 13-inch hovering devices are small enough to carry in a backpack, yet large enough to carry a camera that’s just right for finding improvised explosive devices. The first generation is too noisy, though, and not reliable enough, so Honeywell is preparing a second generation model that should be ready for the battlefield by next year.&lt;br /&gt;&lt;br /&gt;Boeing ScanEagle&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/TJByr0Fc75I/AAAAAAAACEs/lhMufvdr1Y4/s1600/c.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/TJByr0Fc75I/AAAAAAAACEs/lhMufvdr1Y4/s320/c.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517035640570310546" /&gt;&lt;/a&gt;&lt;br /&gt;This catapult-launched spy plane has a 10-foot wingspan and is 4 feet long, and can stay in the air for more than 20 hours. It’s been used in the Iraq war since 2005. It’s equipped with an image-stabilized high-resolution video system that transmits its signal back to its base, which can be 62 miles away. When it’s finally time for it to land, it flies into a catching system called a SkyHook, consisting of 30- to 50-foot pole that snags the plane’s wingtip. Try that with a manned aircraft!&lt;br /&gt;&lt;br /&gt;RQ-4 Global Hawk&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBy4GR0YrI/AAAAAAAACE0/MDIZJrGc3Zc/s1600/d.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBy4GR0YrI/AAAAAAAACE0/MDIZJrGc3Zc/s320/d.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517035851612447410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Called “one of the most coveted pieces of military technology in the world,” this $35 million remotely piloted aircraft is powered by a turbofan engine and is about the size of a fighter plane. It can fly for 12,600 miles at an altitude of up to 65,000 feet for 30 hours. Used primarily for surveillance, its bulbous nose carries classified sensing devices including various GPS devices, infrared cameras, and synthetic aperture radar (SAR) that can see through clouds and even sandstorms. Sending its data back to its base at 50Mb per second, it can precisely identify exactly where moving targets are located. As of this year, the planes have flown for more than 30,000 combat hours.&lt;br /&gt;&lt;br /&gt;MQ-9 Reaper&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/TJBzEUeBKEI/AAAAAAAACE8/_4kG1iFdNnc/s1600/e.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/TJBzEUeBKEI/AAAAAAAACE8/_4kG1iFdNnc/s320/e.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517036061580142658" /&gt;&lt;/a&gt;&lt;br /&gt;This is the bad boy of the fleet, the hunter-killer UAV that you don’t want to see flying overhead if you’re a bad guy. Two operators at a base in the desert near Las Vegas control this baby via a satellite link, with one piloting the aircraft and another operating its sensors (too bad there’s a lag of 1.2 seconds for their input to reach the Reaper). Its 950hp turbo prop can fly it to an altitude of 60,000 feet, carrying a payload of about 3,000 pounds. On board: a variety of precision-targeted missiles and bombs, along with a camera that can read a license plate from 2 miles away. These drones are capable of autonomous missions, but the Air Force still insists on using human pilots. For now.&lt;br /&gt;&lt;br /&gt;X-37B&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/TJBzO_MPOZI/AAAAAAAACFE/ShK7CoV0B1Q/s1600/f.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/TJBzO_MPOZI/AAAAAAAACFE/ShK7CoV0B1Q/s320/f.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517036244846983570" /&gt;&lt;/a&gt;&lt;br /&gt;With its 29-foot length and 14-foot wingspan, the X-37B is a quarter the size of the Space Shuttle. But unlike the shuttle, most of its functions are top secret. In fact, the Air Force didn’t want anyone to know anything about the specific mission of this unmanned military vehicle, which for now will probably be used for various types of surveillance. Strangely enough, the only reason we know anything about it is because it was spotted orbiting high overhead by amateur satellite watchers, who determined it must be on a spy mission because of its telltale routine of passing over the same location on the ground every four days.&lt;br /&gt;&lt;br /&gt;X-47B&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBzcu06xoI/AAAAAAAACFM/8FzQ7d2ctR0/s1600/g.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBzcu06xoI/AAAAAAAACFM/8FzQ7d2ctR0/s320/g.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5517036480972375682" /&gt;&lt;/a&gt;&lt;br /&gt;Behold the future of aerial drones — this one could be the scariest of them all. It’s designed to be launched either from land or catapult-launched from ships, and could be refueled in midair, letting it fly indefinitely. This stealthy 19-foot-long aircraft will have the smarts to carry out its own missions, and the oomph to carry 4,500 pounds of bombs, missiles, and surveillance gear. There’s even talk of loading it up with lasers and microwave weapons. Look out, everyone, because this is the flying killer robot of your nightmares.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-2215845458870382474?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/2215845458870382474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/scary-unmanned-aerial-vehicles-used-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2215845458870382474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2215845458870382474'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/scary-unmanned-aerial-vehicles-used-by.html' title='Scary Unmanned Aerial Vehicles Used by the Military'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XbdOXdG5XQs/TJBxTwZNjMI/AAAAAAAACEU/1ilskinqQTo/s72-c/sdvfs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-5171916307754515674</id><published>2010-09-14T22:52:00.000-07:00</published><updated>2010-09-14T23:03:12.845-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Converting a Cisco IP Phone'/><category scheme='http://www.blogger.com/atom/ns#' term='from SCCP (Skinny)'/><category scheme='http://www.blogger.com/atom/ns#' term='to SIP Firmware'/><title type='text'>Converting a Cisco IP Phone from SCCP (Skinny) to SIP Firmware</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJBhhCdNIqI/AAAAAAAACEM/OUDUt_mznms/s1600/sdvfs.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 267px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/TJBhhCdNIqI/AAAAAAAACEM/OUDUt_mznms/s320/sdvfs.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5517016763751801506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Converting a Cisco IP Phone from SCCP (Skinny) to SIP Firmware&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;img src="http://blog.voipsupply.com/wp-content/uploads/2009/04/ciscosip-300x225.jpg"&gt; Categories&lt;br /&gt;Announcements Asterisk Business VoIP Fax over IP Mobile VoIP Open Source VoIP Small Business VoIP Technical Advice trixbox VoIP Commentary VoIP Education VoIP Gateways VoIP Hardware VoIP Interviews VoIP News VoIP Phones VoIP Reviews VoIP Service VoIP Software VoIP Systems &lt;br /&gt;VoIP Buyers Guides&lt;br /&gt;VoIP Systems VoIP Phones VoIP Adapters VoIP Gateways VoIP Headsets Open Source PBX VoIP Networks &lt;br /&gt;Recent posts Recent comments Digium PCI Cards 101 – help for the rest of us….. Uh oh…We let Tom loose. Benefits of 3CX Polycom VVX1500 Overview Upgrading your existing network for VoIP Skype Would Make Great Acquisition for Cisco Polycom HDX 6004 Overview How to Select a Hosted Service Provider &lt;br /&gt;Newsletter&lt;br /&gt;Subscribe to our newsletter and receive weekly updates from VoIP Insider .&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;Archives&lt;br /&gt;September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 January 2010 December 2009 November 2009 October 2009 September 2009 Tech Tip: Converting a Cisco IP Phone from SCCP (Skinny) to SIP Firmware&lt;br /&gt;Posted by Cory Andrews on April 3rd, 2009 in Technical Advice, VoIP Phones4 Comments&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cisco IP Phones are amongst the most popular desktop IP phones out there. By default, Cisco ship their phones from the factory pre-loaded with their proprietary SCCP protocol firmware (also commonly referred to as “skinny”).&lt;br /&gt;&lt;br /&gt;If you are running Asterisk, Trixbox, Switchvox or any other standards-based SIP platform or hosted service, you’ll need to migrate your Cisco phone(s) from their native SCCP (skinny) load to SIP in order to use them. While this is not a particularly difficult procedure, it can be frustrating for those who have never attempted the process.&lt;br /&gt;&lt;br /&gt;For the purposes of this exercise, we’re using a Cisco CP-7960G. The process may be slightly different depending upon the specific model of Cisco IP phone you are working with.&lt;br /&gt;&lt;br /&gt;Cisco 7940/7960 IP phones can support either the Skinny Call Control Protocol (SCCP), Session Initiation Protocol (SIP), or the Media Gateway Control Protocol (MGCP), but not more than one simultaneously. This is possible because they load different firmware versions on bootup. This functionality is transparent to the end user, and you enable it through changes to the basic text−based configuration files that the phones download from a Trivial File Transfer Protocol (TFTP) server.&lt;br /&gt;&lt;br /&gt;First, a few prerequisites:&lt;br /&gt;&lt;br /&gt;A – You’ll need a CCO login for Cisco.com in order to obtain the latest SIP firmware. The easiest way to obtain a CCO login is to purchase a Smartnet maintenance contract for your Cisco IP phone from an authorized Cisco reseller. Once you have a registered Smartnet, you can obtain CCO login credentials and access the firmware downloads section of Cisco’s website. Expect to pay $8-$15 for a Smartnet contract.&lt;br /&gt;&lt;br /&gt;B – You should have a comfort level with basic networking concepts and TFTP setup/administration.&lt;br /&gt;&lt;br /&gt;Follow these steps to enable SIP functionality:&lt;br /&gt;&lt;br /&gt;Step #1&lt;br /&gt;Download these files from Cisco SIP IP Phone 7940/7960 Software ( registered customers only) and place them in the root directory of your TFTP server (tftpboot on a UNIX machine):&lt;br /&gt;&lt;br /&gt;P0S30100.bin This is the SIP image. You’ll want to download the file in binary format, to ensure that it is not corrupted. Note: There are many different variations of this file, depending on the version of software that you are loading.These are some examples: &lt;br /&gt;SIP Release 2.3 or earlier: P0S3xxyy.bin The xx variable is the version number, and yy is the sub−version number. &lt;br /&gt;SIP Release 3.0 and later: P0S3−xx−y−zz.bin The xx variable is the major version number, y is the minor version number, and zz is the sub−version number. &lt;br /&gt;SIP Release 5.0 and later: After this version has been installed, you will not be able to revert back to versions earlier than 5.0. You may still change from SCCP images to SIP images, but they both must be version 5.0 or later. For more information on this, refer to Release Notes for Cisco SIP IP Phone 7940/7960 Release 5.0. &lt;br /&gt;This table describes the meanings of the first 4 characters in the binary files names. &lt;img src="http://blog.voipsupply.com/wp-content/uploads/2009/04/snag.jpg"&gt; Note: To verify which image the phone is using, choose Settings &gt; Status &gt; Firmware Versions. Different phone models use different processors. This fourth digit can help determine the model of phone for which the file is used.&lt;br /&gt;&lt;br /&gt;OS79XX.TXT—This file tells the Cisco 7940/7960 which binary to download from the TFTP server. This file is case sensitive and must only contain the name of the file that you want to load, without the .bin extension. For example, if you attempt to load the SIP version 2.3 software, it must contain only the line P0S30203. If you try to load versions 3.0 and later, the file name must be in the format P0S3-xx-y-zz. For example, if you attempt to load the SIP version 7.1 software, OS79XX.TXT must contain the line P0S3-07-1-00. The binary referenced here must also be present in the TFTP root directory. Without this file, the phone does not know which file it needs to retrieve, in order to replace its existing software. &lt;br /&gt;SIPDefaultGeneric.cnf—This file is an example of a default configuration file. This file contains configuration information relevant to all phones. &lt;br /&gt;SIPConfigGeneric.cnf—This file is similar to the previous one, except that it contains information relevant to a specific phone instead of to all phones. &lt;br /&gt;RINGLIST.DAT—Lists audio files that are the custom ring type options for the phones. The audio files listed in the RINGLIST.DAT file must also be in the root directory of the TFTP server. &lt;br /&gt;ringer1.pcm—This file is a sample ring tone that is used by the Cisco 7940/7960. &lt;br /&gt;OS79XX.TXT—This file always contains the universal application loader image. &lt;br /&gt;P003………bin—Nonsecure universal application loader for upgrades from images earlier than 5.x. &lt;br /&gt;P003………sbn—Secure universal application loader for upgrades from images 5.x or later. &lt;br /&gt;P0a3………loads—File that contains the universal application loader and application image, where a represents the protocol of the application image LOADS file: 0 for SCCP, and S for SIP. &lt;br /&gt;P0a3………sb2—Application firmware image, where a represents the application firmware image: 0 for SCCP, and S for SIP. &lt;br /&gt;Step #2&lt;br /&gt;With a text editor (vi or Notepad), rename the file SIPDefaultGeneric.cnf to SIPDefault.cnf (used for global parameters on all phones).&lt;br /&gt;&lt;br /&gt;Step #3&lt;br /&gt;With a text editor, rename the file SIPConfigGeneric.cnf to SIPmac_address.cnf, for each phone (for example, SIP002094D245CB.cnf). The MAC address must be specified in capital letters and the extension (.cnf) must be in lower case. The MAC address of the phone can be found on the sticker that is located on the bottom of the phone, or it can be found through the phone LCD screen (choose Settings &gt; Network Configuration &gt; MAC Address). Note: Allow read and write file permissions on the TFTP server for those files.&lt;br /&gt;&lt;br /&gt;Step #4&lt;br /&gt;Unplug the power cord or Ethernet cord (if inline power is used) in order to reset the phones. Ensure that the phones can find the TFTP server. Manually configure the phone’s IP address, gateway address, and TFTP server address; or configure the phone network settings from the Dynamic Host Configuration Protocol (DHCP) server. It is recommended that you not use the TFTP server on the Cisco CallManager, if you have one in your current system.&lt;br /&gt;&lt;br /&gt;Step #5&lt;br /&gt;Manually Configure the Phone Network Settings&lt;br /&gt;&lt;br /&gt;Complete these steps in order to manually configure the phone network settings:&lt;br /&gt;&lt;br /&gt;Press the **# buttons in order to unlock the phone. (This step either locks or unlocks the options, based on the current state.) &lt;br /&gt;Press Settings. &lt;br /&gt;Press the down arrow in order to select Network Configuration and press the Select softkey. There is an unlocked padlock icon in the upper-right portion of your LCD. &lt;br /&gt;Use the toggle button and the arrow keys in order to modify any parameters. When you enter IP addresses, the * key is used for decimal points. &lt;br /&gt;Press the Save softkey in order to save your changes. &lt;br /&gt;Step #6 (Optional)&lt;br /&gt;You can also configure the phone network settings from the Dynamic Host Configuration Protocol (DHCP) server. For SIP phones, make sure that the DHCP server uses Option 66 for the TFTP server. These DHCP options are usually configured from the DHCP server:&lt;br /&gt;&lt;br /&gt;IP Address (DHCP Option 50) &lt;br /&gt;Subnet Mask (DHCP Option 1) &lt;br /&gt;Default IP Gateway (DHCP Option 3) &lt;br /&gt;DNS Server Address (DHCP Option 6) &lt;br /&gt;TFTP Server (DHCP Option 66) &lt;br /&gt;Domain Name (DHCP Option 15). Note: Cisco CallManager uses Option 150 for the TFTP server, while SIP phones expect Option 66 for the TFTP server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-5171916307754515674?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/5171916307754515674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/converting-cisco-ip-phone-from-sccp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5171916307754515674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5171916307754515674'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/09/converting-cisco-ip-phone-from-sccp.html' title='Converting a Cisco IP Phone from SCCP (Skinny) to SIP Firmware'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XbdOXdG5XQs/TJBhhCdNIqI/AAAAAAAACEM/OUDUt_mznms/s72-c/sdvfs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-5862167201831807710</id><published>2010-08-27T03:58:00.000-07:00</published><updated>2010-08-27T04:15:26.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POCOS IN VS.NET 2010'/><title type='text'>POCOS IN VS.NET 2010</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/THebhrhOwGI/AAAAAAAACEE/lKvGfAKqdAg/s1600/OgAAAGDSAgm7Z7caxr7Noaqxp8QkJBa7Pqi3vczuR89QdX6OOYYt90jl0WQPlqEbYTogiuwoy1LHARr4tb2pQl8Dn58Am1T1UAiuaMVg045p2GfSizmSBejFYEcP.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 219px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/THebhrhOwGI/AAAAAAAACEE/lKvGfAKqdAg/s320/OgAAAGDSAgm7Z7caxr7Noaqxp8QkJBa7Pqi3vczuR89QdX6OOYYt90jl0WQPlqEbYTogiuwoy1LHARr4tb2pQl8Dn58Am1T1UAiuaMVg045p2GfSizmSBejFYEcP.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5510043672031182946" /&gt;&lt;/a&gt;&lt;br /&gt;The Entity Framework  enables you to use custom data classes together with your data model without making any modifications to the data classes themselves. This means that you can use "plain-old" CLR objects (POCO), such as existing domain objects, with your data model. These POCO data classes (also known as persistence-ignorant objects), which are mapped to entities that are defined in a data model, support most of the same query, insert, update, and delete behaviors as entity types that are generated by the Entity Data Model tools. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://devtalk.dk/content/binary/WindowsLiveWriter/Ent.0Beta1POCOLazyloadandcodegenerationo_343/image_thumb_4.png"&gt;&lt;br /&gt;The Entity Framework supports POCO classes ("plain-old" CLR objects). If you want to enable lazy loading for POCO entities and to have the Entity Framework  track changes in your classes as the changes occur, your POCO classes must meet the requirements described in this topic so that the Entity Framework  can create proxies for your POCO entities during run time. The proxy classes derive from your POCO types.&lt;br /&gt;The Entity Framework creates proxies for POCO entities if the classes meet the requirements described below. POCO entities can have proxy objects that support change tracking or lazy loading. You can have lazy loading proxies without meeting the requirements for change tracking proxies, but if you meet the change tracking proxy requirements, then the lazy loading proxy will be created as well. You can disable lazy loading by setting the LazyLoadingEnabled option to false.&lt;br /&gt;&lt;img src="http://devtalk.dk/content/binary/WindowsLiveWriter/Ent.0Beta1POCOLazyloadandcodegenerationo_343/image_thumb_1.png"&gt;&lt;br /&gt;For either of these proxies to be created: &lt;br /&gt;&lt;br /&gt;A custom data class must be declared with public access.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A custom data class must not be sealed (NotInheritable in Visual Basic) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A custom data class must not be abstract (MustInherit in Visual Basic).&lt;br /&gt;&lt;br /&gt;&lt;img src="http://daveswersky.files.wordpress.com/2010/05/codegenerationdialog.jpg"&gt;&lt;br /&gt;A custom data class must have a public or protected constructor that does not have parameters. Use a protected constructor without parameters if you want the CreateObject method to be used to create a proxy for the POCO entity. Calling the CreateObject method does not guarantee the creation of the proxy: the POCO class must follow the other requirements that are described in this topic. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.msdn.com/blogfiles/adonet/WindowsLiveWriter/FeatureCTPWalkthroughPOCOTemplatesforEnt_C869/blog1_18.png"&gt;&lt;br /&gt;The class cannot implement the IEntityWithChangeTracker or IEntityWithRelationships interfaces because the proxy classes implement these interfaces. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The ProxyCreationEnabled option must be set to true.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For lazy loading proxies:&lt;br /&gt;&lt;br /&gt;Each navigation property must be declared as public, virtual (Overridable in Visual Basic), and not sealed (NotOverridable in Visual Basic) get accessor. The navigation property defined in the custom data class must have a corresponding navigation property in the conceptual model. For more information, see Loading Related POCO Entities.&lt;br /&gt;&lt;img src="http://devtalk.dk/content/binary/WindowsLiveWriter/EntityFramework4.0HowToPOCO_14524/image_thumb.png"&gt;&lt;br /&gt;&lt;br /&gt;For change tracking proxies:&lt;br /&gt;&lt;br /&gt;Each property that is mapped to a property of an entity type in the data model must have non-sealed (NotOverridable in Visual Basic), public, and virtual (Overridable in Visual Basic) get and set accessors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A navigation property that represents the "many" end of a relationship must return a type that implements ICollection, where T is the type of the object at the other end of the relationship.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you want the proxy type to be created along with your object, use the CreateObject method on the ObjectContext when creating a new object, instead of the new operator. &lt;br /&gt;&lt;br /&gt;The ADO.NET Entity Framework enables developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema. The goal is to decrease the amount of code and maintenance required for data-oriented applications. Entity Framework applications provide the following benefits: &lt;br /&gt;Applications can work in terms of a more application-centric conceptual model, including types with inheritance, complex members, and relationships.&lt;br /&gt;Applications are freed from hard-coded dependencies on a particular data engine or storage schema.&lt;br /&gt;Mappings between the conceptual model and the storage-specific schema can change without changing the application code.&lt;br /&gt;Developers can work with a consistent application object model that can be mapped to various storage schemas, possibly implemented in different database management systems.&lt;br /&gt;&lt;img src="http://www.simonsegal.net/blog/wp-content/uploads/2008/08/classdesigpoco-thumb.png"&gt;&lt;br /&gt;To add the ADO.NET Entity Data Model item template&lt;br /&gt;On the Project menu, click Add new item.&lt;br /&gt;&lt;br /&gt;In the Templates pane, select ADO.NET Entity Data Model.&lt;br /&gt;&lt;br /&gt;Type AdventureWorks.edmx for the model name and then click Add.&lt;br /&gt;&lt;br /&gt;The first page of the Entity Data Model Wizard is displayed.&lt;br /&gt;&lt;br /&gt;To generate the .edmx file&lt;br /&gt;In the Choose Model Contents dialog box, select Generate from database. Then click Next.&lt;br /&gt;&lt;br /&gt;Click the New Connection button.&lt;br /&gt;&lt;br /&gt;In the Connection Properties dialog box, type your server name, select the authentication method, type AdventureWorks for the database name, and then click OK.&lt;br /&gt;&lt;br /&gt;The Choose Your Data Connections dialog box is updated with your database connection settings.&lt;br /&gt;&lt;br /&gt;Ensure that the Save entity connection settings in App.Config as: checkbox is checked and the value is set to AdventureWorksEntities. Then click Next.&lt;br /&gt;&lt;br /&gt;In the Choose Your Database Objects dialog box, clear all objects, expand Tables, and select the following table objects:&lt;br /&gt;&lt;br /&gt;Address&lt;br /&gt;Contact&lt;br /&gt;Product&lt;br /&gt;SalesOrderHeader&lt;br /&gt;SalesOrderDetail&lt;br /&gt;Click Finish to complete the wizard.&lt;br /&gt;&lt;br /&gt;The wizard does the following:&lt;br /&gt;&lt;br /&gt;Adds references to the System.Data.Entity, System.Runtime.Serialization, and System.Security namespaces.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Generates the AdventureWorks.edmx file that defines the models and mapping.&lt;br /&gt;&lt;img src=http://i.msdn.microsoft.com/ff714955.eftest_02(en-us,MSDN.10).png""&gt;&lt;br /&gt;&lt;br /&gt;Creates a source code file that contains the classes that were generated based on the conceptual model content of the .edmx file. You can view the source code file by expanding the .edmx file in Solution Explorer.&lt;br /&gt;&lt;br /&gt;Multiple conceptual models can be mapped to a single storage schema.&lt;br /&gt;Language-integrated query (LINQ) support provides compile-time syntax validation for queries against a conceptual model.&lt;br /&gt;To configure a Visual Studio project to use the AdventureWorks Sales Model&lt;br /&gt;In Solution Explorer, add assembly references to System.Data.Entity.dll and System.Runtime.Serialization.dll.&lt;br /&gt;Add the following model and mapping files to the project:&lt;br /&gt;AdventureWorks.csdl&lt;br /&gt;AdventureWorks.msl&lt;br /&gt;AdventureWorks.ssdl&lt;br /&gt;&lt;img src=http://rantdriven.com/image.axd?picture=repository-highlighted.png""&gt; &lt;br /&gt;For information about creating these files, see How to: Manually Define the Model and Mapping Files.&lt;br /&gt;Select the three files you just added to the project directory. On the Project menu, click Include In Project. &lt;br /&gt;Select the three files you added to the project directory. On the Project menu, click Properties. &lt;br /&gt;In the Properties pane, set Copy to Output Directory to Copy if newer.&lt;br /&gt;Open the project's application configuration file (App.config) and add the following connection string:&lt;br /&gt;&lt;img src=http://kitchaiyong.files.wordpress.com/2010/02/figure-1-0-mycompany-data-entity-solution-view-before-code-update.png"&gt;&lt;br /&gt;&lt;connectionStrings&gt;&lt;br /&gt;    &lt;add name="AdventureWorksEntities" &lt;br /&gt;   connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;&lt;br /&gt;   provider=System.Data.SqlClient;provider connection string='Data Source=localhost;&lt;br /&gt;   Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;&lt;br /&gt;   multipleactiveresultsets=true'" providerName="System.Data.EntityClient" /&gt;&lt;br /&gt;&lt;/connectionStrings&gt; &lt;br /&gt;If your project does not have an application configuration file, you can add one by selecting Add New Item from the Project menu, selecting the General category, selecting Application Configuration File, and then clicking Add. &lt;br /&gt;&lt;br /&gt;At the command prompt in your project directory, run the appropriate command for your project (with line breaks removed):&lt;br /&gt;&lt;br /&gt;"%windir%\Microsoft.NET\Framework\v4.0\edmgen.exe" /mode:EntityClassGeneration &lt;br /&gt;/incsdl:.\AdventureWorks.csdl /outobjectlayer:.\AdventureWorks.Objects.vb /language:VB&lt;br /&gt;This generates an object layer file in either C# or Visual Basic that is based on the conceptual model. &lt;br /&gt;&lt;br /&gt;Add the object-layer file generated in the previous step to your project.&lt;br /&gt;&lt;br /&gt;In the code page for your application, add the following using statements (Imports in Visual Basic):&lt;br /&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Linq&lt;br /&gt;Imports System.Collections.Generic&lt;br /&gt;Imports System.Text&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.Common&lt;br /&gt;Imports System.Data.Objects&lt;br /&gt;Imports System.Data.Objects.DataClasses&lt;br /&gt;&lt;br /&gt;If you use the Entity Data Model Wizard in a Visual Studio project, the wizard automatically generates an .edmx file and configures the project to use the Entity Framework . For more information, see How to: Use the Entity Data Model Wizard. You can also manually configure a Visual Studio project to use the Entity Framework . Do this if you have manually defined the model and mapping files or defined them by using the EDM Generator (EdmGen.exe) utility. &lt;br /&gt;&lt;br /&gt;The examples in this topic use the model and mapping files for the AdventureWorks Sales model. The AdventureWorks Sales Model is used throughout the task-related topics in the Entity Framework documentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-5862167201831807710?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/5862167201831807710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/08/pocos-in-vsnet-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5862167201831807710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5862167201831807710'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/08/pocos-in-vsnet-2010.html' title='POCOS IN VS.NET 2010'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XbdOXdG5XQs/THebhrhOwGI/AAAAAAAACEE/lKvGfAKqdAg/s72-c/OgAAAGDSAgm7Z7caxr7Noaqxp8QkJBa7Pqi3vczuR89QdX6OOYYt90jl0WQPlqEbYTogiuwoy1LHARr4tb2pQl8Dn58Am1T1UAiuaMVg045p2GfSizmSBejFYEcP.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-323733491021252743</id><published>2010-08-27T03:16:00.000-07:00</published><updated>2010-08-27T03:48:39.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VIEW'/><category scheme='http://www.blogger.com/atom/ns#' term='N ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='CONTROLLOR AND POCOS I'/><category scheme='http://www.blogger.com/atom/ns#' term='MODEL'/><title type='text'>MODEL VIEW CONTROLLOR AND POCOS  IN ASP.NET</title><content type='html'>MODEL [ CLASS/FUNCTION] VIEW [ USER INTERFACE AND CLIENT SIDE VALIDATION] CONTROLLOR [ EVENT TO USE EACH MODEL ACCORDING TO USER INPUT EVENT IN ASP.NET&lt;br /&gt;&lt;br /&gt;Model view controller is nothing but a design pattern used to achieve customizability in our application. Change is the only thing in the world, which will never change. All the products that we develop to our clients will undergo many changes. To accommodate these changes we should concentrate more on our design. Directly jumping in to the code may give quick solutions to our problem but they will not solve our future problems of customizability and re-usability. So friends in this article we will discuss about MVC a most popular design pattern, which helps us to overcome most of our problems. Initially we may feel that this design pattern will need more time before starting the development. Yes it is true, but the time, which we spend on design, will give some fruitful benefits. &lt;br /&gt;&lt;img src="http://briannoyle.files.wordpress.com/2009/02/mvcsubsonicarchitecture.png"&gt;&lt;br /&gt;Good Layering Approach&lt;br /&gt;&lt;br /&gt;MVC follows the most common approach of Layering. Layering is nothing but a logical split up of our code in to functions in different classes. This approach is well known and most accepted approach. The main advantage in this approach is re-usability of code. Good example of layering approach is UI, Business Logic, and Data Access layer. Now we need to think how we can extend this approach to give us another great advantage customizability. The answer to this is using Inheritance. Inheritance is one of the powerful concepts in oops. .Net supports this in a nice way. &lt;br /&gt;&lt;br /&gt;Visual Inheritance in .Net&lt;br /&gt;&lt;br /&gt;Before getting in to Visual Inheritance, we will discuss the basic difference between Inheritance and Interfaces.&lt;br /&gt;&lt;img src="http://www.learnaholic.me/wp-content/uploads/2009/08/mvc-architecture.gif"&gt;&lt;br /&gt;Inheritance -- what it is?&lt;br /&gt;Interfaces -- How it should be? (It’s a contract)&lt;br /&gt;&lt;br /&gt;Both these answers target the classes, which we are designing in our application. Many of us know this definition but we will not use this extensively in our application including me. Unless we work in a design, which uses these concepts to a great extent, we will not agree this. Many of the Microsoft products use this to a great extent. For example how Commerce Server pipeline components achieves the customizability. Commerce Server allows us to create our own component in com and allow us to add it as one of a stage in the pipeline. How they achieve this, only through interfaces. We need to create a com component and the com component should implement a interface. All the objects in our .Net Framework class libraries are inherited from System.Object. This tells us the importance of Inheritance.&lt;br /&gt;&lt;br /&gt;Jumping into Visual Inheritance&lt;br /&gt;&lt;img src="http://www.beansoftware.com/ASP.NET-Tutorials/Images/MVC-Model-View-Controller.jpg"&gt;&lt;br /&gt;Let's try out one of .Net most interesting feature, Visual Inheritance. What exactly is it? Now we do know what is inheritance right? No I don't mean the money that you get from your parents/grand parents, I'm talking about class and interface inheritance, which saves you the headache of re-typing code and provides the luxury of code reusability. Now wouldn't it be nice if the same feature that applies to classes and their methods could also be applied to the GUI forms that we create, I mean create a base form with our corporate logo so that it appears on all of the firm's screens? Well such a feature now exists! Yes, you've guessed it, its Visual Inheritance! Visual Inheritance alone will not solve our problem of extensibility. This will help us to start digging our mind for solution. Cool guys now we will directly jump in to our problem with a good example.&lt;br /&gt;&lt;img src="http://www.shopno-dinga.com/dustbin/mvc.png"&gt;&lt;br /&gt;Problem Statement&lt;br /&gt;&lt;br /&gt;I have an employee master screen, which takes Name and Age as inputs and save the same in our database.&lt;br /&gt;&lt;img src="http://www.zslinc.com/rtp/images/aspdotnet-overview.gif"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets assume this is my basic functionality in my product, which serves most of my customer’s requirement. Now let us assume one of my new client asks for a change in this form. He needs an additional field in this form, which takes the employee’s address and stores the same in the database. How will we achieve this? Normally we will create a new screen which will also has a textbox to get the address input, in the same time we will also add another column in the employee master table and supply the new binaries and modified table and stored procedure scripts to the client. Do you think this is the right approach? If you ask me this is one of the crude way to satisfy an customer. Requirement like this will be very easy to re-write the entire code. But think if a customer asks a change in Payroll Calculation logic. Re-writing code for some specific customers will not helps us in long run. This will end up in maintaining separate – separate Visual source safe for each and every client. These types of solutions are very difficult to handle and after some time we will feel that we have a messy code.&lt;br /&gt;&lt;br /&gt;The right way to solve this problem is by having a good design pattern in place and make sure that the entire team clearly understands the design and implements the same in their code. We can solve this by doing a layered approach using MVC and Visual Inheritance. &lt;br /&gt;&lt;img src="http://www.c-sharpcorner.com/UploadFile/munnamax/mvcarchitecture02262006091052AM/Images/SolutionView.jpg"&gt;&lt;br /&gt;Solution to our problem&lt;br /&gt;&lt;br /&gt;1. Don’t alter the table add another table which stores the additional columns like address and the junction/extended table should have a foreign key relationship with our main employee table. &lt;br /&gt;2. Create a new Inherited form, which inherits from our main employee master screen. To use Visual Inheritance we need to change the Access Modifiers to Protected from Friend. By default VS .Net puts the access modifier as friend. &lt;br /&gt;&lt;br /&gt;View Layer&lt;br /&gt;&lt;img src="http://blog.stevensanderson.com/blogfiles/2007/ASPNET-MVC-Pipeline/ASP.NET%20MVC%20Pipeline.jpg"&gt;&lt;br /&gt;Our View /UI layer should only have UI related validations in it. We should not have any Business Logic in to it. This gives us the flexibility to change the UI at any time and we can also have different UI for different customers. We can even have web based UI for some of the clients.&lt;br /&gt;&lt;br /&gt;Controller /Director&lt;br /&gt;&lt;br /&gt;Controller is the layer, which responds to the events in the UI. For example Save button click on my employee master screen. This layer should act as an intermediate between our View and Model. Initially we may think that this layer is not necessary. I am also not convinced with this layer. But still we need to think. May be after some days we will get answer for this. This layer will act as just event redirector.&lt;br /&gt;&lt;br /&gt;Model&lt;br /&gt;&lt;br /&gt;This layer has all our business logic. This is the most important layer. This layer will have our core functionality. This layer should be designed in such a way that out core and complex logic should be designed as functions and these function should be marked as overridable so that the inheriting classes can re-use the logic or override the logic. We should not make all the functions in the layer as overridable this may raise some security threats. &lt;br /&gt;&lt;br /&gt;Database Operations&lt;br /&gt;&lt;br /&gt;All the database operations should be done in the Model base class. All the inheriting classes should call this method to do database updates. The design can be like this. In my EmpModel base class I will have a protected array list which will store all the objects which needs to get updated. All the classes which inherits this class should add there objects to this array list and they should call the base class Update method. This helps us to do all the db operations in a single transaction.&lt;br /&gt;&lt;br /&gt;For example in our example, we should create an EmployeeBase class, which will have properties for name and age. Our EmpModelBase should have a new instantiated EmployeeBase object and our view should fill the object properties. Finally the view will call the controller’s Save method and the controller should call the Model save method, there we will add the Employee object to the array list and the function should call the mybase.Update method. This method should loop through the array list and it should fire corresponding db update statements. This is just an example. We need to enhance this depending upon our requirement. &lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;1. Layering Approach helps us a lot and we need to enhance it to get full customizability.&lt;br /&gt;2. We need to enhance this with all our design knowledge. &lt;br /&gt;3. No IDE enforces these patterns, it is up to us to do clean and disciplined way of coding.&lt;br /&gt;4. Once we are used to these approaches / patterns then we are addicted to it.&lt;br /&gt;&lt;img src="http://kitchaiyong.files.wordpress.com/2010/10/figure-1_4-entityframework-poco-code-generator.png?w=673&amp;h=436"&gt;  In Entity Framework 3.5 (.NET 3.5 SP1), there are more than a few restrictions that were imposed on entity classes. Entity classes in EF needed to either be sub classes of EntityObject, or had to implement a set of interfaces we collectively refer to as IPOCO – i.e. IEntityWithKey, IEntityWithChangeTracker and IEntityWithRelationships. These restrictions made it difficult if not downright impossible to build EF friendly domain classes that were truly independent of persistence concerns. It also meant that the testability of the domain classes was severely compromised.&lt;br /&gt;&lt;br /&gt;All of this changes dramatically with the next release of Entity Framework: 4.0 (.NET Framework 4.0). Entity Framework 4.0 introduces support for Plain Old CLR Objects, or POCO types that do not need to comply with any of the following restrictions:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Inheriting from a base class that is required for persistence concerns &lt;br /&gt;Implementing an interface that is required for persistence concerns &lt;br /&gt;The need for metadata or mapping attributes on type members&lt;br /&gt;For instance, in Entity Framework 4.0, you can have entities that are coded as shown:&lt;br /&gt;&lt;br /&gt;    public class Customer&lt;br /&gt;    {&lt;br /&gt;        public string CustomerID { get; set; }&lt;br /&gt;        public string ContactName { get; set; }&lt;br /&gt;        public string City { get; set; }&lt;br /&gt;        public List&lt;Order&gt; Orders { get; set; }&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    public class Order&lt;br /&gt;    {&lt;br /&gt;        public int OrderID { get; set; }&lt;br /&gt;        public Customer Customer { get; set; }&lt;br /&gt;        public DateTime OrderDate { get; set; }&lt;br /&gt;    }You can then use the Entity Framework to query and materialize instances of these types out of the database, get all the other services offered by Entity Framework for change tracking, updating, etc. No more IPOCO, no more EntityObject - just pure POCO.&lt;br /&gt;There’s quite a bit to discuss here, including:&lt;br /&gt;&lt;br /&gt;Overall POCO experience in Entity Framework 4.0 &lt;br /&gt;Change Tracking in POCO &lt;br /&gt;Relationship Fix-up &lt;br /&gt;Complex Types &lt;br /&gt;Deferred (Lazy) Loading and Explicit Loading &lt;br /&gt;Best Practices&lt;br /&gt;In this post, I will focus primarily on the overall experience so that you can get started with POCO in Entity Framework 4.0 right away. I’d like to use a simple example that we can walk through so you can see what it feels like to use POCO in Entity Framework 4.0. I will use the Northwind database, and  we’ll continue to build on this example in subsequent posts.&lt;br /&gt;&lt;br /&gt;Step 1 – Create the Model, turn off default Code Generation&lt;br /&gt;&lt;br /&gt;While POCO allows you to write your own entity classes in a persistence ignorant fashion, there is still the need for you to “plug in” persistence and EF metadata so that your POCO entities can be materialized from the database and persisted back to the database. In order to do this, you will still need to either create an Entity Data Model using the Entity Framework Designer or provide the CSDL, SSDL and MSL metadata files exactly as you have done with Entity Framework 3.5. So first I’ll generate an EDMX using the ADO.NET Entity Data Model Wizard.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.msdn.com/blogfiles/adonet/WindowsLiveWriter/POCOintheEntityFrameworkPart1TheExperien_F9E4/image_thumb.png"&gt; Create a class library project for defining your POCO types. I named mine NorthwindModel. This project will be persistence ignorant and will not have a dependency on the Entity Framework. &lt;br /&gt;Create a class library project that will contain your persistence aware code. I named mine NorthwindData. This project will have a dependency on Entity Framework (System.Data.Entity) in addition to a dependency on the NorthwindModel project. &lt;br /&gt;Add New Item to the NorthwindData project and add an ADO.NET Entity Data Model called Northwind.edmx (doing this will automatically add the dependency to the Entity Framework). &lt;br /&gt;Go through “Generate from Database” and build a model for the Northwind database. &lt;br /&gt;For now, select Categories and Products as the only two tables you are interested in adding to your Entity Data model.&lt;br /&gt;Now that I have my Entity Data model to work with, there is one final step before I start to write code : turn off code generation. After all you are interested in POCO – so remove the Custom Tool that is responsible for generating EntityObject based code for Northwind.edmx. This will turn off code generation for your model.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.msdn.com/blogfiles/adonet/WindowsLiveWriter/POCOintheEntityFrameworkPart1TheExperien_F9E4/image_thumb_1.png"&gt;  We are now ready to write our POCO entities.&lt;br /&gt;&lt;br /&gt;Step 2 – Code up your POCO entities&lt;br /&gt;&lt;br /&gt;I am going to write simple POCO entities for Category and Product. These will be added to the NorthwindModel project. Note that what I show here shouldn’t be taken as best practice and the intention here is to demonstrate the simplest case that works out of the box. We will extend and customize this to our needs as we go forward and build on top of this using Repository and Unit of Work patterns later on.&lt;br /&gt;&lt;br /&gt;Here’s sample code for our Category entity:&lt;br /&gt;&lt;br /&gt;    public class Category&lt;br /&gt;    {&lt;br /&gt;        public int CategoryID { get; set; }&lt;br /&gt;        public string CategoryName { get; set; }&lt;br /&gt;        public string Description { get; set; }&lt;br /&gt;        public byte[] Picture { get; set; }&lt;br /&gt;        public List&lt;Product&gt; Products { get; set; }&lt;br /&gt;    }Note that I have defined properties for scalar properties as well as navigation properties in my model. The Navigation Property in our model translates to a List&lt;Product&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NEW .NET FRAMEWORK- ENTITY FRAMEWORK- A primary goal of the upcoming version of ADO.NET is to raise the level of abstraction for data programming, thus helping to eliminate the impedance mismatch between data models and between languages that application developers would otherwise have to deal with. Two innovations that make this move possible are Language-Integrated Query and the ADO.NET Entity Framework. The Entity Framework exists as a new part of the ADO.NET family of technologies. ADO.NET will LINQ-enable many data access components: LINQ to SQL, LINQ to DataSet and LINQ to Entities.&lt;br /&gt;Every business application has, explicitly or implicitly, a conceptual data model that describes the various elements of the problem domain, as well as each element's structure, the relationships between each element, their constraints, and so on.&lt;br /&gt;&lt;br /&gt;Since currently most applications are written on top of relational databases, sooner or later they'll have to deal with the data represented in a relational form. Even if there was a higher-level conceptual model used during the design, that model is typically not directly "executable", so it needs to be translated into a relational form and applied to a logical database schema and to the application code.&lt;br /&gt;&lt;br /&gt;While the relational model has been extremely effective in the last few decades, it's a model that targets a level of abstraction that is often not appropriate for modeling most business applications created using modern development environments.&lt;br /&gt;&lt;br /&gt;Let's use an example to illustrate this point. Here is a fragment of a variation of the AdventureWorks sample database that's included in Microsoft SQL Server 2005:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC103137.gif"&gt; If we were building a human-resources application on top of this database and at some point wanted to find all of the full-time employees that were hired during 2006 and list their names and titles, we'd have to write the following SQL query:&lt;br /&gt;&lt;br /&gt;SELECT c.FirstName, e.Title&lt;br /&gt;FROM Employee e&lt;br /&gt;INNER JOIN Contact c ON e.EmployeeID = c.ContactID&lt;br /&gt;WHERE e.SalariedFlag = 1 AND e.HireDate &gt;= '2006-01-01'&lt;br /&gt;This query is more complicated than it needs to be for a number of reasons: &lt;br /&gt;&lt;br /&gt;While this particular application only deals with "employees", it still has to deal with the fact that the logical database schema is normalized so the contact information of employees—e.g. their names—is in a separate table. While this does not concern the application, developers would still need to include this knowledge in all queries in the application that deal with employees. In general, applications can't choose the logical database schema (for example, departmental applications that expose data from the company's core system database), and the knowledge of how to map the logical schema to the "appropriate" view of the data that the application requires is implicitly expressed through queries throughout the code.&lt;br /&gt;This example application only deals with full-time employees, so ideally one should not see any other kind of employees. However, since this is a shared database, all employees are in the Employee table, and they are classified using a "SalariedFlag" column; this, again, means that every query issued by this application will embed the knowledge of how to tell apart one type of employee from the other. Ideally, if the application deals with a subset of the data, the system should only present that subset of the data, and the developers should be able to declaratively indicate which is he appropriate subset.&lt;br /&gt;The problems highlighted above are related to the fact that the logical database schema is not always the right view of the data for a given application. Note that in this particular case a more appropriate view could be created by using the same concepts used by the existing schema (that is, tables and columns as exist in the relational model). There are other issues that show up when building data-centric applications that are not easily modeled using the constructs provided by the relational model alone.&lt;br /&gt;&lt;br /&gt;Let's say that another application, this time the sales system, is also built on top of the same database. Using the same logical schema we used in the previous example, we would have to use the following query to obtain all of the sales persons that have sales orders for more than $200,000:&lt;br /&gt;&lt;br /&gt;SELECT SalesPersonID, FirstName, LastName, HireDate&lt;br /&gt;FROM SalesPerson sp&lt;br /&gt;INNER JOIN Employee e ON sp.SalesPersonID = e.EmployeeID&lt;br /&gt;INNER JOIN Contact c ON e.EmployeeID = c.ContactID&lt;br /&gt;INNER JOIN SalesOrder o ON sp.SalesPersonID = o.SalesPersonID&lt;br /&gt;WHERE e.SalariedFlag = 1 AND o.TotalDue &gt; 200000&lt;br /&gt;Again, the query is quite complicated compared to the relatively simple question that we're asking at the conceptual level. The reasons for this complexity include: &lt;br /&gt;&lt;br /&gt;Again, the logical database schema is too fragmented, and it introduces complexity that the application doesn't need. In this example, the application is probably only interested in "sales persons" and "sales orders"; the fact that the sales persons' information is spread across 3 tables is uninteresting, but yet is knowledge that the application code has to have.&lt;br /&gt;Conceptually, we know that a sales person is associated to zero or more sales orders; however, queries need to be formulated in a way that can't leverage that knowledge; instead, this query has to do an explicit join to walk through this association.&lt;br /&gt;In addition to the issues pointed out above, both queries present another interesting problem: they return information about employees and sales persons respectively. However, you cannot ask the system for an "employee" or a "sales person". The system does not have knowledge of what that means. All the values returned from queries are simply projections that copy some of the values in the table rows to the result-set, losing any relationship to the source of the data. This means that there is no common understanding throughout the application code about the core application concepts such as employee, or can it adequately enforce constraints associated with that concept. Furthermore, since the results are simply projections, the source information that describes where the data came from is lost, requiring developers to explicitly tell the system how inserts, updates and deletes should be done by using specific SQL statements.&lt;br /&gt;&lt;br /&gt;The issues we just discussed fall into two main classes: &lt;br /&gt;&lt;br /&gt;Those related to the fact that the logical (relational) model and related infrastructure cannot leverage the conceptual domain knowledge of the application data model, hence it is not able to understand business entities, their relationships among each other, or their constraints. &lt;br /&gt;Those related to the practical problem that databases have logical schemas that typically do not match the application needs; those schemas often cannot be adapted because they are shared across many applications or due to non-functional requirements such as operations, data ownership, performance or security.&lt;br /&gt;The issues described above are very common across most data-centric enterprise applications. In order to address these issues ADO.NET introduces the Entity Framework, which consists of a data model and a set of design-time and run-time services that allow developers to describe the application data and interact with it at a "conceptual" level of abstraction that is appropriate for business applications, and that helps isolate the application from the underlying logical database schemas. &lt;br /&gt;&lt;br /&gt;Modeling Data at the Conceptual Level of Abstraction: The Entity Data Model&lt;br /&gt;In order to address the first issue identified in the previous section what we need is a way of describing the data structure (the schema) that uses higher-level constructs. &lt;br /&gt;&lt;br /&gt;The Entity Data Model—or EDM for short—is an Entity-Relationship data model. The key concepts introduced by the EDM are: &lt;br /&gt;&lt;br /&gt;Entity: entities are instances of Entity Types (e.g. Employee, SalesOrder), which are richly structured records with a key. Entities are grouped in Entity-Sets. &lt;br /&gt;Relationship: relationships associate entities, and are instances of Relationship Types (e.g. SalesOrder posted-by SalesPerson). Relationships are grouped in Relationship-Sets.&lt;br /&gt;The introduction of an explicit concept of Entity and Relationship allows developers to be much more explicit when describing schemas. In addition to these core concepts, the EDM supports various constructs that further extend its expressivity. For example: &lt;br /&gt;&lt;br /&gt;Inheritance: entity types can be defined so they inherit from other types (e.g. Employee could inherit from Contact). This kind of inheritance is strictly structural, meaning that there is no "behavior" inherited as it happens in object-oriented programming languages. What's in inherited is the structure of the base entity type; in addition to inheriting its structure, a instances of the derived entity type satisfy the "is a" relationship when tested against the base entity type.&lt;br /&gt;Complex types: in addition to the usual scalar types supported by most databases, the EDM supports the definition of complex types and their use as members of entity types. For example, you could define an Address complex type that has StreetAddress, City and State properties and then add a property of type Address to the Contact entity type.&lt;br /&gt;With all of these new tools, we can re-define the logical schema that we used in the previous section using a conceptual model:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC106503.gif"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.msdn.com/blogfiles/adonet/WindowsLiveWriter/POCOTemplatesfortheEntityFrameworkWalkth_F3DA/image231_thumb.png"&gt;LINQ to Entities: Language-Integrated Query&lt;br /&gt;Despite the great advancements in integration of databases and development environments, there is still an impedance mismatch between the two that's not easily solved by just enhancing the libraries and APIs used for data programming. While the Entity Framework minimizes the impedance mismatch between logical rows and objects almost entirely, the integration of the Entity Framework with extensions to existing programming languages to naturally express queries within the language itself helps to eliminate it completely.&lt;br /&gt;&lt;br /&gt;More specifically, most business application developers today have to deal with at least two programming languages: the language that's used to model the business logic and the presentation layer—which is typically a high-level object-oriented language such as C# or Visual Basic- and the language that's used to interact with the database—which is typically some SQL dialect.&lt;br /&gt;&lt;br /&gt;Not only does this mean that developers have to master several languages to be effective at application development, but this also introduces seams throughout the application code whenever there are jumps between the two environments. For example, in most cases applications execute queries against databases by using a data-access API such as ADO.NET and specifying the query in quotes inside the program; since the query is just a string literal to the compiler, it's not checked for appropriate syntax or validated to make sure that it references existing elements such as tables and column names.&lt;br /&gt;&lt;br /&gt;Addressing this issue is one of the key themes of the next round of the Microsoft C# and Visual Basic programming languages.&lt;br /&gt;&lt;br /&gt;Language-Integrated Query&lt;br /&gt;The next generation of the C# and Visual Basic programming languages contain a number of innovations around making it easier to manipulate data in application code. The LINQ project consists of a set of extensions to these languages and supporting libraries that allow users to formulate queries within the programming language itself, without having to resort to use another language that's embedded as string literals in the user program and cannot be understood or verified during compilation. &lt;br /&gt;&lt;br /&gt;Queries formulated using LINQ can run against various data sources such as in-memory data structures, XML documents and through ADO.NET against databases, entity models and DataSets. While some of these use different implementations under the covers, all of them expose the same syntax and language constructs.&lt;br /&gt;&lt;br /&gt;The actual syntax details for queries are specific to each programming language, and they remain the same across LINQ data sources. For example, here is a Visual Basic query that works against a regular in-memory array:&lt;br /&gt;&lt;br /&gt;Dim numbers() As Integer = {5, 7, 1, 4, 9, 3, 2, 6, 8}&lt;br /&gt;&lt;br /&gt;Dim smallnumbers = From n In numbers _&lt;br /&gt;                   Where n &lt;= 5 _&lt;br /&gt;                   Select n _&lt;br /&gt;                   Order By n&lt;br /&gt;&lt;br /&gt;For Each Dim n In smallnumbers&lt;br /&gt;    Console.WriteLine(n)&lt;br /&gt;Next&lt;br /&gt;Here is the C# version of the same query:&lt;br /&gt;&lt;br /&gt;int[] numbers = new int[] {5, 7, 1, 4, 9, 3, 2, 6, 8};&lt;br /&gt;&lt;br /&gt;var smallnumbers = from n in numbers&lt;br /&gt;                   where n &lt;= 5&lt;br /&gt;                   orderby n&lt;br /&gt;                   select n;&lt;br /&gt;&lt;br /&gt;foreach(var n in smallnumbers) {&lt;br /&gt;    Console.WriteLine(n);&lt;br /&gt;}&lt;br /&gt;Queries against data sources such as entity models and DataSets look the same syntactically, as can be seen in the sections below.&lt;br /&gt;&lt;br /&gt;For more background and further details on the LINQ project see [LINQ] in the references section.&lt;br /&gt;&lt;br /&gt;LINQ and the ADO.NET Entity Framework&lt;br /&gt;As we discussed in the section on ADO.NET Entity Framework Object Services, the upcoming version of ADO.NET includes a layer that can expose database data as regular .NET objects. Furthermore, ADO.NET tools will generate .NET classes that represent the EDM schema in the .NET environment. This makes the object layer an ideal target for LINQ support, allowing developers to formulate queries against a database right from the programming language used to build the business logic. This capability is known as LINQ to Entities. &lt;br /&gt;&lt;br /&gt;For example, earlier in the document we discussed this code fragment that would query for objects in a database:&lt;br /&gt;&lt;br /&gt; using(AdventureWorksDB aw = new &lt;br /&gt;AdventureWorksDB(Settings.Default.AdventureWorks)) {&lt;br /&gt;    Query&lt;SalesPerson&gt; newSalesPeople = aw.GetQuery&lt;SalesPerson&gt;(&lt;br /&gt;        "SELECT VALUE sp " +&lt;br /&gt;        "FROM AdventureWorks.AdventureWorksDB.SalesPeople AS sp " +&lt;br /&gt;        "WHERE sp.HireDate &gt; @date",&lt;br /&gt;        new QueryParameter("@date", hireDate));&lt;br /&gt;&lt;br /&gt;    foreach(SalesPerson p in newSalesPeople) {&lt;br /&gt;        Console.WriteLine("{0}\t{1}", p.FirstName, p.LastName);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;By leveraging the types that were automatically generated by the code-gen tool, plus the LINQ support in ADO.NET, we can re-write the this as:&lt;br /&gt;&lt;br /&gt;using(AdventureWorksDB aw = new &lt;br /&gt;AdventureWorksDB(Settings.Default.AdventureWorks)) {&lt;br /&gt;    var newSalesPeople = from p in aw.SalesPeople&lt;br /&gt;                         where p.HireDate &gt; hireDate&lt;br /&gt;                         select p;&lt;br /&gt;&lt;br /&gt;    foreach(SalesPerson p in newSalesPeople) {&lt;br /&gt;        Console.WriteLine("{0}\t{1}", p.FirstName, p.LastName);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Or, in Visual Basic syntax:&lt;br /&gt;&lt;br /&gt;Using aw As New AdventureWorksDB(Settings.Default.AdventureWorks)&lt;br /&gt;    Dim newSalesPeople = From p In aw.SalesPeople _&lt;br /&gt;                         Where p.HireDate &gt; hireDate _&lt;br /&gt;                         Select p&lt;br /&gt;&lt;br /&gt;    For Each p As SalesPerson In newSalesPeople&lt;br /&gt;        Console.WriteLine("{0} {1}", p.FirstName, p.LastName)&lt;br /&gt;    Next&lt;br /&gt;End Using&lt;br /&gt;This query written using LINQ will be processed by the compiler, which means that you'll get compile-time validation as the rest of the application code would. Syntax errors as well as errors in member names and data types will be cached by the compiler and reported at compile time instead of the usual run-time errors that are commonplace during development using SQL and a host programming language.&lt;br /&gt;&lt;br /&gt;The results of these queries are still objects that represent ADO.NET entities, so you can manipulate and update them using the same means that are available when using Entity SQL for query formulation. &lt;br /&gt;&lt;br /&gt;While this example is just showing a very simple query, LINQ queries can be very expressive and can include sorting, grouping, joins, projection, etc. Queries can produce "flat" results or manufacture complex shapes for the result by using regular C#/Visual Basic expressions to produce each row.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-323733491021252743?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/323733491021252743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/08/model-view-controllor-and-pocos-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/323733491021252743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/323733491021252743'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/08/model-view-controllor-and-pocos-in.html' title='MODEL VIEW CONTROLLOR AND POCOS  IN ASP.NET'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-9129796438664343932</id><published>2010-05-24T02:13:00.000-07:00</published><updated>2010-05-24T02:23:55.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='How a Smurf Attack Works'/><title type='text'>How a Smurf Attack Works</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/S_pEIgUKtBI/AAAAAAAACC8/A8dvCD28Nu0/s1600/smurf-attack.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 272px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/S_pEIgUKtBI/AAAAAAAACC8/A8dvCD28Nu0/s320/smurf-attack.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474763209926423570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;How a Smurf Attack Works&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Smurf attacks are a type of denial of service attack, in which the Internet Control Message Protocol (ICMP) and broadcasts are being exploited. Normal ICMP requests (commonly referred to as pings) are used to verify network connectivity. But since they require a response from the target machine, they can maliciously be used to consume network resources if many are sent at once.&lt;br /&gt;&lt;br /&gt;Broadcasts come into the equation, however, since they give capability to send requests to every computer on a network. Obviously if a broadcast were to be sent multiple times, the traffic would slow down the network. Imagine 100 computers sending back an ICMP request at the same time- network performance would take a huge dip.&lt;br /&gt;&lt;br /&gt;It should be noted that smurf attacks work via an attacker spoofing the IP address of the broadcast. The IP address is actually the IP address of the victim the attacker chooses. When every computer on the network responds to the ICMP request, all of these requests go to the computer the attacker borrowed the IP address from. In this instance, the network only acts as an amplifier to the attack, not necessarily the victim.&lt;br /&gt;Unfortunately, smurf attacks leave little room for victims to recover from an attack. Instead, the attack must be staved off at the network level via filtering. We can do this specifically through the no ip directed-broadcast command in Cisco routers.&lt;br /&gt;&lt;br /&gt;No IP Directed-Broadcast&lt;br /&gt;An IP Directed-Broadcast is simply an IP packet, of which has a destination address of a particular IP subnet. The broadcast in this instance is sent from a different network, as one could probably guess from the command name. (The broadcast is being directed via IP, not a unicast address.)&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/S_pFjZ_veKI/AAAAAAAACDk/Xb7xWGWxOC0/s1600/Photo0383.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/S_pFjZ_veKI/AAAAAAAACDk/Xb7xWGWxOC0/s320/Photo0383.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474764771598235810" /&gt;&lt;/a&gt;&lt;br /&gt;Keep in mind that if you are running a Cisco IOS version 12.0 or above, you do not need to follow these steps. No IP Directed-Broadcast was enabled by default after IOS 12.0. It is strongly recommended that No IP Directed-Broadcast be enabled if your IOS version is below 12.0. If you aren’t sure which version you have, simply type in the following commands from user exec mode:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_pEy2JfG7I/AAAAAAAACDM/k6x_C0e0tRA/s1600/show-version1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 62px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_pEy2JfG7I/AAAAAAAACDM/k6x_C0e0tRA/s320/show-version1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474763937341709234" /&gt;&lt;/a&gt;&lt;br /&gt;As you can tell in the above example, the version number is higher than 12.0. In this instance, we would not need to take further action. If the number happens to be below 12.0, then you will need to apply the No IP Directed-Broadcast command. First, you should find out the naming convention for your router’s interfaces, as show below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_pE8rNXaTI/AAAAAAAACDU/EcNnsaGhcGE/s1600/show-ip-interface.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 101px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_pE8rNXaTI/AAAAAAAACDU/EcNnsaGhcGE/s320/show-ip-interface.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474764106203883826" /&gt;&lt;/a&gt;&lt;br /&gt;Now that we know our interface naming convention, FastEthernet 0/0, we can modify it. You may wish to write this down, since this will be what you will always refer to your interfaces to from now on. You may now proceed to apply the command to the interface, as seen below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_pFNiI8SAI/AAAAAAAACDc/3hNdizzOAMA/s1600/no-ip-directed-broadcast.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 75px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_pFNiI8SAI/AAAAAAAACDc/3hNdizzOAMA/s320/no-ip-directed-broadcast.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474764395827185666" /&gt;&lt;/a&gt;&lt;br /&gt;Note that we only applied this to a single interface (FastEthernet 0/0).It should be applied to all interfaces for maximum protection.&lt;br /&gt;&lt;br /&gt;Closing Comments&lt;br /&gt;Very few IP applications will make use of the IP directed broadcast, so it is almost always perfectly fine to leave it off. You can, however, configure access lists to permit or deny IP Directed-Broadcasts. This is usually only feasible with smaller networks, since access lists can be quite tedious to maintain on all but the smallest networks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/S_pEVQ3msDI/AAAAAAAACDE/kcs9GdLg8hI/s1600/Photo0337.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/S_pEVQ3msDI/AAAAAAAACDE/kcs9GdLg8hI/s320/Photo0337.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5474763429118390322" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-9129796438664343932?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/9129796438664343932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/how-smurf-attack-works.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/9129796438664343932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/9129796438664343932'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/how-smurf-attack-works.html' title='How a Smurf Attack Works'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XbdOXdG5XQs/S_pEIgUKtBI/AAAAAAAACC8/A8dvCD28Nu0/s72-c/smurf-attack.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-1651589787754387499</id><published>2010-05-17T03:43:00.000-07:00</published><updated>2010-05-17T03:48:06.469-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 1.1 WINDOWS SERVER 2003  IIS6.0 RUNNABLE CODES'/><title type='text'>ASP.NET 1.1 WINDOWS SERVER 2003  IIS6.0 RUNNABLE CODES</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_Ee19Bk18I/AAAAAAAACCk/hienMf9eFMQ/s1600/Photo0356.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_Ee19Bk18I/AAAAAAAACCk/hienMf9eFMQ/s320/Photo0356.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188934494934978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_EeZL7zAKI/AAAAAAAACCc/-HoqGTFSKLA/s1600/addaspnet1web.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_EeZL7zAKI/AAAAAAAACCc/-HoqGTFSKLA/s320/addaspnet1web.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188440281022626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_EeVkIo9jI/AAAAAAAACCU/kWymTaKQxxM/s1600/editaspnet1web.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_EeVkIo9jI/AAAAAAAACCU/kWymTaKQxxM/s320/editaspnet1web.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188378057864754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/S_EeR2UNRgI/AAAAAAAACCM/ub4fnFYelGw/s1600/gridview.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/S_EeR2UNRgI/AAAAAAAACCM/ub4fnFYelGw/s320/gridview.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188314218743298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_EeOUqVzfI/AAAAAAAACCE/ROb0Zuu47Sw/s1600/report.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/S_EeOUqVzfI/AAAAAAAACCE/ROb0Zuu47Sw/s320/report.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188253645164018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_EeJzwEJ4I/AAAAAAAACB8/Dp4SUyn_SiY/s1600/search1.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S_EeJzwEJ4I/AAAAAAAACB8/Dp4SUyn_SiY/s320/search1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5472188176091326338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;ASP.NET 1.1 WINDOWS SERVER 2003  IIS6.0 RUNNABLE CODES&lt;/blockquote&gt;  pASSWORD TEXT BOX - TextMode="password"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-1651589787754387499?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/1651589787754387499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/aspnet-11-windows-server-2003-iis60.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1651589787754387499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1651589787754387499'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/aspnet-11-windows-server-2003-iis60.html' title='&lt;blockquote&gt;ASP.NET 1.1 WINDOWS SERVER 2003  IIS6.0 RUNNABLE CODES&lt;/blockquote&gt;'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XbdOXdG5XQs/S_Ee19Bk18I/AAAAAAAACCk/hienMf9eFMQ/s72-c/Photo0356.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-5544639090460700556</id><published>2010-05-10T02:40:00.000-07:00</published><updated>2010-05-12T02:32:12.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enabling ASP.NET 2.0 in Vista RTM'/><title type='text'>Enabling ASP.NET 2.0 in Vista RTM</title><content type='html'>&lt;blockquote&gt;Developing Web Applications on Windows Vista with Visual Studio 2005: Tip/Trick: Using IIS7 on Vista with VS 2005 &lt;/blockquote&gt;Microsoft Windows Vista RC1 is now available to the public (view the press release), and many Visual Studio 2005 web developers are eager to start building ASP.NET 2.0 applications running under Internet Information Services 7.0, which is included with the Vista operating system.  To build web apps under this environment, there are just a few steps you need to perform:&lt;br /&gt;&lt;br /&gt; &lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S-p07-ePSEI/AAAAAAAACBs/UCbaTKIdDmw/s1600/a1.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S-p07-ePSEI/AAAAAAAACBs/UCbaTKIdDmw/s320/a1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5470313271125821506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1.       First, you need to install the IIS 7.0 and ASP.NET 2.0 Windows components, since they are not automatically installed by default. Because Visual Studio 2005 uses the IIS metabase APIs to create and configure applications in IIS, you must also install a metabase compatibility component for IIS 7.0.  To do this, use the “Programs and Features” control panel in Vista, following the steps below. &lt;br /&gt;To install IIS 7.0 and ASP.NET 2.0 on Windows Vista&lt;br /&gt; &lt;br /&gt;1.       In Windows Vista, open Control Panel and then click Programs and Features.&lt;br /&gt;&lt;br /&gt;In the right pane, click Turn Windows features on or off.&lt;br /&gt;The Windows Features dialog box opens.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/S-p1JpCnTVI/AAAAAAAACB0/nS6IKuMPbj4/s1600/a2.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 222px; height: 320px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/S-p1JpCnTVI/AAAAAAAACB0/nS6IKuMPbj4/s320/a2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5470313505890979154" /&gt;&lt;/a&gt;&lt;br /&gt;2.       Select the Internet Information Services check box.&lt;br /&gt;&lt;br /&gt;3.       Double-click (or expand) Web Management Tools, double-click IIS 6 Management Compatibility, and then select the IIS 6 Metabase and IIS 6 Configuration Compatibility check box.&lt;br /&gt;&lt;br /&gt;4.       Double-click (or expand) World Wide Web Services, double-click Application Development Features, and then select the ASP.NET check box.&lt;br /&gt;&lt;br /&gt;Note   The related options that are necessary for Web application development will automatically be selected.&lt;br /&gt;&lt;br /&gt;5.       Click OK to start the ASP.NET installation process.&lt;br /&gt;&lt;br /&gt;Second, you must run Visual Studio 2005 in the context of an administrator account before you can develop web applications on Windows Vista. By default, Windows runs applications in a limited-privilege user account even when you are logged on to the computer as an administrator.  To explicitly run Visual Studio as administrator, follow the steps below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To run Visual Studio with administrative privileges in Windows Vista&lt;br /&gt; &lt;br /&gt;1.       In Windows Vista, click Start, click All Programs, and then locate Visual Studio.&lt;br /&gt;&lt;br /&gt;2.       Right-click Microsoft Visual Studio 2005, and then click Run as administrator.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more note:  If you happen to use SQL Server Express for database development, you'll also need to download and install SQL Server Express SP1, which contains updates required to run on Vista.&lt;br /&gt;&lt;br /&gt;Enjoy developing on Vista and be sure to let us know what you think of IIS 7.0!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A few people have pinged me over the last week asking about how to use VS 2005 with an IIS 7.0 web-site on Windows Vista.  Specifically, they've run into an issue where they see a dialog message asking them to install the FrontPage Server Extensions, or they get a "You must be a member of the administrators group" message when they try to connect (see dialog below):&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/S-pzNIMtBvI/AAAAAAAACBU/B58vZ_bYOQo/s1600/ff.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 310px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/S-pzNIMtBvI/AAAAAAAACBU/B58vZ_bYOQo/s320/ff.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5470311366771148530" /&gt;&lt;/a&gt;&lt;br /&gt;quickly summarize you need to follow the below two steps to enable it:&lt;br /&gt;&lt;br /&gt;1) You need to make sure that you have the the optional "IIS 6 Management Compatibility" option installed within IIS7.  This installs an API for the new configuration system that is compatible with the old Metabase APIs (which is what VS 2005 uses).  You can select this using the "Turn Windows Features on or Off" option in the Vista Control Panel:&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/S-pzhfbnleI/AAAAAAAACBc/wsmNZLrRULU/s1600/fgsdf.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 222px; height: 320px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/S-pzhfbnleI/AAAAAAAACBc/wsmNZLrRULU/s320/fgsdf.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5470311716605105634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) You need to make sure you launch VS 2005 with "elevated" privledges so that you have admin privledges to connect to IIS (this is needed to debug a service, as well as create sites and/or change bindings that impact the entire machine).  You can do this by right-clicking on the VS icon and select the "Run as Administrator" option when launching VS:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/S-p0C7sY-eI/AAAAAAAACBk/9ZcVNPxbaUA/s1600/fsa.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/S-p0C7sY-eI/AAAAAAAACBk/9ZcVNPxbaUA/s320/fsa.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5470312291127327202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note that this is needed even if your user is already in the administrators group if you have UAC enabled (which is on by default with Vista).  If you disable UAC (which you can also do via the control panel), then this second step isn't required.  Running VS 2005 with "elevated" privledges won't be required if you use the built-in VS 2005 Web-Server (since it has reduced privledges already).  It is only required when connecting and running/debugging with IIS locally.&lt;br /&gt;&lt;br /&gt;We'll be updating Visual Studio 2005 to have more accurate error messages to help guide you to the above steps more naturally in the future.  Until then, just use the above steps and you are good to go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this post, I will share how I overcome this problem by manually performing extra steps to make ASP.NET works in Visual Studio 2005. Before I start, you should understand that Vista RTM installation comes with total security. That means all web development features are locked down.&lt;br /&gt;&lt;br /&gt;The following steps will unlock the web development features so you can get back to your web development:&lt;br /&gt;&lt;br /&gt;Open “Services”. Now you can do this very easy by typing Services in the search textbox located at the bottom of start menu panel. &lt;br /&gt;Find “Windows Process Activation Service”. Change its Startup Type to Automatic, and “Start” the service. &lt;br /&gt;Next, find “World Wide Publishing Service”. Notice that you can not directly start this service because it is in “disabled” state. The trick is by changing the Startup Type to Automatic first, then you can start this service. &lt;br /&gt;Next, open “Command Prompt”. Again you can do this quickly by typing “cmd” in the search textbox. &lt;br /&gt;Run this command “aspnet_regiis -i” inside ASP.NET 2.0 Framework folder. This will re-register ASP.NET 2.0 handlers and mapping to all existing web applications. &lt;br /&gt;Finally, run this command “net start w3svc”. Your web server should be started perfectly at this time. &lt;br /&gt;Try to open one of your HTTP project in Visual Studio 2005 and run one of your webform. Here you go. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- &lt;%@ Page Language="VB" AutoEventWireup="false" CodeFile="add.aspx.vb" Inherits="add" %&gt;&lt;br /&gt;&lt;%@import Namespace="System.Data.OleDb" %&gt;&lt;br /&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;br /&gt;&lt;script  runat="server"&gt;&lt;br /&gt;    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\landreq.mdb" &amp; """")&lt;br /&gt;    Dim adp As New OleDbDataAdapter("select * from landreq", conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;    Sub add(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;        If TextBox1.Text = "" Or TextBox2.Text = "" Then&lt;br /&gt;            MsgBox(" PLEASE ENTER DATA BEFORE ADD")&lt;br /&gt;            conn.Close()&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;        Try&lt;br /&gt;            adp = New OleDbDataAdapter("INSERT INTO LANDREQ VALUES(" &amp; TextBox1.Text &amp; ",'" &amp; TextBox4.Text &amp; "', '" &amp; TextBox2.Text &amp; "', '" &amp; TextBox3.Text &amp; "', '" &amp; TextBox5.Text &amp; "', '" &amp; TextBox7.Text &amp; "', '" &amp; TextBox6.Text &amp; "')", conn)&lt;br /&gt;            MsgBox("1 Record have inserted successfully!", , "ADD NEW RECORD")&lt;br /&gt;            dset.Clear()&lt;br /&gt;            adp.Fill(dset, "landreq")&lt;br /&gt;            conn.Close()&lt;br /&gt;            TextBox1.Text = ""&lt;br /&gt;            TextBox2.Text = ""&lt;br /&gt;            TextBox3.Text = ""&lt;br /&gt;            TextBox4.Text = ""&lt;br /&gt;            TextBox5.Text = ""&lt;br /&gt;            TextBox6.Text = ""&lt;br /&gt;            TextBox7.Text = ""&lt;br /&gt;                    &lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MsgBox(ex.ToString)&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;/script&gt;&lt;br /&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml" &gt;&lt;br /&gt;&lt;head runat="server"&gt;&lt;br /&gt;    &lt;title&gt;LAND REQUISITION SYSTEM - ADD NEW RECORD&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;strong&gt;&lt;/strong&gt;&lt;blockquote&gt;&lt;%@ Page Language="VB" AutoEventWireup="false" CodeFile="search.aspx.vb" Inherits="search" %&gt;&lt;br /&gt;&lt;%@import Namespace="System.Data.OleDb" %&gt;&lt;br /&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;br /&gt;&lt;script  runat="server"&gt;&lt;br /&gt;    Sub home1(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;        Response.Redirect("Home.aspx")&lt;br /&gt;    End Sub&lt;br /&gt;   Sub search(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;        On Error Resume Next&lt;br /&gt;    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\landreq.mdb" &amp; """")&lt;br /&gt;    dim st&lt;br /&gt;    if dropdownlist1.text="slno" then&lt;br /&gt;            st = "select * from landreq where " &amp; DropDownList1.Text &amp; "=" &amp; TextBox8.Text&lt;br /&gt;    else&lt;br /&gt;            st = "select * from landreq where " &amp; DropDownList1.Text &amp; "='" &amp; TextBox8.Text &amp; "'"&lt;br /&gt;        End If&lt;br /&gt;        MsgBox(st)&lt;br /&gt;     Dim adp As New OleDbDataAdapter(st, conn)&lt;br /&gt;    Dim dset As New Data.DataSet&lt;br /&gt;       adp.Fill(dset, "lanreq")&lt;br /&gt;        TextBox1.Text = dset.Tables(0).Rows(0).Item(0)&lt;br /&gt;        TextBox4.Text = dset.Tables(0).Rows(0).Item(1)&lt;br /&gt;        TextBox2.Text = dset.Tables(0).Rows(0).Item(2)&lt;br /&gt;        TextBox3.Text = dset.Tables(0).Rows(0).Item(3)&lt;br /&gt;        TextBox5.Text = dset.Tables(0).Rows(0).Item(4)&lt;br /&gt;        TextBox7.Text = dset.Tables(0).Rows(0).Item(5)&lt;br /&gt;        TextBox6.Text = dset.Tables(0).Rows(0).Item(6)&lt;br /&gt;     End Sub &lt;br /&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml" &gt;&lt;br /&gt;&lt;head runat="server"&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-5544639090460700556?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/5544639090460700556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/sample-aspnet-35-web-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5544639090460700556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5544639090460700556'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/sample-aspnet-35-web-application.html' title='Enabling ASP.NET 2.0 in Vista RTM'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XbdOXdG5XQs/S-p07-ePSEI/AAAAAAAACBs/UCbaTKIdDmw/s72-c/a1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-6251772115565779713</id><published>2010-05-10T02:33:00.000-07:00</published><updated>2010-05-10T02:38:56.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Differences Between IIS and the ASP.NET Development Server'/><title type='text'>Core Differences Between IIS and the ASP.NET Development Server</title><content type='html'>&lt;blockquote&gt;When testing an ASP.NET application locally, chances are you are using the ASP.NET Development Web Server. However, the production website is most likely powered IIS. There are some differences between how these web servers handle requests, and these differences can have important consequences. This tutorial explores some of the more germane differences.&lt;/blockquote&gt;&lt;br /&gt;&lt;im src="http://static.asp.net/asp.net/images/hosting/06/CS/aspnet_tutorial06_WebServerDiff_cs_figure01.png"&gt;&lt;br /&gt;The good news is that most web host providers have some sort of permissions tool that allows you to specify file system permissions in your website. Grant the anonymous ASP.NET account write access to the root directory and then revisit the book review page. (If needed, contact your web host provider for assistance on how to grant write permissions to the default ASP.NET account.) This time the page should load without error and the LastTYASP35Access.txt file should be created successfully.&lt;br /&gt;&lt;br /&gt;The take away here is that because the ASP.NET Development Server operates under a different security context than IIS, it is possible that your ASP.NET pages that read or write to the file system, read from or write to the Windows Event Log, or read or write to the Windows registry will work as expected on development but generate exceptions when on production. When building a web application that will be deployed to a shared web hosting environment, do not read or write to the Event Log or the Windows registry. Also take note of any ASP.NET pages that read from or write to the file system as you may need to grant read and write privileges on the appropriate folders in the production environment.&lt;br /&gt;&lt;br /&gt;Differences On Serving Static Content&lt;br /&gt;Another core difference between IIS and the ASP.NET Development Server is how they handle requests for static content. Every request that comes into the ASP.NET Development Server, whether for an ASP.NET page, an image, or a JavaScript file, is processed by the ASP.NET runtime. By default, IIS only invokes the ASP.NET runtime when a request comes in for an ASP.NET resource, such as an ASP.NET web page, a Web Service, and so forth. Requests for static content - images, CSS files, JavaScript files, PDF files, ZIP files, and the like - are retrieved by IIS without the involvement of the ASP.NET runtime. (It is possible to instruct IIS to work with the ASP.NET runtime when serving static content; consult the "Performing Forms-Based Authentication and URL Authentication on Static Files with IIS 7" section in this tutorial for more information.)&lt;br /&gt;&lt;br /&gt;The ASP.NET runtime performs a number of steps to generate the requested content, including authentication (identifying the requestor) and authorization (determining if the requestor has permission to view the requested content). A popular form of authentication is forms-based authentication, in which a user is identified by entering their credentials - usually a username and password - into textboxes on a web page. Upon validating their credentials, the website stores an authentication ticket cookie on the user's browser, which is sent with every subsequent request to the website and is what is used to authenticate the user. Moreover, it is possible to specify URL authorization rules that dictate what users can or cannot access a particular folder. Many ASP.NET websites use forms-based authentication and URL authorization to support user accounts and to define portions of the site that are only accessible to authenticated users or users that belong to a certain role.&lt;br /&gt;&lt;br /&gt;Note: For a thorough examination of ASP.NET's forms-based authentication, URL authorization, and other user account-related features, be sure to check out my Website Security Tutorials.&lt;br /&gt;&lt;br /&gt;Consider a website that supports user accounts using forms-based authorization and has a folder that, using URL authorization, is configured to only allow authenticated users. Imagine that this folder contains ASP.NET pages and PDF files and that the intent is that only authenticated users can view these PDF files.&lt;br /&gt;&lt;br /&gt;What happens if a visitor attempts to view one of these PDF files by entering the URL directly in his browser's Address bar? To find out, let's create a new folder in the Book Reviews site, add some PDF files, and configure the site to use URL authorization to prohibit anonymous users from visiting this folder. If you download the demo application you'll see that I created a folder called PrivateDocs and added a PDF from my Website Security Tutorials (how fitting!). The PrivateDocs folder also contains a Web.config file that specifies the URL authorization rules to deny anonymous users:&lt;br /&gt;&lt;br /&gt;&lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;    &lt;system.web&gt;&lt;br /&gt;         &lt;authorization&gt;&lt;br /&gt;            &lt;deny  users="?" /&gt;&lt;br /&gt;         &lt;/authorization&gt;&lt;br /&gt;     &lt;/system.web&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt; Finally, I configured the web application to use forms-based authentication by updating the Web.config file in the root directory, replacing:&lt;br /&gt;&lt;br /&gt;&lt;authentication mode="Windows" /&gt;With:&lt;br /&gt;&lt;br /&gt;&lt;authentication mode="Forms" /&gt;&lt;br /&gt;Whenever a user visits an ASP.NET application his browser sends a request to the website. That request is picked up by the web server software, which coordinates with the ASP.NET runtime to generate and return the content for the requested resource. The Internet Information Services (IIS) are a suite of services that provide common Internet-based functionality for Windows servers. IIS is the most commonly used web server for ASP.NET applications in production environments; it's most likely the web server software being used by your web host provider to serve your ASP.NET application. IIS can also be used as the web server software in the development environment, although this entails installing IIS and properly configuring it.&lt;br /&gt;&lt;img src="http://static.asp.net/asp.net/images/hosting/06/CS/aspnet_tutorial06_WebServerDiff_cs_figure02.png"&gt;&lt;br /&gt;The ASP.NET Development Server is an alternative web server option for the development environment; it ships with and is integrated into Visual Studio. Unless the web application has been configured to use IIS, the ASP.NET Development Server is automatically started and used as the web server the first time you visit a web page from within Visual Studio. The demo web applications we created back in the Determining What Files Need to Be Deployed tutorial were both file system-based web applications that were not configured to use IIS. Therefore, when visiting either of these websites from within Visual Studio the ASP.NET Development Server is used.&lt;br /&gt;&lt;br /&gt;In a perfect world the development and production environments would be identical. However, as we discussed in the preceding tutorial it is not uncommon for the environments to have differing configuration settings. Using different web server software in the environments adds another variable that must be taken into consideration when deploying an application. This tutorial covers the key differences between IIS and the ASP.NET Development Server. Because of these differences there are scenarios where code that runs flawlessly in the development environment throws an exception or behaves differently when executed in production. &lt;br /&gt;&lt;br /&gt;Security Context Differences&lt;br /&gt;Whenever the web server software handles an incoming request it associates that request with a particular security context. This security context information is used by the operating system to determine what actions are permissible by the request. For example, an ASP.NET page might include code that logs some message to a file on disk. In order for this ASP.NET page to execute without error, the security context must have the appropriate file system-level permissions, namely write permissions on that file.&lt;br /&gt;&lt;br /&gt;Using the ASP.NET Development Server, visit the site and enter the direct URL to one of the PDF files in your browser's Address bar. If you downloaded the website associated with this tutorial the URL should look something like: http://localhost:portNumber/PrivateDocs/aspnet_tutorial01_Basics_vb.pdf&lt;br /&gt;&lt;br /&gt;Entering this URL into the Address bar causes the browser to send a request to the ASP.NET Development Server for the file. The ASP.NET Development Server hands off the request to the ASP.NET runtime for processing. Because we have not yet logged in, and because the Web.config in the PrivateDocs folder is configured to deny anonymous access, the ASP.NET runtime automatically redirects us to the login page, Login.aspx (see Figure 3). When redirecting the user to the log in page, ASP.NET includes a ReturnUrl querystring parameter that indicates the page the user was attempting to view. After successfully logging in the user can be returned to this page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.asp.net/asp.net/images/hosting/06/CS/aspnet_tutorial06_WebServerDiff_cs_figure04.png"&gt;&lt;br /&gt;The ASP.NET Development Server associates incoming requests with the security context of the currently logged on user. If you are logged on to your desktop as an administrator, then the ASP.NET pages served by the ASP.NET Development Server will have the same access rights as an administrator. However, ASP.NET requests handled by IIS are associated with a specific machine account. By default, the Network Service machine account is used by IIS versions 6 and 7, although your web host provider may have configured a unique account for each customer. What's more, your web host provider has likely given limited permissions to this machine account. The net result is that you may have web pages that execute without error in the development environment, but generate authorization-related exceptions when hosted in the production environment. &lt;br /&gt;&lt;br /&gt;To show this type of error in action I've created a page in the Book Reviews website that creates a file on disk that stores the most recent date and time someone viewed the Teach Yourself ASP.NET 3.5 in 24 Hours review. To follow along, open the ~/Tech/TYASP35.aspx page and add the following code to the Page_Load event handler:&lt;br /&gt;&lt;br /&gt;protected void  Page_Load(object sender, EventArgs e)&lt;br /&gt;  {&lt;br /&gt;  string filePath =  Server.MapPath("~/LastTYASP35Access.txt");&lt;br /&gt;  string contents =  string.Format("Last accessed on {0} by {1}",&lt;br /&gt;                                     DateTime.Now.ToString(), Request.UserHostAddress);&lt;br /&gt; &lt;br /&gt;    System.IO.File.WriteAllText(filePath,  contents);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Note: The File.WriteAllText method creates a new file if it does not exist and then writes the specified contents to it. If the file already exists, it's existing content is overwritten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-6251772115565779713?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/6251772115565779713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/core-differences-between-iis-and-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6251772115565779713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6251772115565779713'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/05/core-differences-between-iis-and-aspnet.html' title='Core Differences Between IIS and the ASP.NET Development Server'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-232422734160158894</id><published>2010-04-26T21:32:00.000-07:00</published><updated>2010-04-26T21:39:34.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL Clone'/><title type='text'>SSL Clone</title><content type='html'>&lt;img src="http://www.securityfocus.com/unix/images/ssl_02.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gyraf.dk/gy_pd/ssl/ssl_sch.gif" height=800 weight=600&gt;&lt;br /&gt;&lt;b&gt;SSThe compressor is cloned from our good old SSL4044E desk, dating back from '85. The SSL mixbus compressor is an integral part of the mixer's main quad fader and autofade system - cards 82E26 and 82E27, and as you can see if you compare these to my schematic, a series of changes have been made for rehousing the circuit. The main changes concerns the electronically balanced input and output and the removal of unneded components regarding the autofade and main fader circuits. Another change is that the sidechain is common to both VCA's, making better tracking abilities - your mix wont' "tilt" so easy when you're compressing heavily. We did things like that to the SSL in the old days. This might seem like a big change, but actually the sonics are preserved very close to the original, and tracking errors are cancelled. &lt;br /&gt;This is a design I did way back in my early years, so you'll have to bear with the ugly pcb layouts. And sorry, this design is absolutely free from tubes and transformers. But it has a nice moving coil meter at least.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/S9ZpIqiiQYI/AAAAAAAACA8/PZHZ-K7C-ds/s1600/160320101137.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/S9ZpIqiiQYI/AAAAAAAACA8/PZHZ-K7C-ds/s320/160320101137.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5464670795439686018" /&gt;&lt;/a&gt;&lt;br /&gt;My reason for doing this clone is that the SSL is one of the worlds widely recognized stereo mix compressors - it has a well known sound, and is lusted after by many recording engenieers. But the SSL4000 desk is prized as to be out of reach for most small studio owners. This design is - as you'll see - quite simple, easy and economically reachable, so I thought it would make a fine DIY-project for people that know their soldering iron and wants to start building pro quality DIY audio equipment. The beauty of this design is that - contrary to a lot of other esoteric projects - the components are (relatively) easy available anywhere, and no special knowledge, tools or adjustments are needed.&lt;br /&gt;&lt;br /&gt;THE COMPONENTS:&lt;br /&gt;&lt;br /&gt;The DBX 202XT VCA can be very hard to get these days, so I designed a substitution circuit based on the THAT2180/2181 type VCA - a recent version of the DBX2150 that SSL also uses for their channel compressors. This substitute circuit is based on reverse-engeineering a 202XT VCA - it turned out to consist of ten paralleled 2150's with a common low-impedance buffer for the control inputs. So this is the substitute, but done with only one THAT2180 (or 2181). &lt;br /&gt;&lt;br /&gt;I've built the compressor with both the 202, 2150 and 2181, and the "sound" dosent seem to be that different, only the 202 may tend to be a little more transparant than the 2150 - but that's not always a good thing in compressors. Btw, DBX chip production is long gone now, but "Thats" are more than decent substitutes. The "That 2180" is a pre-trimmed replacement for the 2150, the 2181 has external trim. If using the pre-trimmed THAT2180 VCA's, simply cut off (or bend to the side) pin4, which is the distortion trim connection. The THAT VCA's are available - not everywhere, but still - from several web-based sources nowadays - my favorite supplier is ProFusion in the UK - they will sell small amounts, and will ship to all over the world&lt;br /&gt;&lt;br /&gt;As this compressor was originally designed for using the - now obsolete - DBX2150 VCA's, there is a change in one resistor that is necessary to obtain the correct ratios - look here to see the component in question - the 100K resistor marked has to be replaced by a 127K resistor to compensate for higher input current sensitivity on the new chips. &lt;br /&gt;The anatomy of this compressor is surprisingly simple:&lt;br /&gt;&lt;br /&gt;Input signals are de-balanced by a couple of NE5534's, who in turn are driving the VCA in current mode via 27K resistors - the THAT VCA's are current in - current out devices (note that on the old component overlay, these resistors are marked 15K look here). From the VCA's the signal is taken to a current-to-voltage converter combined with a simple, yet proven, balanced output drive stage, consisting of two NE5532's. This concludes the story of the audio path. Not much electronics to mess up your precious audio signal here.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/S9ZpxGaisGI/AAAAAAAACBE/OLr9JpjGJ3M/s1600/Photo0277.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/S9ZpxGaisGI/AAAAAAAACBE/OLr9JpjGJ3M/s320/Photo0277.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5464671490117120098" /&gt;&lt;/a&gt;&lt;br /&gt;The signals from the input opamps are also summed via 47k's and sent to the input of the sidechain VCA. The purpose of this VCA is to act like a tracking "dummy" VCA, paralleling the GR action of the main VCA's, and thereby making it possible (in the original design, the 4000E console) to use the single set of main VCA's for compression, fader, computer and autofader at the same time - without having to resort to less predictable feed-forward compression schemes. So this is a combination of a feed-forward and a feed-back arcitechture, acting mostly as a feed-back compressor&lt;br /&gt;&lt;img src="http://www.securityfocus.com/unix/images/ssl_02.jpg"&gt;&lt;br /&gt;The sidechain signal that is obtained after the VCA is then full-wave rectified by two TL074-stages, and at this point an offset is added - and signal gain is controlled - by the ratio switch. The ratio switch actually changes the threshold a bit to compensate for level flukturations caused by different ratio settings. This is the only part of the design that in any way differs from a direct off-the-application-note design.&lt;br /&gt;&lt;br /&gt;The rectified sidechain DC is now fed thru the bypass switch and one of the bank of resistors selected with the "attack time" switch, to charge a tantalum capacitor selected with the "release time" switch. These release tantalums are bypassed with different sized discharge resistors, each delivering the desired release time. The fifth step on the release is an "Auto" setting, combining two release time constants (91k+6u8 and 750k+u47). This will give short time constants for short programme peaks, but if compression is going on for a longer time, the slow time constant will set in. Right after the book. &lt;br /&gt;&lt;br /&gt;This rectified - and now timed - DC sidechain signal is buffered, and sent to three different circuits: &lt;br /&gt;&lt;img src="http://www.sslshopper.com/assets/images/ssl-vpn.gif"&gt;&lt;br /&gt;First of all it's summed with a DC voltage coming from the "makeup gain" pot, and used to control the main VCA's. On the original SSL compressor the makeup gain pot is active all the time, so when bypassed there's excess gain. On the control PCB I've made an option for disconnecting the makeup gain when bypassed, leaving the makeup gain more useable for in/out comparison. This can be shorted if you prefer the original scheme - but I don't think you will. &lt;br /&gt;&lt;img src="http://d23c4a18d71mxm.cloudfront.net/wp-content/uploads/2008/12/ssl-attack.png"&gt;&lt;br /&gt;The DC sidechain control signal is also summed with another DC voltage - coming from the "threshold" pot - and used to control the sidechain VCA. In this way the added gain in the sidechain VCA looks to the rectifier like there's more signal coming in, changing the threshold this way. The "real" threshold to be overcome before charging the attack/release caps, is the 0.6V AK voltage across the diode placed between the fullwave rectifier and the A/R timing. Note that, for use with modern-day levels, the threshold potentiometer can seem to be too sensitive; in this case, mount a 47K resistor between the control PCB and the +side of the threshold potentiometer - look here for details&lt;br /&gt;&lt;br /&gt;The last use of the rectified, timed and and buffered signal is driving the 1mA GR-meter for monitoring of the ongoing compression. This is linear scale, at about 50uA/dB, making a 1mA meter showing 20dB full-scale. If you want to have a meter reading of 0-10dB full scale, replace the 2K resistor (on the main board, right next to the connector to the control board) with a 1K. You can use just about any linear-scale meter you like, just changing the 2K resistor in series with it. For a 100uA meter, the simplest way is to shunt a 330R resistor across the meter. Another option is to mount a trimmer potentiometer right at the meter, and adjust to taste&lt;br /&gt;&lt;img src="http://www.esecuritytogo.com/images/sonicwall_ssl-vpn_access_anywhere.gif"&gt;&lt;br /&gt;The power supply part should be pretty much self-explanatory, the only weird part being that it's both +-12V and +-15V. The 12V's are used in the board as subregulators for obtaining predictable gains in case the main (+-15V) supply fluctuates.&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/8553936691209849313-232422734160158894?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/232422734160158894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2010/04/ssl-clone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/232422734160158894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/232422734160158894'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2010/04/ssl-clone.html' title='SSL Clone'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XbdOXdG5XQs/S9ZpIqiiQYI/AAAAAAAACA8/PZHZ-K7C-ds/s72-c/160320101137.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-8247318684993104415</id><published>2009-11-12T21:21:00.000-08:00</published><updated>2009-11-12T21:34:34.309-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PASSWORD SNIFFER'/><title type='text'>PASSWORD SNIFFER</title><content type='html'>SmartSniff - Monitoring TCP/IP packets on your network adapter &lt;br /&gt;Mail PassView - Recover POP3/IMAP/SMTP email passwords. &lt;br /&gt;Dialupass - Recover VPN/RAS/Dialup passwords &lt;br /&gt;___________________________________________________________________&lt;br /&gt;&lt;img src="http://www.nirsoft.net/utils/sniffpass.gif"&gt;&lt;br /&gt;SniffPass is small password monitoring software that listens to your network, capture the passwords that pass through your network adapter, and display them on the screen instantly. SniffPass can capture the passwords of the following Protocols: POP3, IMAP4, SMTP, FTP, and HTTP (basic authentication passwords). &lt;br /&gt;You can use this utility to recover lost Web/FTP/Email passwords. &lt;br /&gt;In order to start using SniffPass, follow the instructions below: &lt;br /&gt;If you have Windows 9x, Windows NT, or Windows XP with SP1, you must download and install the WinPcap capture driver in order to use SniffPass. &lt;br /&gt;In all other versions of Windows (including Windows XP with SP2), installing this capture driver is optional. If you don't install this driver, you can still use the raw sockets method for capturing the passwords. &lt;br /&gt;Run the executable file of SniffPass (SniffPass.exe). &lt;br /&gt;From the File menu, select "Start Capture", or simply click the green play button in the toolbar. If it's the first time that you use SniffPass, you'll be asked to select the capture method and the network adapter that you want to use. &lt;br /&gt;After you select the desired capture options, SniffPass listen to your network adapter, and display instantly any password that it find. &lt;br /&gt;&lt;br /&gt;Command-Line Options&lt;br /&gt;Command  Description  &lt;br /&gt;/NoCapDriver  Starts SniffPass without loading the WinPcap Capture Driver.  &lt;br /&gt;/NoReg  Starts SniffPass without loading/saving your settings to the Registry.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Translating SniffPass to other languages&lt;br /&gt;SniffPass allows you to easily translate all menus, dialog-boxes, and other strings to other languages. &lt;br /&gt;In order to do that, follow the instructions below: &lt;br /&gt;Run SniffPass with /savelangfile parameter: &lt;br /&gt;SniffPass.exe /savelangfile &lt;br /&gt;A file named SniffPass_lng.ini will be created in the folder of SniffPass utility. &lt;br /&gt;Open the created language file in Notepad or in any other text editor. &lt;br /&gt;Translate all menus, dialog-boxes, and string entries to the desired language. Optionally, you can also add your name and/or a link to your Web site. (TranslatorName and TranslatorURL values) If you add this information, it'll be used in the 'About' window. &lt;br /&gt;After you finish the translation, Run SniffPass, and all translated strings will be loaded from the language file. &lt;br /&gt;If you want to run SniffPass without the translation, simply rename the language file, or move it to another folder. &lt;br /&gt;&lt;img src="http://www.nirsoft.net/utils/socketsniff.gif"&gt;&lt;br /&gt;SocketSniff allows you to watch the Windows Sockets (WinSock) activity of the selected process. &lt;br /&gt;For each created socket, the following information is displayed: socket handle, socket type, local and remote addresses, local and remote ports, total number of send/receive bytes, and more. You can also watch the content of each send or receive call, in Ascii mode or as Hex Dump&lt;br /&gt;SocketSniff doesn't require any installation process or additional dll files. In order to start using it, simply run the executable file - SocketSniff.exe &lt;br /&gt;After running it, select the process that you want to inspect, and click Ok. You must select a process that already loaded the winsock library, otherwise, the action will fail. After clicking Ok, SocketSniff will start showing the activity of Windows socket for the selected process. &lt;br /&gt;The upper pane displays the list of all created sockets. When selecting a socket in the upper pane, the lower pane displays the receive and send calls of the selected socket. &lt;br /&gt;&lt;br /&gt;Using SocketSniff In Windows Vista&lt;br /&gt;SocketSniff can work in Vista even when UAC (User Account Control) is turned on, as long as the process that you wish to inspect run in the same account and security context of SocketSniff. However, if you want to inspect a process that runs under administrator account, you must also run SocketSniff as administrator. (right-click on SocketSniff.exe and choose 'Run As Administrator') &lt;br /&gt;&lt;br /&gt;Translating SocketSniff to other languages&lt;br /&gt;In order to translate SocketSniff to other language, follow the instructions below: &lt;br /&gt;Run SocketSniff with /savelangfile parameter: &lt;br /&gt;SocketSniff.exe /savelangfile &lt;br /&gt;A file named SocketSniff_lng.ini will be created in the folder of SocketSniff utility. &lt;br /&gt;Open the created language file in Notepad or in any other text editor. &lt;br /&gt;Translate all string entries to the desired language. Optionally, you can also add your name and/or a link to your Web site. (TranslatorName and TranslatorURL values) If you add this information, it'll be used in the 'About' window. &lt;br /&gt;After you finish the translation, Run SocketSniff, and all translated strings will be loaded from the language file. &lt;br /&gt;If you want to run SocketSniff without the translation, simply rename the language file, or move it to another folder. &lt;br /&gt;____________________________________________________________________&lt;br /&gt;Network Tools - Other network monitoring tools of NirSoft. &lt;br /&gt;NetResView - View all computers/shares on your network. &lt;br /&gt;SmartSniff - Capture TCP/IP packets on your network adapter &lt;br /&gt;DownTester - Test the download speed of your Internet connection. &lt;br /&gt;SocketSniff - Windows Sockets (WinSock) Sniffer &lt;br /&gt;SniffPass - Capture POP3/IMAP/SMTP/FTP/HTTP passwords on your network adapter. &lt;br /&gt;AdapterWatch - Monitor your network adapters &lt;br /&gt;IPNetInfo - Retrieve IP Address Information from WHOIS servers &lt;br /&gt;_______________________________________________________________&lt;br /&gt;&lt;img src="http://www.nirsoft.net/utils/cports.gif"&gt;&lt;br /&gt;CurrPorts is network monitoring software that displays the list of all currently opened TCP/IP and UDP ports on your local computer. For each port in the list, information about the process that opened the port is also displayed, including the process name, full path of the process, version information of the process (product name, file description, and so on), the time that the process was created, and the user that created it. &lt;br /&gt;In addition, CurrPorts allows you to close unwanted TCP connections, kill the process that opened the ports, and save the TCP/UDP ports information to HTML file , XML file, or to tab-delimited text file. &lt;br /&gt;CurrPorts also automatically mark with pink color suspicious TCP/UDP ports owned by unidentified applications (Applications without version information and icons) &lt;br /&gt;CurrPorts utility is a standalone executable, and it doesn't require any installation process or additional DLLs. In order to start using it, just copy the executable file (cports.exe) to any folder you like, and run it. &lt;br /&gt;The main window of CurrPorts displays the list of all currently opened TCP and UDP ports. You can select one or more items, and then close the selected connections, copy the ports information to the clipboard, or save it to HTML/XML/Text file. If you don't want to view all available columns, or you want to change the order of the columns on the screen and in the files you save, select 'Choose Column' from the View menu, and select the desired columns and their order. In order to sort the list by specific column, click on the header of the desired column. &lt;br /&gt;&lt;br /&gt;Command-Line Options&lt;br /&gt;/stext &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into a regular text file.  &lt;br /&gt;/stab &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into a tab-delimited text file.  &lt;br /&gt;/scomma &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into a comma-delimited text file.  &lt;br /&gt;/stabular &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into a tabular text file.  &lt;br /&gt;/shtml &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into HTML file (Horizontal).  &lt;br /&gt;/sverhtml &lt;Filename&gt;  Save the list of all opened TCP/UDP ports into HTML file (Vertical).  &lt;br /&gt;/sxml &lt;Filename&gt;  Save the list of all opened TCP/UDP ports to XML file.  &lt;br /&gt;/sort &lt;column&gt;  This command-line option can be used with other save options for sorting by the desired column. If you don't specify this option, the list is sorted according to the last sort that you made from the user interface. The &lt;column&gt; parameter can specify the column index (0 for the first column, 1 for the second column, and so on) or the name of the column, like "Remote Port" and "Remote Address". You can specify the '~' prefix character (e.g: "~Remote Address") if you want to sort in descending order. You can put multiple /sort in the command-line if you want to sort by multiple columns. &lt;br /&gt;Examples: &lt;br /&gt;cports.exe /shtml "f:\temp\1.html" /sort 2 /sort ~1 &lt;br /&gt;cports.exe /shtml "f:\temp\1.html" /sort "Protocol" /sort "~Remote Address" &lt;br /&gt; &lt;br /&gt;/nosort  When you specify this command-line option, the list will be saved without any sorting.  &lt;br /&gt;/filter &lt;filter string&gt;  Start CurrPorts with the specified filters. If you want to specify more than one filter, use the ';' character as a delimiter.  &lt;br /&gt;/cfg &lt;cfg filename&gt;  Start CurrPorts with the specified config file.  &lt;br /&gt;&lt;br /&gt;Here's some examples: &lt;br /&gt;&lt;br /&gt;Save all opened TCP/IP ports created by Internet Explorer browser to HTML file: &lt;br /&gt;cports.exe /filter "include:process:iexplore" /shtml "c:\temp\ports.html" &lt;br /&gt;Add all opened ports information to ports.txt (as tab-delimited text file). This example only works when running it from a command-prompt window. &lt;br /&gt;cports.exe /stab "" &gt;&gt; c:\temp\cports1.txt &lt;br /&gt;Start CurrPorts with filter that will only display the opened ports of Internet Explorer and FireFox: &lt;br /&gt;cports.exe /filter "include:process:firefox;include:process:iexplore" &lt;br /&gt;&lt;br /&gt;Closing a Connection From Command-Line&lt;br /&gt;Starting from version 1.09, you can close one or more connections from command-line, by using /close parameter. &lt;br /&gt;The syntax of /close command: &lt;br /&gt;/close &lt;Local Address&gt; &lt;Local Port&gt; &lt;Remote Address&gt; &lt;Remote Port&gt; &lt;br /&gt;For each parameter, you can specify "*" in order to include all ports or addresses. &lt;br /&gt;Examples: &lt;br /&gt;&lt;br /&gt;Close all connections with remote port 80 and remote address 192.168.1.10: &lt;br /&gt;/close * * 192.168.1.10 80 &lt;br /&gt;Close all connections with remote port 80 (for all remote addresses): &lt;br /&gt;/close * * * 80 &lt;br /&gt;Close all connections to remote address 192.168.20.30: &lt;br /&gt;/close * * 192.168.20.30 * &lt;br /&gt;Close all connections with local port 80: &lt;br /&gt;/close * 80 * * &lt;br /&gt;&lt;br /&gt;Translating CurrPorts To Another Language&lt;br /&gt;CurrPorts allows you to easily translate all menus, dialog-boxes, and other strings to other languages. &lt;br /&gt;In order to do that, follow the instructions below: &lt;br /&gt;Run CurrPorts with /savelangfile parameter: &lt;br /&gt;cports.exe /savelangfile &lt;br /&gt;A file named cports_lng.ini will be created in the folder of CurrPorts utility. &lt;br /&gt;Open the created language file in Notepad or in any other text editor. &lt;br /&gt;Translate all menus, dialog-boxes, and string entries to the desired language. &lt;br /&gt;After you finish the translation, Run CurrPorts, and all translated strings will be loaded from the language file. &lt;br /&gt;If you want to run CurrPorts without the translation, simply rename the language file, or move it to another folder. &lt;br /&gt;_______________________________________&lt;br /&gt;Disk Doctors Outlook Mail Recovery - Repairs corrupt and damaged .pst files. &lt;br /&gt;MessenPass - Recover the passwords of 'Instant Messenger' applications. &lt;br /&gt;IE PassView - Recover the passwords of Internet Explorer. &lt;br /&gt;Dialupass - Recover VPN/RAS/Dialup passwords &lt;br /&gt;Asterisk Logger - Recover passwords stored behind asterisk (**) characters. &lt;br /&gt;Network Password Recovery - Recover Windows XP/Vista network passwords (Credentials file) &lt;br /&gt;____________________________________________&lt;br /&gt;&lt;img src="http://www.nirsoft.net/utils/mailpv.gif"&gt;&lt;br /&gt;Mail PassView is a small password-recovery tool that reveals the passwords and other account details for the following email clients: &lt;br /&gt;&lt;br /&gt;Outlook Express &lt;br /&gt;Microsoft Outlook 2000 (POP3 and SMTP Accounts only) &lt;br /&gt;Microsoft Outlook 2002/2003/2007 (POP3, IMAP, HTTP and SMTP Accounts) &lt;br /&gt;Windows Mail &lt;br /&gt;Windows Live Mail &lt;br /&gt;IncrediMail &lt;br /&gt;Eudora &lt;br /&gt;Netscape 6.x/7.x (If the password is not encrypted with master password) &lt;br /&gt;Mozilla Thunderbird (If the password is not encrypted with master password) &lt;br /&gt;Group Mail Free &lt;br /&gt;Yahoo! Mail - If the password is saved in Yahoo! Messenger application. &lt;br /&gt;Hotmail/MSN mail - If the password is saved in MSN/Windows/Live Messenger application. &lt;br /&gt;Gmail - If the password is saved by Gmail Notifier application, Google Desktop, or by Google Talk. &lt;br /&gt;For each email account, the following fields are displayed: Account Name, Application, Email, Server, Server Type (POP3/IMAP/SMTP), User Name, and the Password. &lt;br /&gt;&lt;br /&gt;If your email program is not supported by Mail PassView, you can still recover your password by using this Password Sniffer&lt;br /&gt;Translating Mail PassView to other languages&lt;br /&gt;Mail PassView allows you to easily translate all dialog-boxes, menus, and strings to other language. &lt;br /&gt;In order to do that, follow the instructions below: &lt;br /&gt;Run Mail PassView with /savelangfile parameter: &lt;br /&gt;mailpv.exe /savelangfile &lt;br /&gt;A file named mailpv_lng.ini will be created in the folder of Mail PassView utility. &lt;br /&gt;Open the created language file in Notepad or in any other text editor. &lt;br /&gt;Translate all menus, dialog-boxes, and string entries to the desired language. &lt;br /&gt;After you finish the translation, Run Mail PassView, and all translated strings will be loaded from the language file. &lt;br /&gt;If you want to run Mail PassView without the translation, simply rename the language file, or move it to another folder. &lt;br /&gt;_____________________&lt;br /&gt;&lt;img src="http://www.nirsoft.net/utils/dialupass2.gif"&gt;&lt;br /&gt;When you use the "Dial-Up Networking" module for connecting to the internet or to other networks, the operating system give you the option to store the password and use it when it needed. Although the password is constantly stored in your computer, the operating system doesn't allow you to watch it. if you forget your password and you want to extract it from your computer, you can use the Dialupass utility for viewing the password. &lt;br /&gt;This utility enumerates all Dial-Up entries on your computer and reveals their logon details: User Name, Password and Domain.&lt;br /&gt;it works perfectly in the following operating systems: Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, and Windows XP. In Windows 2000 and Windows XP, the Dialupass utility can reveal the Dial-Up passwords only if you are logged on with administrator privileges. Using Dialupass&lt;br /&gt;The Dialupass utility is a standalone application, and it doesn't require any installation process or additional DLLs. Just copy the dialupass.exe to any folder you want and run it. After you run it, it'll instantly show all your Dial-Up accounts and their user/password details.&lt;br /&gt;You can also select one or more Dial-Up items (by using Ctrl and Shift keys), and then save them into a readable or tab-limited text file , or copy them into the clipboard (Ctrl+C).&lt;br /&gt;&lt;br /&gt;the Dialupass utility also allows you to easily edit the logon details: user name, password and domain. You can get the editing dialog-box by double-clicking the item you want to edit. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Viewing the logon details of other users&lt;br /&gt;Under Windows 2000/XP, you can view the logon details of other users in the same computer. Simply press Ctrl+U, and select the desired user, or select to view the passwords of all user profiles in your system. In order to view the logon details of other users under Windows NT, you should run Dialupass in advanced mode, by using the /adv option: dialupass.exe /adv &lt;br /&gt;&lt;br /&gt;Command-Line Options&lt;br /&gt;Option Description  &lt;br /&gt;/stext &lt;Filename&gt;  Save the list of all dial-up items into a regular text file.  &lt;br /&gt;/stab &lt;Filename&gt;  Save the list of all dial-up items into a tab-delimited text file.  &lt;br /&gt;/stabular &lt;Filename&gt;  Save the list of all dial-up items into a tabular text file.  &lt;br /&gt;/shtml &lt;Filename&gt;  Save the list of all dial-up items into horizontal HTML file.  &lt;br /&gt;/sverhtml &lt;Filename&gt;  Save the list of all dial-up items into vertical HTML file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-8247318684993104415?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/8247318684993104415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/password-sniffer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8247318684993104415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8247318684993104415'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/password-sniffer.html' title='PASSWORD SNIFFER'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-1030357432716607291</id><published>2009-11-08T23:05:00.000-08:00</published><updated>2009-11-21T01:27:45.688-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET 2008 DATA PROGRAMMING WITH CRYSTAL REPORT'/><title type='text'>VB.NET 2008 DATA PROGRAMMING WITH CRYSTAL REPORT</title><content type='html'>&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;VB.NET 2008  DATA PROGRAMMING WITH CRYSTAL REPORT&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/11/21/image0014_q5tEH_21985.jpg" alt="image0014"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 288px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SwexS2AMq2I/AAAAAAAACAg/9fBCNJZBe2s/s320/report.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5406484814973676386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 288px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SwexMAyG6XI/AAAAAAAACAY/RDboRsicg1k/s320/query.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5406484697608284530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 289px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/SwexDohGCUI/AAAAAAAACAQ/24z5bMw29Ww/s320/gridview.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5406484553655519554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 191px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/Swew4YO0wHI/AAAAAAAACAI/DK5h9d7m8Jo/s320/main.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5406484360305361010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 288px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SwewsopLojI/AAAAAAAACAA/Vemb_wn5dLc/s320/login.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5406484158552449586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/Sv0yipL-YtI/AAAAAAAAB_4/kUmKiALh8NA/s320/rio.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5403530698667483858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/Svf4CLPr_1I/AAAAAAAAB_w/cb0rUi7Afss/s1600-h/ghy.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 263px; height: 216px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/Svf4CLPr_1I/AAAAAAAAB_w/cb0rUi7Afss/s320/ghy.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5402058994316214098" /&gt;&lt;/a&gt;&lt;br /&gt;DataSet and DataAdapter in ASP.NET 2.0 - Part 1 of 2&lt;br /&gt;What are DataSets and DataAdapters&lt;br /&gt;Datasets store a copy of data from the database tables. However, Datasets can not directly retrieve data from Databases. DataAdapters are used to link Databases with DataSets. If we see diagrammatically, &lt;br /&gt;DataSets &lt; ----- DataAdapters &lt; ----- DataProviders &lt; ----- Databases&lt;br /&gt;DataSets and DataAdapters are used to display and manipulate data from databases.&lt;br /&gt;Reading Data into a Dataset &lt;br /&gt;To read data into Dataset, you need to:&lt;br /&gt;Create a database connection and then a dataset object. &lt;br /&gt;Create a DataAdapter object and refer it to the DB connection already created. Note that every DataAdapter has to refer to a connection object. For example, SqlDataAdapter refers to SqlDataConnection. &lt;br /&gt;The Fill method of DataAdapter has to be called to populate the Dataset object.&lt;br /&gt;We elaborate the above mentioned steps by giving examples of how each step can be performed: &lt;br /&gt;&lt;br /&gt;1)      As we said, our first task is to create a connection to database. We would explore later that there is no need of opening and closing database connection explicitly while you deal with DataAdapter objects. All you have to do is, create a connection to database using the code like this:&lt;br /&gt;___________________________________&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Class Form1&lt;br /&gt;    Dim conn As New OleDb.OleDbConnection&lt;br /&gt;    Dim adp As New OleDb.OleDbDataAdapter("select * from EMP", conn)&lt;br /&gt;    Dim row As DataRow&lt;br /&gt;    Dim bm As BindingManagerBase&lt;br /&gt;    Dim dset As New DataSet&lt;br /&gt;&lt;br /&gt;    Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            ' Insert code to process data.&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source" + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "EMP")&lt;br /&gt;        'row = dset.Tables("EMP").Rows(0)&lt;br /&gt;        row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;        TextBox1.Text = row(0).ToString&lt;br /&gt;        TextBox2.Text = row(1).ToString&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        i = TextBox1.Text&lt;br /&gt;        If i = 1 Then&lt;br /&gt;            MessageBox.Show("Beginning Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i -= 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("EMP").Rows(i - 1)&lt;br /&gt;                TextBox1.Text = row(0).ToString&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        i = TextBox1.Text&lt;br /&gt;        If i = dset.Tables("EMP").Rows.Count Then&lt;br /&gt;            MessageBox.Show("End Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i += 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("EMP").Rows(i - 1)&lt;br /&gt;                TextBox1.Text = row(0).ToString&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("EMP").Rows(0)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        par = "INSERT INTO EMP" + "(" + "ID, NAME" + ") " + "VALUES" + "( " + "'" + TextBox1.Text + "'" + ", " + "'" + TextBox2.Text + "'" + ");"&lt;br /&gt;        MessageBox.Show(par)&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        cmd.CommandType = CommandType.Text&lt;br /&gt;        adp.SelectCommand = cmd&lt;br /&gt;        adp.Fill(dset, "EMP")&lt;br /&gt;        row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;        TextBox1.Text = row(0).ToString&lt;br /&gt;        TextBox2.Text = row(1).ToString&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click&lt;br /&gt;        TextBox1.Text = ""&lt;br /&gt;        TextBox2.Text = ""&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;to know total row in this table :&lt;br /&gt;MessageBox.Show(dset.Tables("EMP").Rows.Count)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;_______________________________-&lt;br /&gt;Public Class Form1&lt;br /&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        Dim conn As New OleDb.OleDbConnection&lt;br /&gt;        Dim dset As New DataSet&lt;br /&gt;        Dim constr1 As String&lt;br /&gt;        constr1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Str("\") + "C:\Documents and Settings\admin\My Documents\EMP.mdb" + Str("\")&lt;br /&gt;        conn.ConnectionString = constr1&lt;br /&gt;        MessageBox.Show(conn.ConnectionString)&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            ' Insert code to process data.&lt;br /&gt;&lt;br /&gt;            Dim adp As New OleDb.OleDbDataAdapter("select * from EMP", conn)&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            Dim row As DataRow&lt;br /&gt;            row = dset.Tables("EMP").Rows(0)&lt;br /&gt;            TextBox1.Text = row(0)(0).ToString&lt;br /&gt;            TextBox2.Text = row(0)(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source" + ex.ToString)&lt;br /&gt;&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;br /&gt;________________________________________________________________________&lt;br /&gt;&lt;br /&gt;SqlConnection con = new SqlConnection ("data source=localhost; uid= sa; pwd= abc; database=Northwind");&lt;br /&gt;&lt;br /&gt;We would use Northwind database by using OleDbConnection. The Code would &lt;br /&gt;&lt;br /&gt;Look like:&lt;br /&gt;&lt;br /&gt;OleDbConnection con= new OleDbConnection ("Provider =Microsoft.JET.OLEDB.4.0;" + "Data Source=C:\\Program Files\\Microsoft Office\\Office\\Samples\\Northwind.mdb");&lt;br /&gt;&lt;br /&gt; 2)      Now, create a Dataset object which would be used for storing and manipulating data. You would be writing something like&lt;br /&gt;&lt;br /&gt; DataSet myDataSet = new DataSet ("Northwind");&lt;br /&gt;&lt;br /&gt;Since the name of source database is Northwind, we have passed the same name in the constructor. &lt;br /&gt;&lt;br /&gt;3)      The DataSet has been created but as we said before, this DataSet object can not directly interact with Database. We need to create a DataAdapter object which would refer to the connection already created. The following line would declare a DataAdapter object: &lt;br /&gt;&lt;br /&gt;OleDbAdapter myDataAdapter = new OleDbAdapter (CommandObject, con);&lt;br /&gt;&lt;br /&gt; The above line demonstrates one of many constructors of OleDbAdapter class. This constructor takes a command object and a database connection object. The purpose of command object is to retrieve suitable data needed for populating DataSet. As we know SQL commands directly interacting with database tables, a similar command can be assigned to CommandObject. &lt;br /&gt;&lt;br /&gt;OleDbCommand CommandObject = new OleDbCommand ("Select * from employee");&lt;br /&gt;&lt;br /&gt;Whatever data you need for your Dataset should be retrieved by using suitable command here. The second argument of OleDbAdapter constructor is connection object con.  &lt;br /&gt;&lt;br /&gt;Alternative approach for initializing DataAdapter object:&lt;br /&gt;&lt;br /&gt;Place a null instead of CommandObject while you initialize the OleDbAdapter object:&lt;br /&gt;&lt;br /&gt; OleDbAdapter myDataAdapter = new OleDbAdapter (null, con);&lt;br /&gt;&lt;br /&gt;Then you assign your query to the CommandObject and write:&lt;br /&gt;&lt;br /&gt;myDataAdapter.SelectCommand = CommandObject; &lt;br /&gt;&lt;br /&gt;4)      Now, the bridge between the DataSet and Database has been created. You can populate dataset by using the Fill command:&lt;br /&gt;&lt;br /&gt;myDataAdapter.Fill (myDataSet, "EmployeeData");&lt;br /&gt;&lt;br /&gt; The first argument to Fill function is the DataSet name which we want to populate. The second argument is the name of DataTable. The results of SQL queries go into DataTable. In this example, we have created a DataTable named EmployeeData and the values in this table would be the results of SQL query: "Select * from employee". In this way, we can use a dataset for storing data from many database tables.&lt;br /&gt;&lt;br /&gt;5)      DataTables within a Dataset can be accessed using Tables. To access EmployeeData, we need to write: &lt;br /&gt;&lt;br /&gt;myDataSet.Tables["EmployeeData"]. &lt;br /&gt;To access rows in each Data Table, you need to write: &lt;br /&gt;&lt;br /&gt;myDataSet.Tables["EmployeeData].Rows&lt;br /&gt;___________________________________________________________________&lt;br /&gt;OleDbConnection con= new OleDbConnection ("Provider =Microsoft.JET.OLEDB.4.0;" + "Data Source=C:\\Program Files\\Microsoft Office\\Office\\Samples\\Northwind.mdb");&lt;br /&gt;&lt;br /&gt;OleDbCommand CommandObject = new OleDbCommand ("Select * from employee");&lt;br /&gt;&lt;br /&gt;OleDbAdapter myDataAdapter = new OleDbAdapter (CommandObject, con);&lt;br /&gt;&lt;br /&gt;//DataSet myDataSet = new DataSet ("Northwind");&lt;br /&gt;myDataAdapter.Fill (myDataSet, "EmployeeData");&lt;br /&gt;&lt;br /&gt;Place a null instead of CommandObject while you initialize the OleDbAdapter object: &lt;br /&gt;&lt;br /&gt;OleDbAdapter myDataAdapter = new OleDbAdapter (null, con); &lt;br /&gt;&lt;br /&gt;Then you assign your query to the CommandObject and write: &lt;br /&gt;&lt;br /&gt;myDataAdapter.SelectCommand = CommandObject;&lt;br /&gt;________________________________________________&lt;br /&gt;Listing 1.1 would combine all the steps we have elaborated so far.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;1.      &lt;%@ Page Language= "C#" %&gt;&lt;br /&gt;&lt;br /&gt;2.      &lt;%@ Import Namespace= "System.Data" %&gt;&lt;br /&gt;&lt;br /&gt;3.      &lt;%@ Import Namespace= "System.Data.OleDb" %&gt;&lt;br /&gt;&lt;br /&gt;4.      &lt;html&gt;&lt;br /&gt;&lt;br /&gt;5.      &lt;body&gt;&lt;br /&gt;&lt;br /&gt;6.       &lt;br /&gt;&lt;br /&gt;7.      &lt;table border=2&gt;&lt;br /&gt;&lt;br /&gt;8.      &lt;tr&gt;&lt;br /&gt;&lt;br /&gt;9.      &lt;td&gt;&lt;b&gt; Employee ID &lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;10.  &lt;td&gt;&lt;b&gt; Employee Name &lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;11.  &lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;12.   &lt;br /&gt;&lt;br /&gt;13.  &lt;% OleDbConnection con= new OleDbConnection ("Provider &lt;br /&gt;&lt;br /&gt;14.  =Microsoft.JET.OLEDB.4.0;" + "Data Source=C:\\Program Files\\Microsoft &lt;br /&gt;&lt;br /&gt;15.  Office\\Office\\Samples\\Northwind.mdb");&lt;br /&gt;&lt;br /&gt;16.   &lt;br /&gt;&lt;br /&gt;17.  &lt;%&lt;br /&gt;&lt;br /&gt;18.  DataSet myDataSet = new DataSet(); &lt;br /&gt;&lt;br /&gt;19.  OleDbCommand CommandObject = new OleDbCommand ("Select * from &lt;br /&gt;&lt;br /&gt;20.  employee");&lt;br /&gt;&lt;br /&gt;21.  &lt;br /&gt;&lt;br /&gt;22.  OleDbAdapter myDataAdapter = new OleDbAdapter (CommandObject, con);&lt;br /&gt;&lt;br /&gt;23.  &lt;br /&gt;&lt;br /&gt;24.  myDataAdapter.Fill (myDataSet, "EmployeeData");&lt;br /&gt;&lt;br /&gt;25.  &lt;br /&gt;&lt;br /&gt;26.  foreach (DataRow dr in myDataSet.Tables["EmployeeData"].Rows)&lt;br /&gt;&lt;br /&gt;27.  {&lt;br /&gt;&lt;br /&gt;28.  Response.write ("&lt;tr&gt;");&lt;br /&gt;&lt;br /&gt;29.  for (int j = 0 ; j &lt;2 ; j++)&lt;br /&gt;&lt;br /&gt;30.  {&lt;br /&gt;&lt;br /&gt;31.  Response.write ( "&lt;td&gt;" + dr[j].ToString() + "&lt;/td"&gt; );&lt;br /&gt;&lt;br /&gt;32.  }&lt;br /&gt;&lt;br /&gt;33.  Response.write ("&lt;/tr&gt;");&lt;br /&gt;&lt;br /&gt;34.  &lt;br /&gt;&lt;br /&gt;35.  %&gt;&lt;br /&gt;&lt;br /&gt;36.  &lt;/table&gt;&lt;br /&gt;&lt;br /&gt;37.  &lt;/body&gt;&lt;br /&gt;&lt;br /&gt;38.  &lt;/html&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The Code above would iterate in all rows of Employee table and display ID and name of every employee. To Display all columns of Employee Table, Line # 29 would be replaced by:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;for (int j = 0 ; j &lt; dr.Table.Columns.Count ; j++)&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;As we said earlier, there is no need of opening and closing database connection explicitly. DataAdapter class handles both these functions. &lt;br /&gt;&lt;br /&gt;____________________________________________________________________&lt;br /&gt;Deletions in Employee Table &lt;br /&gt;To delete the Employee having id 1001:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;1.      int i =0;&lt;br /&gt;&lt;br /&gt;2.      foreach (DataRow dr in ds1.Tables["EmployeeData"].Rows)&lt;br /&gt;&lt;br /&gt;3.      {&lt;br /&gt;&lt;br /&gt;4.      i++;&lt;br /&gt;&lt;br /&gt;5.      if (dr["id"] = = 1001 )&lt;br /&gt;&lt;br /&gt;6.      break;&lt;br /&gt;&lt;br /&gt;7.      }&lt;br /&gt;&lt;br /&gt;8. EmployeeData.Rows[i].Delete;&lt;br /&gt;&lt;br /&gt;____________________________________&lt;br /&gt;Updating Employee Table&lt;br /&gt;To change the name of Employee having id 1001:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;8.      foreach (DataRow dr in ds1.Tables["EmployeeData"].Rows)&lt;br /&gt;&lt;br /&gt;9.      if (dr["id"] = = 1001 )&lt;br /&gt;&lt;br /&gt;10.  dr["name"] = "new name";&lt;br /&gt;&lt;br /&gt;__________________________________________&lt;br /&gt;Insertions in Employee Table &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;1.      DataRow dr = EmployeeData.NewRow();&lt;br /&gt;&lt;br /&gt;2.      dr["id"] = "1003";&lt;br /&gt;&lt;br /&gt;3.      dr["name"] = "Ahmed Albaradi";&lt;br /&gt;&lt;br /&gt;(or you can move it like dr[0], dr[1],a., dr[n-1])&lt;br /&gt;&lt;br /&gt;4.      EmployeeData.Rows.Add(dr);&lt;br /&gt;&lt;br /&gt;_______________________________________________&lt;br /&gt;Writing Changes back to database table&lt;br /&gt;We have discussed that DataSets can not directly interact with Database tables. Moreover, all the modifications we performed above apply only to EmployeeData, which is Data Table. Before we discuss how to write back changes, letAs explore DataAdapter class in a bit more detail:&lt;br /&gt;&lt;br /&gt;We have discussed SelectCommand property which lets the Adapter selects its query. There are three other properties including UpdateCommand, AddCommand and DeleteCommand. All these commands would make changes in the database. However, by using CommandBuilderObject, you donAt have to create all the available commands. The update, Add and Delete commands are created automatically based on SelectCommand. &lt;br /&gt;&lt;br /&gt;OleDbCommandBuilder mybuilder = new OleDbCommandBuilder (myDataAdapter);&lt;br /&gt;&lt;br /&gt;And after writing this statement, you are now in position to make changes back to database. All you have to do is create a separate dataset for all the modified rows and then apply the Update command of DataAdapter.&lt;br /&gt;&lt;br /&gt;1.      DataSet newSet = myDataSet.GetChanges (DataRowState.Modified);&lt;br /&gt;&lt;br /&gt;2.      myDataAdapter.Update(newSet, "EmployeeData");&lt;br /&gt;&lt;br /&gt;GetChanges method would return all the modified rows .The parameter in GetChanges method can be different. For example:&lt;br /&gt;&lt;br /&gt;DataRowState.Added: would return newly added rows&lt;br /&gt;&lt;br /&gt;DataRowState.Deleted: would return deleted rows&lt;br /&gt;&lt;br /&gt;_____________________________________________________&lt;br /&gt;THIS IS ORIGINAL:  &lt;br /&gt;&lt;br /&gt;Imports CrystalDecisions.CrystalReports.Engine&lt;br /&gt;Imports CrystalDecisions.Shared&lt;br /&gt;Imports System.Data&lt;br /&gt;Public Class Form1&lt;br /&gt;    Dim conn As New OleDb.OleDbConnection&lt;br /&gt;    Dim adp As New OleDb.OleDbDataAdapter("select * from EMP", conn)&lt;br /&gt;    Dim row As DataRow&lt;br /&gt;    Dim i As Integer&lt;br /&gt;    Dim cmd As OleDb.OleDbCommand&lt;br /&gt;    Dim dset As New DataSet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "EMP")&lt;br /&gt;        row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;        TextBox1.Text = row(0).ToString&lt;br /&gt;        TextBox2.Text = row(1).ToString&lt;br /&gt;        i = dset.Tables("EMP").Rows.Count - 1&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;        If i = 0 Then&lt;br /&gt;            MessageBox.Show("Beginning Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i -= 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("EMP").Rows(i)&lt;br /&gt;                TextBox1.Text = row(0).ToString&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click&lt;br /&gt;&lt;br /&gt;        If i = dset.Tables("EMP").Rows.Count Then&lt;br /&gt;            MessageBox.Show("End Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i += 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("EMP").Rows(i - 1)&lt;br /&gt;                TextBox1.Text = row(0).ToString&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click&lt;br /&gt;&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("EMP").Rows(0)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;            i = 0&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;            i = dset.Tables("EMP").Rows.Count - 1&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        If TextBox1.Text = "" Or TextBox2.Text = "" Then&lt;br /&gt;            MessageBox.Show(" PLEASE ENTER DATA BEFORE ADD")&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        par = "INSERT INTO EMP VALUES('" &amp; TextBox1.Text &amp; "','" &amp; TextBox2.Text &amp; "')"&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            cmd.CommandType = CommandType.Text&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Either Duplicate ID or Bad Data have entered, cann't added")&lt;br /&gt;        End Try&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT * FROM EMP"&lt;br /&gt;            cmd.CommandText = par&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)&lt;br /&gt;        TextBox1.Text = ""&lt;br /&gt;        TextBox2.Text = ""&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        If TextBox1.Text = "" Or TextBox2.Text = "" Then&lt;br /&gt;            MessageBox.Show(" PLEASE ENTER DATA BEFORE ADD")&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        par = "UPDATE EMP SET NAME='" &amp; TextBox2.Text &amp; "'" &amp; " WHERE ID=" &amp; TextBox1.Text&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            cmd.CommandType = CommandType.Text&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Either Duplicate ID or Bad Data have entered, cann't added")&lt;br /&gt;        End Try&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT * FROM EMP"&lt;br /&gt;            cmd.CommandText = par&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        If TextBox1.Text = "" Or TextBox2.Text = "" Then&lt;br /&gt;            MessageBox.Show(" PLEASE ENTER DATA BEFORE ADD")&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        par = "UPDATE EMP SET NAME='" &amp; TextBox2.Text &amp; "'" &amp; " WHERE ID=" &amp; TextBox1.Text&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            cmd.CommandType = CommandType.Text&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Either Duplicate ID or Bad Data have entered, cann't added")&lt;br /&gt;        End Try&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT * FROM EMP"&lt;br /&gt;            cmd.CommandText = par&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        par = "DELETE FROM EMP WHERE ID=" &amp; TextBox1.Text&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            cmd.CommandType = CommandType.Text&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Either Duplicate ID or Bad Data have entered, cann't added")&lt;br /&gt;        End Try&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT * FROM EMP"&lt;br /&gt;            cmd.CommandText = par&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            row = dset.Tables("EMP").Rows(dset.Tables("EMP").Rows.Count - 1)&lt;br /&gt;            TextBox1.Text = row(0).ToString&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button9_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click&lt;br /&gt;        'Dim CR As New CrystalReport1&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\EMP.mdb" &amp; """"&lt;br /&gt;        Dim query As String&lt;br /&gt;        conn.Open()&lt;br /&gt;        Dim adp As New OleDb.OleDbDataAdapter("select * from EMP", conn)&lt;br /&gt;        Try&lt;br /&gt;            Dim d As New ReportDocument&lt;br /&gt;            d.Load("C:\EMP\EMP\CrystalReport1.rpt")&lt;br /&gt;            adp.Fill(dset, "EMP")&lt;br /&gt;            d.SetDataSource(dset)&lt;br /&gt;            'CR.SetDataSource(dset)&lt;br /&gt;            query = "{EMP.NAME} ='" &amp; TextBox2.Text &amp; "'"&lt;br /&gt;            CrystalReportViewer1.SelectionFormula = query&lt;br /&gt;            CrystalReportViewer1.ReportSource = d&lt;br /&gt;            'CrystalReportViewer1.ReportSource = CR&lt;br /&gt;            CrystalReportViewer1.Refresh()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/Sv0yipL-YtI/AAAAAAAAB_4/kUmKiALh8NA/s1600-h/rio.JPG"&gt;&lt;img src="http://www.blogger.com/img/icon_inprogress.gif"&gt;&lt;br /&gt;&lt;br /&gt;______________________________ALL RIGHT______________________________________&lt;br /&gt;Imports CrystalDecisions.CrystalReports.Engine&lt;br /&gt;Imports CrystalDecisions.Shared&lt;br /&gt;Imports System.Data&lt;br /&gt;Public Class Form1&lt;br /&gt;    Dim conn As New OleDb.OleDbConnection&lt;br /&gt;    Dim row As DataRow&lt;br /&gt;    Dim dset As New DataSet&lt;br /&gt;    Dim adp As New OleDb.OleDbDataAdapter("select * from LAND", conn)&lt;br /&gt;    Dim i As Integer&lt;br /&gt;    Dim c As Integer&lt;br /&gt;    Dim cmd As OleDb.OleDbCommand&lt;br /&gt;&lt;br /&gt;    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "LAND")&lt;br /&gt;        row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;        Text1.Text = row(1).ToString&lt;br /&gt;        Text2.Text = row(5).ToString&lt;br /&gt;        Text3.Text = row(2).ToString&lt;br /&gt;        Text4.Text = row(6).ToString&lt;br /&gt;        Text5.Text = row(3).ToString&lt;br /&gt;        Text6.Text = row(7).ToString&lt;br /&gt;        Text7.Text = row(4).ToString&lt;br /&gt;        Text8.Text = row(8).ToString&lt;br /&gt;        Text9.Text = row(0).ToString&lt;br /&gt;        Text10.Text = row(9).ToString&lt;br /&gt;        i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;        GroupBox1.Show()&lt;br /&gt;        GroupBox2.Hide()&lt;br /&gt;        Label3.ForeColor = Color.Red&lt;br /&gt;        Label3.Text = Now()&lt;br /&gt;        Timer1.Start()&lt;br /&gt;        TabControl1.Hide()&lt;br /&gt;        Label18.Visible = False&lt;br /&gt;        Button3.Hide()&lt;br /&gt;        Button4.Hide()&lt;br /&gt;        Button5.Hide()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click&lt;br /&gt;        If TextBox1.Text = "land" Then&lt;br /&gt;            If MaskedTextBox1.Text = "land123" Then&lt;br /&gt;                MessageBox.Show("login successfully!")&lt;br /&gt;                GroupBox1.Hide()&lt;br /&gt;                GroupBox2.Show()&lt;br /&gt;                Label3.ForeColor = Color.Green&lt;br /&gt;                Me.Height = 323&lt;br /&gt;                Button6.Show()&lt;br /&gt;                Button3.Show()&lt;br /&gt;                Button4.Show()&lt;br /&gt;                Button5.Show()&lt;br /&gt;                TextBox1.Text = ""&lt;br /&gt;                MaskedTextBox1.Text = ""&lt;br /&gt;            Else&lt;br /&gt;                MessageBox.Show("Incorrect Password!")&lt;br /&gt;                MaskedTextBox1.Text = ""&lt;br /&gt;            End If&lt;br /&gt;        Else&lt;br /&gt;            MessageBox.Show("Incorrect User ID !")&lt;br /&gt;            TextBox1.Text = ""&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SwewsopLojI/AAAAAAAACAA/Vemb_wn5dLc/s1600/login.JPG"&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click&lt;br /&gt;        conn.Close()&lt;br /&gt;        End&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick&lt;br /&gt;        Label3.Text = Now()&lt;br /&gt;        Label17.Text = Now()&lt;br /&gt;        Label18.Text = Now()&lt;br /&gt;        Label21.Text = Now()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click&lt;br /&gt;        Button6.Hide()&lt;br /&gt;        Button3.Hide()&lt;br /&gt;        Button4.Hide()&lt;br /&gt;        Button5.Hide()&lt;br /&gt;        GroupBox2.Hide()&lt;br /&gt;        GroupBox1.Show()&lt;br /&gt;        Label3.ForeColor = Color.Red&lt;br /&gt;        Me.Height = 457&lt;br /&gt;        c = 0&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click&lt;br /&gt;        TabControl1.Hide()&lt;br /&gt;        Me.Height = 323&lt;br /&gt;        dset.Clear()&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "LAND")&lt;br /&gt;        row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;        Text1.Text = row(1).ToString&lt;br /&gt;        Text2.Text = row(5).ToString&lt;br /&gt;        Text3.Text = row(2).ToString&lt;br /&gt;        Text4.Text = row(6).ToString&lt;br /&gt;        Text5.Text = row(3).ToString&lt;br /&gt;        Text6.Text = row(7).ToString&lt;br /&gt;        Text7.Text = row(4).ToString&lt;br /&gt;        Text8.Text = row(8).ToString&lt;br /&gt;        Text9.Text = row(0).ToString&lt;br /&gt;        Text10.Text = row(9).ToString&lt;br /&gt;        i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click&lt;br /&gt;        TabControl1.Show()&lt;br /&gt;        Me.Height = 486&lt;br /&gt;        Label21.Visible = True&lt;br /&gt;        Label18.Visible = True&lt;br /&gt;        c = 0&lt;br /&gt;    End Sub&lt;br /&gt;    Private Sub Button4_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click&lt;br /&gt;        TabControl1.Show()&lt;br /&gt;        Me.Height = 486&lt;br /&gt;        Label21.Visible = True&lt;br /&gt;        Label18.Visible = True&lt;br /&gt;        c = 0&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button5_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button5.Click&lt;br /&gt;        TabControl1.Show()&lt;br /&gt;        Me.Height = 486&lt;br /&gt;        Label21.Visible = True&lt;br /&gt;        Label18.Visible = True&lt;br /&gt;        c = 0&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click&lt;br /&gt;        TabControl1.Hide()&lt;br /&gt;        Me.Height = 323&lt;br /&gt;        dset.Clear()&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "LAND")&lt;br /&gt;        row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;        Text1.Text = row(1).ToString&lt;br /&gt;        Text2.Text = row(5).ToString&lt;br /&gt;        Text3.Text = row(2).ToString&lt;br /&gt;        Text4.Text = row(6).ToString&lt;br /&gt;        Text5.Text = row(3).ToString&lt;br /&gt;        Text6.Text = row(7).ToString&lt;br /&gt;        Text7.Text = row(4).ToString&lt;br /&gt;        Text8.Text = row(8).ToString&lt;br /&gt;        Text9.Text = row(0).ToString&lt;br /&gt;        Text10.Text = row(9).ToString&lt;br /&gt;        i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        Dim dt As DataTable&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If ComboBox1.Text = "PLOT_NO" Or ComboBox1.Text = "AREA" Then&lt;br /&gt;            par = "SELECT * FROM LAND WHERE " &amp; ComboBox1.Text &amp; " = " &amp; TextBox12.Text&lt;br /&gt;        Else&lt;br /&gt;            par = "SELECT * FROM LAND WHERE " &amp; ComboBox1.Text &amp; " = '" &amp; TextBox12.Text &amp; "'"&lt;br /&gt;        End If&lt;br /&gt;        Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            dset.Clear()&lt;br /&gt;            adp.Fill(dset, "LAND")&lt;br /&gt;            row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;            dt = dset.Tables("LAND")&lt;br /&gt;            If dt.Rows.Count &gt; 1 Then&lt;br /&gt;                TextBox14.Text = dt.Rows.Count&lt;br /&gt;                Label23.Text = " ROWS ARE AVAILABLE"&lt;br /&gt;                Button22.Enabled = True&lt;br /&gt;                Button23.Enabled = True&lt;br /&gt;                Button24.Enabled = True&lt;br /&gt;                Button25.Enabled = True&lt;br /&gt;            Else&lt;br /&gt;                TextBox14.Text = dt.Rows.Count&lt;br /&gt;                Label23.Text = " ROW IS AVAILABLE"&lt;br /&gt;                Button22.Enabled = False&lt;br /&gt;                Button23.Enabled = False&lt;br /&gt;                Button24.Enabled = False&lt;br /&gt;                Button25.Enabled = False&lt;br /&gt;            End If&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;            TextBox3.Text = row(5).ToString&lt;br /&gt;            TextBox4.Text = row(2).ToString&lt;br /&gt;            TextBox5.Text = row(6).ToString&lt;br /&gt;            TextBox6.Text = row(3).ToString&lt;br /&gt;            TextBox7.Text = row(7).ToString&lt;br /&gt;            TextBox8.Text = row(4).ToString&lt;br /&gt;            TextBox9.Text = row(8).ToString&lt;br /&gt;            TextBox10.Text = row(0).ToString&lt;br /&gt;            TextBox11.Text = row(9).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;            TextBox2.Text = ""&lt;br /&gt;            TextBox3.Text = ""&lt;br /&gt;            TextBox4.Text = ""&lt;br /&gt;            TextBox5.Text = ""&lt;br /&gt;            TextBox6.Text = ""&lt;br /&gt;            TextBox7.Text = ""&lt;br /&gt;            TextBox8.Text = ""&lt;br /&gt;            TextBox9.Text = ""&lt;br /&gt;            TextBox10.Text = ""&lt;br /&gt;            TextBox11.Text = ""&lt;br /&gt;            TextBox14.Text = 0&lt;br /&gt;            Label23.Text = " ROWS ARE AVAILABLE"&lt;br /&gt;            Button22.Enabled = False&lt;br /&gt;            Button23.Enabled = False&lt;br /&gt;            Button24.Enabled = False&lt;br /&gt;            Button25.Enabled = False&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click&lt;br /&gt;        TabControl1.Hide()&lt;br /&gt;        Me.Height = 323&lt;br /&gt;        dset.Clear()&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        adp.Fill(dset, "LAND")&lt;br /&gt;        row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;        Text1.Text = row(1).ToString&lt;br /&gt;        Text2.Text = row(5).ToString&lt;br /&gt;        Text3.Text = row(2).ToString&lt;br /&gt;        Text4.Text = row(6).ToString&lt;br /&gt;        Text5.Text = row(3).ToString&lt;br /&gt;        Text6.Text = row(7).ToString&lt;br /&gt;        Text7.Text = row(4).ToString&lt;br /&gt;        Text8.Text = row(8).ToString&lt;br /&gt;        Text9.Text = row(0).ToString&lt;br /&gt;        Text10.Text = row(9).ToString&lt;br /&gt;        i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;    End Sub&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SwexMAyG6XI/AAAAAAAACAY/RDboRsicg1k/s1600/query.JPG"&gt;&lt;br /&gt;    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        Dim CR As New CrystalReport1&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If ComboBox2.Text = "PLOT_NO" Or ComboBox2.Text = "AREA" Then&lt;br /&gt;            par = "SELECT * FROM LAND WHERE " &amp; ComboBox2.Text &amp; " = " &amp; TextBox13.Text&lt;br /&gt;        Else&lt;br /&gt;            par = "SELECT * FROM LAND WHERE " &amp; ComboBox2.Text &amp; " = '" &amp; TextBox13.Text &amp; "'"&lt;br /&gt;        End If&lt;br /&gt;        Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            dset.Clear()&lt;br /&gt;            adp.Fill(dset, "LAND")&lt;br /&gt;            CR.SetDataSource(dset)&lt;br /&gt;            CrystalReportViewer1.ReportSource = CR&lt;br /&gt;            CrystalReportViewer1.Refresh()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;       &lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If TextBox10.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Then&lt;br /&gt;            MessageBox.Show("Enter Plot No. and other details Before Edition!")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Else&lt;br /&gt;            par = "UPDATE LAND SET DEPARTMENT ='" &amp; TextBox2.Text &amp; "', BLOCK ='" &amp; TextBox4.Text &amp; "', LOCATION ='" &amp; TextBox6.Text &amp; "', RVENUE_CIRCLE ='" &amp; TextBox8.Text &amp; "', AREA =" &amp; TextBox3.Text &amp; ", STATUS ='" &amp; TextBox5.Text &amp; "', DEMARCATED_FENCED ='" &amp; TextBox7.Text &amp; "', STRUCTURE ='" &amp; TextBox9.Text &amp; "', REMARKS ='" &amp; TextBox11.Text &amp; "'" &amp; " WHERE PLOT_NO =" &amp; TextBox10.Text&lt;br /&gt;            Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;            Try&lt;br /&gt;                adp.Fill(dset, "LAND")&lt;br /&gt;                row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;                TextBox3.Text = row(5).ToString&lt;br /&gt;                TextBox4.Text = row(2).ToString&lt;br /&gt;                TextBox5.Text = row(6).ToString&lt;br /&gt;                TextBox6.Text = row(3).ToString&lt;br /&gt;                TextBox7.Text = row(7).ToString&lt;br /&gt;                TextBox8.Text = row(4).ToString&lt;br /&gt;                TextBox9.Text = row(8).ToString&lt;br /&gt;                TextBox10.Text = row(0).ToString&lt;br /&gt;                TextBox11.Text = row(9).ToString&lt;br /&gt;                MessageBox.Show("RECORD HAVE EDITED &amp; UPDATED!")&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;                TextBox2.Text = ""&lt;br /&gt;                TextBox3.Text = ""&lt;br /&gt;                TextBox4.Text = ""&lt;br /&gt;                TextBox5.Text = ""&lt;br /&gt;                TextBox6.Text = ""&lt;br /&gt;                TextBox7.Text = ""&lt;br /&gt;                TextBox8.Text = ""&lt;br /&gt;                TextBox9.Text = ""&lt;br /&gt;                TextBox10.Text = ""&lt;br /&gt;                TextBox11.Text = ""&lt;br /&gt;            Finally&lt;br /&gt;                conn.Close()&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If TextBox10.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Then&lt;br /&gt;            MessageBox.Show("Enter Plot No. and other details Before Edition!")&lt;br /&gt;            conn.Close()&lt;br /&gt;&lt;br /&gt;        ElseIf MessageBox.Show("ARE YOU SURE TO DELETE THIS RECORD", "DELETE RECORD!", MessageBoxButtons.YesNoCancel) = Windows.Forms.DialogResult.Yes Then&lt;br /&gt;            Try&lt;br /&gt;                par = "DELETE FROM LAND WHERE PLOT_NO=" &amp; TextBox10.Text&lt;br /&gt;                Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;                adp.Fill(dset, "LAND")&lt;br /&gt;                row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;                TextBox3.Text = row(5).ToString&lt;br /&gt;                TextBox4.Text = row(2).ToString&lt;br /&gt;                TextBox5.Text = row(6).ToString&lt;br /&gt;                TextBox6.Text = row(3).ToString&lt;br /&gt;                TextBox7.Text = row(7).ToString&lt;br /&gt;                TextBox8.Text = row(4).ToString&lt;br /&gt;                TextBox9.Text = row(8).ToString&lt;br /&gt;                TextBox10.Text = row(0).ToString&lt;br /&gt;                TextBox11.Text = row(9).ToString&lt;br /&gt;                MessageBox.Show("RECORD HAVE DELETED &amp; UPDATED!")&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;            Finally&lt;br /&gt;                conn.Close()&lt;br /&gt;            End Try&lt;br /&gt;        Else&lt;br /&gt;            TextBox2.Text = ""&lt;br /&gt;            TextBox3.Text = ""&lt;br /&gt;            TextBox4.Text = ""&lt;br /&gt;            TextBox5.Text = ""&lt;br /&gt;            TextBox6.Text = ""&lt;br /&gt;            TextBox7.Text = ""&lt;br /&gt;            TextBox8.Text = ""&lt;br /&gt;            TextBox9.Text = ""&lt;br /&gt;            TextBox10.Text = ""&lt;br /&gt;            TextBox11.Text = ""&lt;br /&gt;            conn.Close()&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click&lt;br /&gt;       &lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("LAND").Rows(0)&lt;br /&gt;            Text1.Text = row(1).ToString&lt;br /&gt;            Text2.Text = row(5).ToString&lt;br /&gt;            Text3.Text = row(2).ToString&lt;br /&gt;            Text4.Text = row(6).ToString&lt;br /&gt;            Text5.Text = row(3).ToString&lt;br /&gt;            Text6.Text = row(7).ToString&lt;br /&gt;            Text7.Text = row(4).ToString&lt;br /&gt;            Text8.Text = row(8).ToString&lt;br /&gt;            Text9.Text = row(0).ToString&lt;br /&gt;            Text10.Text = row(9).ToString&lt;br /&gt;            i = 0&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click&lt;br /&gt;        If i = 0 Then&lt;br /&gt;            MessageBox.Show("Beginning Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i -= 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("LAND").Rows(i)&lt;br /&gt;                Text1.Text = row(1).ToString&lt;br /&gt;                Text2.Text = row(5).ToString&lt;br /&gt;                Text3.Text = row(2).ToString&lt;br /&gt;                Text4.Text = row(6).ToString&lt;br /&gt;                Text5.Text = row(3).ToString&lt;br /&gt;                Text6.Text = row(7).ToString&lt;br /&gt;                Text7.Text = row(4).ToString&lt;br /&gt;                Text8.Text = row(8).ToString&lt;br /&gt;                Text9.Text = row(0).ToString&lt;br /&gt;                Text10.Text = row(9).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click&lt;br /&gt;        If i = dset.Tables("LAND").Rows.Count Then&lt;br /&gt;            MessageBox.Show("End Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            i += 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("LAND").Rows(i - 1)&lt;br /&gt;                Text1.Text = row(1).ToString&lt;br /&gt;                Text2.Text = row(5).ToString&lt;br /&gt;                Text3.Text = row(2).ToString&lt;br /&gt;                Text4.Text = row(6).ToString&lt;br /&gt;                Text5.Text = row(3).ToString&lt;br /&gt;                Text6.Text = row(7).ToString&lt;br /&gt;                Text7.Text = row(4).ToString&lt;br /&gt;                Text8.Text = row(8).ToString&lt;br /&gt;                Text9.Text = row(0).ToString&lt;br /&gt;                Text10.Text = row(9).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;            Text1.Text = row(1).ToString&lt;br /&gt;            Text2.Text = row(5).ToString&lt;br /&gt;            Text3.Text = row(2).ToString&lt;br /&gt;            Text4.Text = row(6).ToString&lt;br /&gt;            Text5.Text = row(3).ToString&lt;br /&gt;            Text6.Text = row(7).ToString&lt;br /&gt;            Text7.Text = row(4).ToString&lt;br /&gt;            Text8.Text = row(8).ToString&lt;br /&gt;            Text9.Text = row(0).ToString&lt;br /&gt;            Text10.Text = row(9).ToString&lt;br /&gt;            i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Or Text10.Text = "" Then&lt;br /&gt;            MessageBox.Show(" PLEASE ENTER DATA BEFORE ADD")&lt;br /&gt;            conn.Close()&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        par = "INSERT INTO LAND VALUES(" &amp; Text9.Text &amp; ",'" &amp; Text1.Text &amp; "','" &amp; Text3.Text &amp; "','" &amp; Text5.Text &amp; "','" &amp; Text7.Text &amp; "'," &amp; Text2.Text &amp; ",'" &amp; Text4.Text &amp; "','" &amp; Text6.Text &amp; "','" &amp; Text8.Text &amp; "','" &amp; Text10.Text &amp; "')"&lt;br /&gt;        Dim cmd As New OleDb.OleDbCommand(par, conn)&lt;br /&gt;        Try&lt;br /&gt;            cmd.CommandType = CommandType.Text&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "LAND")&lt;br /&gt;            conn.Close()&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Either Duplicate ID or Bad Data have entered, cann't added")&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT * FROM LAND"&lt;br /&gt;            cmd.CommandText = par&lt;br /&gt;            adp.SelectCommand = cmd&lt;br /&gt;            adp.Fill(dset, "LAND")&lt;br /&gt;            row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;            Text1.Text = row(1).ToString&lt;br /&gt;            Text2.Text = row(5).ToString&lt;br /&gt;            Text3.Text = row(2).ToString&lt;br /&gt;            Text4.Text = row(6).ToString&lt;br /&gt;            Text5.Text = row(3).ToString&lt;br /&gt;            Text6.Text = row(7).ToString&lt;br /&gt;            Text7.Text = row(4).ToString&lt;br /&gt;            Text8.Text = row(8).ToString&lt;br /&gt;            Text9.Text = row(0).ToString&lt;br /&gt;            Text10.Text = row(9).ToString&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/SwexDohGCUI/AAAAAAAACAQ/24z5bMw29Ww/s1600/gridview.JPG"&gt;&lt;br /&gt;    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Or Text10.Text = "" Then&lt;br /&gt;            MessageBox.Show(" PLEASE ENTER DATA BEFORE EDIT/UPDATE")&lt;br /&gt;            conn.Close()&lt;br /&gt;            Exit Sub&lt;br /&gt;        Else&lt;br /&gt;            par = "UPDATE LAND SET DEPARTMENT ='" &amp; Text1.Text &amp; "', BLOCK ='" &amp; Text3.Text &amp; "', LOCATION ='" &amp; Text5.Text &amp; "', RVENUE_CIRCLE ='" &amp; Text7.Text &amp; "', AREA =" &amp; Text2.Text &amp; ", STATUS ='" &amp; Text4.Text &amp; "', DEMARCATED_FENCED ='" &amp; Text6.Text &amp; "', STRUCTURE ='" &amp; Text8.Text &amp; "', REMARKS ='" &amp; Text10.Text &amp; "'" &amp; " WHERE PLOT_NO =" &amp; Text9.Text&lt;br /&gt;            Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;            Try&lt;br /&gt;                adp.Fill(dset, "LAND")&lt;br /&gt;                row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;                Text1.Text = row(1).ToString&lt;br /&gt;                Text2.Text = row(5).ToString&lt;br /&gt;                Text3.Text = row(2).ToString&lt;br /&gt;                Text4.Text = row(6).ToString&lt;br /&gt;                Text5.Text = row(3).ToString&lt;br /&gt;                Text6.Text = row(7).ToString&lt;br /&gt;                Text7.Text = row(4).ToString&lt;br /&gt;                Text8.Text = row(8).ToString&lt;br /&gt;                Text9.Text = row(0).ToString&lt;br /&gt;                Text10.Text = row(9).ToString&lt;br /&gt;                MessageBox.Show("RECORD HAVE EDITED &amp; UPDATED!")&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;            Finally&lt;br /&gt;                conn.Close()&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/Swew4YO0wHI/AAAAAAAACAI/DK5h9d7m8Jo/s1600/main.JPG"&gt;&lt;br /&gt;    Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        conn.Open()&lt;br /&gt;        If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Or Text10.Text = "" Then&lt;br /&gt;            MessageBox.Show("BLANK RECORD ARE HERE FOR DELETION")&lt;br /&gt;            conn.Close()&lt;br /&gt;            Exit Sub&lt;br /&gt;&lt;br /&gt;        ElseIf MessageBox.Show("ARE YOU SURE TO DELETE THIS RECORD", "DELETE RECORD!", MessageBoxButtons.YesNoCancel) = Windows.Forms.DialogResult.Yes Then&lt;br /&gt;            Try&lt;br /&gt;                par = "DELETE FROM LAND WHERE PLOT_NO=" &amp; Text9.Text&lt;br /&gt;                Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;                adp.Fill(dset, "LAND")&lt;br /&gt;                row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;                Text1.Text = row(1).ToString&lt;br /&gt;                Text2.Text = row(5).ToString&lt;br /&gt;                Text3.Text = row(2).ToString&lt;br /&gt;                Text4.Text = row(6).ToString&lt;br /&gt;                Text5.Text = row(3).ToString&lt;br /&gt;                Text6.Text = row(7).ToString&lt;br /&gt;                Text7.Text = row(4).ToString&lt;br /&gt;                Text8.Text = row(8).ToString&lt;br /&gt;                Text9.Text = row(0).ToString&lt;br /&gt;                Text10.Text = row(9).ToString&lt;br /&gt;                MessageBox.Show("RECORD HAVE DELETED &amp; UPDATED!")&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show("WRONG VALUE WAS ENTERED")&lt;br /&gt;            Finally&lt;br /&gt;                conn.Close()&lt;br /&gt;            End Try&lt;br /&gt;        Else&lt;br /&gt;            conn.Close()&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click&lt;br /&gt;        Dim par As String&lt;br /&gt;        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; """" &amp; "C:\Documents and Settings\admin\My Documents\LAND.mdb" &amp; """"&lt;br /&gt;        Try&lt;br /&gt;            conn.Open()&lt;br /&gt;            par = "SELECT PLOT_NO FROM LAND"&lt;br /&gt;            Dim adp As New OleDb.OleDbDataAdapter(par, conn)&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show("Failed to connect to data source: " + ex.ToString)&lt;br /&gt;        Finally&lt;br /&gt;            conn.Close()&lt;br /&gt;        End Try&lt;br /&gt;        dset.Clear()&lt;br /&gt;        adp.Fill(dset, "LAND")&lt;br /&gt;        DataGridView1.DataSource = dset&lt;br /&gt;        DataGridView1.DataMember = "LAND"&lt;br /&gt;        DataGridView1.Refresh()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)&lt;br /&gt;        DataGridView1.DataSource = Nothing&lt;br /&gt;        DataGridView1.DataMember = Nothing&lt;br /&gt;        DataGridView1.Refresh()&lt;br /&gt;        conn.Close()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button22_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("LAND").Rows(0)&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;            TextBox3.Text = row(5).ToString&lt;br /&gt;            TextBox4.Text = row(2).ToString&lt;br /&gt;            TextBox5.Text = row(6).ToString&lt;br /&gt;            TextBox6.Text = row(3).ToString&lt;br /&gt;            TextBox7.Text = row(7).ToString&lt;br /&gt;            TextBox8.Text = row(4).ToString&lt;br /&gt;            TextBox9.Text = row(8).ToString&lt;br /&gt;            TextBox10.Text = row(0).ToString&lt;br /&gt;            TextBox11.Text = row(9).ToString&lt;br /&gt;            c = 0&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click&lt;br /&gt;        If c = 0 Then&lt;br /&gt;            MessageBox.Show("Beginning Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            c -= 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("LAND").Rows(c)&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;                TextBox3.Text = row(5).ToString&lt;br /&gt;                TextBox4.Text = row(2).ToString&lt;br /&gt;                TextBox5.Text = row(6).ToString&lt;br /&gt;                TextBox6.Text = row(3).ToString&lt;br /&gt;                TextBox7.Text = row(7).ToString&lt;br /&gt;                TextBox8.Text = row(4).ToString&lt;br /&gt;                TextBox9.Text = row(8).ToString&lt;br /&gt;                TextBox10.Text = row(0).ToString&lt;br /&gt;                TextBox11.Text = row(9).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.Click&lt;br /&gt;        If c = TextBox14.Text Then&lt;br /&gt;            MessageBox.Show("End Point of Record")&lt;br /&gt;        Else&lt;br /&gt;            c += 1&lt;br /&gt;            Try&lt;br /&gt;                row = dset.Tables("LAND").Rows(c - 1)&lt;br /&gt;                TextBox2.Text = row(1).ToString&lt;br /&gt;                TextBox3.Text = row(5).ToString&lt;br /&gt;                TextBox4.Text = row(2).ToString&lt;br /&gt;                TextBox5.Text = row(6).ToString&lt;br /&gt;                TextBox6.Text = row(3).ToString&lt;br /&gt;                TextBox7.Text = row(7).ToString&lt;br /&gt;                TextBox8.Text = row(4).ToString&lt;br /&gt;                TextBox9.Text = row(8).ToString&lt;br /&gt;                TextBox10.Text = row(0).ToString&lt;br /&gt;                TextBox11.Text = row(9).ToString&lt;br /&gt;            Catch ex As Exception&lt;br /&gt;                MessageBox.Show(ex.ToString)&lt;br /&gt;            End Try&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SwexS2AMq2I/AAAAAAAACAg/9fBCNJZBe2s/s1600/report.JPG"&gt;&lt;br /&gt;    Private Sub Button25_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button25.Click&lt;br /&gt;        Try&lt;br /&gt;            row = dset.Tables("LAND").Rows(dset.Tables("LAND").Rows.Count - 1)&lt;br /&gt;            TextBox2.Text = row(1).ToString&lt;br /&gt;            TextBox3.Text = row(5).ToString&lt;br /&gt;            TextBox4.Text = row(2).ToString&lt;br /&gt;            TextBox5.Text = row(6).ToString&lt;br /&gt;            TextBox6.Text = row(3).ToString&lt;br /&gt;            TextBox7.Text = row(7).ToString&lt;br /&gt;            TextBox8.Text = row(4).ToString&lt;br /&gt;            TextBox9.Text = row(8).ToString&lt;br /&gt;            TextBox10.Text = row(0).ToString&lt;br /&gt;            TextBox11.Text = row(9).ToString&lt;br /&gt;            i = dset.Tables("LAND").Rows.Count - 1&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            MessageBox.Show(ex.ToString)&lt;br /&gt;        End Try&lt;br /&gt;    End Sub&lt;br /&gt;End Class                                    [ 21 NOV 2009 1:32 PM ]&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-1030357432716607291?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/1030357432716607291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/vbnet-2005-data-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1030357432716607291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1030357432716607291'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/vbnet-2005-data-programming.html' title='VB.NET 2008 DATA PROGRAMMING WITH CRYSTAL REPORT'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XbdOXdG5XQs/SwexS2AMq2I/AAAAAAAACAg/9fBCNJZBe2s/s72-c/report.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-6867437579863566696</id><published>2009-11-02T23:26:00.000-08:00</published><updated>2009-11-02T23:27:54.394-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KORNETO'/><title type='text'>KORNETO</title><content type='html'>&lt;table width="133" border="0" cellspacing="0" cellpadding="3"&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;a href="http://www.free-website-hit-counters.com" target="_blank"&gt;&lt;img src="http://www.free-website-hit-counters.com/cgi-bin/image.pl?URL=196781-2500" alt="hit counter" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;font style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 9px; color: #330000; text-decoration: none;"&gt; &lt;a href="http://www.free-website-hit-counters.com" target="_blank" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 9px; color: #555555; text-decoration: none;" title="html hit counter code"&gt;html hit counter code&lt;/a&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-6867437579863566696?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/6867437579863566696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/korneto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6867437579863566696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6867437579863566696'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/11/korneto.html' title='KORNETO'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-8170210299663914926</id><published>2009-09-17T02:24:00.000-07:00</published><updated>2009-09-17T02:33:24.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Inzider'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='SYSTEM ADMIN TOOLS- TCPview'/><category scheme='http://www.blogger.com/atom/ns#' term='or Vision'/><category scheme='http://www.blogger.com/atom/ns#' term='FPort'/><title type='text'>SYSTEM ADMIN TOOLS- TCPview ,FPort ,Inzider ,Active Ports , or Vision</title><content type='html'>SYSTEM ADMIN TOOLS- TCPview ,FPort ,Inzider ,Active Ports , or Vision &lt;br /&gt;________________________________________________________&lt;br /&gt;Not every case of a successful intrusion is “crowned” with a replaced Web site on the server, data theft or damage. Often electronic intruders do not wish to create a spectacle but prefer to avoid fame by hiding their presence on compromised systems, sometimes leaving certain unexpected things. They use sophisticated techniques to install specific “malware” (backdoors) to let them in again later with full control and in secret.&lt;br /&gt;&lt;br /&gt;What is malevolent software intended for?&lt;br /&gt;Obviously, hackers have a variety of motives for installing malevolent software (malware). These types of software tend to yield instant access to the system to continuously steal various types of information from it – for example, strategic company’s designs or numbers of credit cards. In some cases, they use compromised machines as launch points for massive Denial of Service attacks. Perhaps the most common reason hackers tend to settle on another system is the possibility of creating launch pads that attack other computers while disguised as innocent computer addresses. This is a certain kind of spoofing where the intrusion logs fool the target system into believing that it is communicating with another, legitimate computer rather than that of an intruder. &lt;br /&gt;&lt;br /&gt;Under normal conditions, it is hardly to compromise LAN security from the Internet, because in most cases LANs are tied to the Internet via reserved addresses such as type 10.0.0.0 or 192.168.0.0 – (for more details, see the RFC 1918 document available at http://www.faqs.org/rfcs/rfc1918.html). Thus, a hacker cannot have direct access from the Internet, which presents a certain problem for him. Installing shell programs (e.g. Telnet) on any Internet-accessible computer will allow the intruder to gain access to the LAN and spread his control over the infrastructure. Such types of attacks are prevalent on Unix computers, because they use more common remote access shell services (SSH, or more rarely, Telnet) and no additional installation is required. This article will, however, focus on Microsoft Windows-based systems.&lt;br /&gt;&lt;br /&gt;Who will become a victim?&lt;br /&gt;An intelligent hacker will not try to put his program on a server that is monitored and checked regularly. He will secretly, without the knowledge of any legitimate user. Therefore, his attempts to get in will certainly not be through the main domain controller which has its log frequently examined, network traffic monitored and will detect any alterations immediately. Of course, everything depends on the observance of the security policy and as is well known, network administrators are not always scrupulous in performing their work. Nevertheless, a host that plays no key role in the network makes a perfect target for a hacker. Before commencing the selection process, a successful hacker tends to transfer the zone and thereafter identify probable roles of individual hosts within a domain by deducing the knowledge from their names. A poorly secured workstation, isolated from the main network, may ideally be used for hacking purposes because there would be a little chance to detect signs of an installed backdoor. &lt;br /&gt;&lt;br /&gt;Backdoors&lt;br /&gt;A backdoor is a program or a set of related programs that a hacker installs on the victim computer to allow access to the system at a later time. A backdoor’s goal is to remove the evidence of initial entry from the systems log. But a “nice” backdoor will allow a hacker to retain access to a machine it has penetrated even if the intrusion factor has in the meantime been detected by the system administrator. Resetting passwords, changing disk access permissions or fixing original security holes in the hope of remedying the problem may not help.   &lt;br /&gt;&lt;br /&gt;A trivial example of a backdoor is default BIOS, router or switch passwords set either by careless manufacturers or security administrators.&lt;br /&gt;&lt;br /&gt;A hacker could simply add a new user account with administrator privileges and this would be a sort of backdoor, but far less sophisticated and easy detectable.&lt;br /&gt;&lt;br /&gt;Adding a new service is the most common technique to disguise backdoors in the Windows operating system. This requires involving tools such as Srvany.exe and Srvinstw.exe that comes with the Resource Kit utility and also with Netcat.exe [1]. The principle of this operation is that the srvany.exe tool is installed as a service and then permits netcat.exe to run as a service. The latter, in turn, listens on an appropriate port for any connection. Once connected, it will have spawned a remote shell on the server (using cmd.exe) and from this moment onwards, a hacker has free reign. &lt;br /&gt;&lt;br /&gt;Just before commencing the installation of a backdoor, a hacker must investigate within the server to find activated services. He could simply add a new service and give it an inconspicuous name, but he would be better off choosing a service that never gets used and that is either activated manually or even completely disabled. It is sufficient to remove it using the Srvinstw.exe utility and again to install a new service with the same name.  By doing so, the hacker considerably reduces possibility that the administrator will detect the backdoor during a later inspection. Whenever an event occurs, the system administrator will focus on looking for something odd in the system, leaving all existing services unchecked. From the hacker point of view, it is essential to hide files deeply in system directories to protect them from being detected by the system administrator. In time, a hacker will think of naming the tools to be planted on the server disk. Netcat.exe and Srvany.exe are utilities that are required to run continuously and will be seen in the task manager. Hackers understand that backdoor utilities must have names that will not attract any undue attention. They use the same approach when choosing an appropriate port for a backdoor. For example, port 5555 does not seem to be backdoored for the reason that it could immediately tip off the system administrator. &lt;br /&gt;&lt;br /&gt;The technique presented above is very simple but efficient at the same time. It allows a hacker to get back into the machine with the least amount of visibility within the server logs (we are obviously not speaking about situations where extra software is used to monitor traffic and there is an efficient event logging system installed). Moreover, the backdoored service allows the hacker to use higher privileges – in most cases as a System account. This may cause some problems for an intruder because, notwithstanding the highest permissions, the System account has no power outside the machine. Under this account, disk mapping or adding user accounts is not possible. Instead, passwords can be changed and privileges may be assigned to existing accounts. With a backdoor that has captured the system administrator account, no such restrictions exist. The only problem that remains is related to the change of user password, because a password update is required to restart the related service. An administrator will undoubtedly start noticing log errors, once care for event logging and monitoring is provided. The example given above describes a backdoor that is the most dangerous one from the victim system point of view, because anyone can connect to it and obtain the highest permissions with no authentication required. It may be any scriptkiddie using a portscanning tool against computers randomly selected from the Internet. &lt;br /&gt;&lt;br /&gt;Hacker–dedicated Web sites give examples of many tools that serve to install backdoors, with the difference that once a connection is established the intruder must login by entering a predefined password. iCMD [2], Tini [3], RemoteNC [4] or WinShell [5] (Fig. 1) are examples of tools resembling Telnet.&lt;br /&gt;&lt;br /&gt;&lt;IMG SRC="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys11043332422105.jpg"&gt;&lt;br /&gt;1 WinShell program may be used to install certain simple backdoors&lt;br /&gt;&lt;br /&gt;I once saw a very interesting script named CGI-backdoor [6]. I considered this to be interesting because an attacker could execute remote commands on the server via WWW. It was a specifically created totally dynamic .asp site written in VBScript (available also in Perl, PHP, Java and C) that enabled one to execute commands on the server using the default command processor cmd.exe. A hacker can exploit this to configure the reverse WWW script on the victim's system but can only permitted by default with sufficient privileges to the IUSR_MACHINE account. This script can be used without logging at all, thus no traces are left on the system. Its additional advantage is that it does not listen in on any port but translates between the HTML used in WWW pages and the server that runs interactive websites. &lt;br /&gt;&lt;br /&gt;In order to create backdoors, hackers can use commercially available tools such as Remote Administrator [7], or free available TightVNC [8], that apart from a full control over the computer also allow one to operate a remote console. &lt;br /&gt;&lt;br /&gt;“The Fall of Troy, the wooden horse and all events thereafter…”&lt;br /&gt;Trojan horses or Remote Administration Trojans (RATs) are a class of backdoors that are used to enable remote control over the compromised machine. They provide apparently useful functions to the user, and at the same time, open a network port on a victim computer. Then, once started, some trojans behave as executable files, interact with certain keys of the registers responsible for starting processes and sometimes create their own system services.&lt;br /&gt;&lt;br /&gt;Contrary to common backdoors, Trojan horses hook themselves into the victim operating system and always come packaged with two files – the client file and the server file. The server, as its name implies, is installed in the infected machine while the client is used by the intruder to control the compromised system. Some well known trojan functions include: managing files on the victim computer, managing processes, remote activation of commands, intercepting keystrokes, watching screen images and also restarting and closing down infected hosts - just to name a few of their features. Some are even able to connect themselves to their originator. Of course, these possibilities vary among individual Trojan horses. The following are considered the most popular: NetBus, Back Orifice 2000, SubSeven, Hack’a’tack, and one of Polish origin, named Prosiak. &lt;br /&gt;&lt;br /&gt;In most cases, Trojan horses propagate via email. They are usually found within attachments, because their authors exploit vulnerabilities of the email client. Another technique relies on the fact that they bound into other programs. There are many programs in the Web that malts files to create a single executable file.&lt;br /&gt;&lt;br /&gt;Trojan horses (also called trojans) typically operate in a somewhat schematic manner. In contrast to previously described backdoors, where both implementation and function are limited only by intruder’s ingenuity, the behavior here is quite well defined. They listen in on specific ports (for example, 12345 is the NetBus Trojan default port), setting specific references in start files and registers, thereby being relatively simple to detect and identify. In most cases, problems with Trojan horses can be solved by using an anti-virus (AV) software (updated!) to check for possible infections. &lt;br /&gt;&lt;br /&gt;RootKit – hiding presence&lt;br /&gt;To accomplish his goal, a hacker must install a backdoor that is not easily detectable. This is his primary task. Hackers use a variety of methods for this purpose, placing their tools at the deepest level of compromised systems and renaming files so as not to arouse suspicions. However that is not enough since the processes are still visible and it is so simple to discover any unexpected program that listens in on a certain port using netstat for checking information about that port. Therefore, hackers can also use Root Kits.&lt;br /&gt;&lt;br /&gt;As most readers know, a rootkit is generally a Unix concept that is spreading to other platforms in its increasingly sophisticated forms. This is a collection of tools used by an intruder to hide his presence in an attacked system. Typical goals include replacing or infecting binaries such as ps, find, ls, top, kill, passwd, netstat, hiding directories, files and even their portions  – for example, in  /etc/passwd. Moreover, catching passwords, deleting logins of attacker’s activity, placing backdoors in specific services (for example, Telnet), to get in without authorization at any time. There are plenty of rootkits in the Unix environment, and each new release is more “forward thinking” in terms of its functions. They are also available to attack Windows systems – less sophisticated but still powerful and also trendy. Some handy rootkit solutions deal with hiding or altering netstat commands, thereby making a previously planted backdoor invisible while listening in on any port. &lt;br /&gt;&lt;br /&gt;A simple script put in Perl’s string context, compiled and named netstat.exe may be an example of a trivial rootkit. A real system netstat could be named oldnetstat.exe. The principle of operation of the new netstat is that once the command line will call the real netstat (now oldnetstat.exe), it will be directed to a temporary text file. Then the rootkit searches that file for any information about the listening port to remove it (according to the procedure predefined in the rootkit code). After modification, the result is displayed on the screen and the old file is removed. This principle is both simple and efficient and provides an interesting possibility – it may be used to spoof output data acting from any other tool available through the command line – for example, tlist, or dir. There are many programs of this type available on the Web. The ones that I encountered did not display, for example, information on listening ports such as 666, 27374, 12345, 31337 – i.e. well-known Trojan horse ports. &lt;br /&gt;&lt;br /&gt;The idea of a first enhanced rootkit for the Windows environment was born in due time. The originator was Greg Hoglund, whilst the progress of this idea could be seen on www.rootkit.com (unfortunately no longer available). From what I know, the development got stuck after the 0.44 version [9]. However below you will find a description of a somewhat older version, namely 0.40 [10]. &lt;br /&gt;&lt;br /&gt;This rootkit has been designed as a kernel mode driver that runs with system privileges right at the core of the system kernel. Given this fact, it has access to all resources of the operating system, thus having a broad field of action. In order to install it one requires the administrator’s permissions whilst simple net start/net stop commands are sufficient to activate/disactivate it respectively. &lt;br /&gt;&lt;br /&gt;Once the rootkit has been loaded, the hacker can hide directories and files on the victim’s disk. This method is efficient provided that the object to be hidden has a name prefixed with _root_ – for example, _root_directory_name. How does this work? The rootkit, by patching the kernel, intercepts all system calls for the listing of the disk content and all objects beginning with the sequence _root_ – are hidden from display. The same applies to the searching process – all files and directories with the above sequence of characters are hidden from the search. &lt;br /&gt;&lt;br /&gt;This rootkit feature can also be used to hide processes running as well as to do the same with the system registry entries, by prefixing all keys and entries with _root_. This enables the hacker to install, for example, services which will become a backdoor, thus being as invisible for the system administrator as services or registry entries or processes running in the system memory. &lt;br /&gt;&lt;br /&gt;The rootkit can also intercept all key strokes typed at the system console. This may be carried out by hooking into the keyboard driver and issuing the ‘sniffkeys’ command.&lt;br /&gt;&lt;br /&gt;This is not the last feature of the described rootkit. Its newest version (0.44) offers some other functions such as a hard-coded backdoor (Fig. 2) that allows a remote attacker to connect with the infected machine and gain the “top” privileged shell.&lt;br /&gt;&lt;br /&gt;&lt;IMG SRC="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys41043333064108.jpg"&gt;&lt;br /&gt;A backdoored rootkit allows a hacker to activate a sniffer&lt;br /&gt;&lt;br /&gt;Moreover, new implementations are foreseen, for example to have a function that redirects .EXE files to other programs. Starting a completely different tool after the rootkit has detected the execution of a file name that started with _root_ will do this. No other details have been published so far.  Everything is currently in the proof-of-concept stage and hackers cannot use this functionality.&lt;br /&gt;&lt;br /&gt;Guarding against the rootkit&lt;br /&gt;An ingenious hacker will be smart enough to hide his track forever. He will use all available means to outwit his victim and often has a big chance of reaching that goal. However system administrators are not defenseless against malicious attacks. There are many known techniques and procedures to detect any suspected installation within systems. At a first glance a rootkit seems to be a powerful tool and undoubtedly it is. Luckily, rootkits are a double-edged sword with their design. As I already mentioned, a kernel-based rootkit monitors calls for objects (files, directories, registers or processes) the names of which begin with a string&lt;br /&gt;&lt;br /&gt;Luckily many crackers are careless and portions of their rootkit can be detected. The trojaned files above often have configuration files that list which programs to hide and which to display. Often they forget to hide the configuration files themselves. Since /dev is the default location for many of these configuration files, looking in there for anything that is a normal file is often a good idea.&lt;br /&gt;&lt;br /&gt;A rootkit, however, cannot affect processes that have _root_ in their names. In other words, when a system administrator, is analyzing the system log using Regedit.exe, he cannot see hidden entries, but just by changing its name to  _root_regedit.exe, it will be enough for him to see all of them as well as hidden keys and registry entries. This is true for all programs – for example, Task Manager (see Fig. 3).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;IMG SRC="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys51043333295741.jpg"&gt;&lt;br /&gt;Task Manager – after changing its name to _root_taksmgr.exe, you can see hidden processes running in your system&lt;br /&gt;&lt;br /&gt;Next “vulnerability” of a rootkit: objects are only hidden from the environment of the compromised machine and they can easily be seen from another computer. Mapping a Network Drive remotely from another machine (or using net use command) is a means to see everything, which has been hidden for a local user. This is because the remote machine is using a clean kernel to view the files and directories on the compromised machine, avoiding the rootkits filtration process. &lt;br /&gt;&lt;br /&gt;Another trick is to use drivers.exe tools (see Fig. 4) available in the Resource Kit package, or Winmsd.exe.&lt;br /&gt;&lt;br /&gt;&lt;IMG SRC="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys61043333482971.jpg"&gt;&lt;br /&gt;Use drivers.exe utility from the Resource Kit for listing all drivers  – even those where the rootkit is involved&lt;br /&gt;&lt;br /&gt;Using the programs mentioned above, the system administrator can get the listing off all drivers, including the _root_.sys, that is, the rootkit device driver itself. This is an exceptional case, in which a process named with a prefix _root_ is not hidden. I would like to stress that the name of the driver as above is related to the specific rootkit described here and not necessarily to other rootkits. But as far as I know, more recent versions of the Windows rootkit are not available as yet.&lt;br /&gt;&lt;br /&gt;An interesting anti-rootkit solution has been developed by Pedestal Software. The company has created a program called Intact Integrity Protection Driver [11] that blocks changes and additions to registry keys and values. It effectively prohibits the Service Control Manager or user applications from changing service and driver keys, and values in the registry and also from adding to or replacing existing driver binaries. &lt;br /&gt;&lt;br /&gt;Detecting and guarding against backdoors&lt;br /&gt;Is your system secure? How do you know? A machine is very rarely targeted for an attack for any other reason than because it was vulnerable. One of the first steps in being proactive is to assess your basic security policy rules and requirements. I think that having an up-to-date anti-virus software installed is a primary concern, and even it won't fully protect your machine itself, it can be a lifesaver, providing good protection against most viruses and trojans.  &lt;br /&gt;&lt;br /&gt;Another good practice is to look routinely at any modification of programs to discover new, odd services or processes. Administration scripts are very useful tools in this regard, particularly when dealing with multiple systems. One might also wish to consider host scanning on your network from time to time. If you suspect that there is an open port at your computer, give a snapshot to check whether it is authorized or no. You may use network, application diagnosis and troubleshooting programs such as TCPview (Fig. 5) [12], FPort [13], Inzider [14], Active Ports (Fig. 6) [15], or Vision [16]. &lt;br /&gt;&lt;br /&gt;&lt;IMG SRC="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys81043333716787.jpg"&gt;&lt;br /&gt;TCPview tool allows to locate which application opened a port in your computer. Like Active Ports, it tells you what is running on which  port.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys71043333788019.jpg"&gt;&lt;br /&gt;Active Ports in action&lt;br /&gt;&lt;br /&gt;These tools provide a means to identify the specific application opening the port. Moreover, they let one avoid using Netstat, if it suspects that is has been replaced or infected. This brings me to another interesting consideration: whichever tool is used, it is a good practice to use original tools previously uploaded on a trusty diskette or CD-ROM when attempting to make a check of the system. If any doubt exists whether individual tools are original ones, checksum them to check if they match the installation CD-ROM.&lt;br /&gt;&lt;br /&gt;In this regard, ListDlls [17] and Process Explorer [18] (Fig. 7) can certainly be useful if finding any suspect signs of trojan infected or backdoored processes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.windowsecurity.com/img/upl/ukryte_furtki_rys91043333885209.jpg"&gt;&lt;br /&gt;Process Explorer that displays object processes and related DLL libraries&lt;br /&gt;&lt;br /&gt;These programs with their DLL libraries give some assistance and provide additional information on handling incidents, investigations and conducting analysis to gather legal evidence in view of criminal prosecution.&lt;br /&gt;&lt;br /&gt;May I also suggest that one pay closer attention to the registry keys that are responsible for starting programs on the system startup. In most cases, these registry elements usually contain some indication of how the intruder gained access, from where, when, etc. These are:&lt;br /&gt;&lt;br /&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs&lt;br /&gt;HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Session Manager\KnownDLLs&lt;br /&gt;HKEY_LOCAL_MACHINE\System\ControlSet\Services&lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run&lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnce&lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnceEx&lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices&lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinLogon &lt;br /&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows (run) &lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Run&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnce&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnceEx&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows (run)&lt;br /&gt;HKEY_CLASSES_ROOT\exefile\shell\open\command&lt;br /&gt;&lt;br /&gt;It is extremely important to establish consistent access permissions on these keys and activate inspection tools to continuously monitor for any malicious attempts. The same applies to those system directories and files that are security critical. A commonly accepted computer security policy usually starts with a “sound” firewall as a guard against backdoors. Even if the intruder manages to install a backdoor, the firewall will block him from getting to the listening port.   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In fact, bypassing a firewall is not a plug-n-play thing, but I take liberty to serve a nice dose of pessimism. There are known hacker tools that can get through even the most hardened firewalls. &lt;br /&gt;&lt;br /&gt;However this is beyond the scope of this article, so I would recommend reading the document available at the address: http://www.spirit.com/Network/net0699.txt.&lt;br /&gt;&lt;br /&gt;Finally, I would like to raise your awareness about a certain issue. Once your machine has been compromised and the hacker has gained total administrative access, be very careful in recovering the system from the back-up copy or the disk image! I have personally experienced a situation, where someone replaced a WWW site. The system administrator had retrieved the system from a back-up copy, patched the system, updated the access database and changed passwords. Thus, he has considered the server perfectly safe. But he overlooked the fact, that the intrusion had been made long before he made the copy containing a back-doored version. So, I would strongly recommend checking the system whenever it is backed up.&lt;br /&gt;&lt;br /&gt;Hackers increasingly threaten the network community with their new techniques, backdoors and Trojan horses. Therefore we must take steps to guard against known methods of hacking, even though their will still be a large number of worrying factors we don’t know about. The only thing is absolutely obvious – you never know how long your immune system can hold out before breaking down.&lt;br /&gt;&lt;br /&gt;Tools:&lt;br /&gt;[1] Netcat - http://www.hackerscor.com/km/files/hfiles/ncnt090.zip&lt;br /&gt;[2] iCMD - http://go8.163.com/lmqkkk/mytools/iCmd.exe&lt;br /&gt;[3] RemoteNC - http://go8.163.com/lmqkkk/mytools/remotenc.zip&lt;br /&gt;[4] Tini - http://go8.163.com/lmqkkk/mytools/tini.exe&lt;br /&gt;[5] WinShell - http://go8.163.com/lmqkkk/mytools/Winshell4.0.zip&lt;br /&gt;[6] CGI-backdoor - http://go8.163.com/lmqkkk/mytools/cgi.zip&lt;br /&gt;[7] Remote Administrator - www.radmin.com&lt;br /&gt;[8] TightVNC - http://www.tightvnc.com/download.html&lt;br /&gt;[9] Rootkit v.0.44 – www.ndsafe.com/fires/rk_044.zip&lt;br /&gt;[10] IIP Driver - http://www.pedestalsoftware.com/intact/iipdriver.htm&lt;br /&gt;[11] TCPview – www.winternals.com&lt;br /&gt;[12] Fport - http://www.foundstone.com/knowledge/proddesc/fport.html&lt;br /&gt;[13] Inzider - http://ntsecurity.nu/toolbox/inzider/&lt;br /&gt;[14] Active Ports - http://www.ntutility.com/freeware.html&lt;br /&gt;[15] Vision - http://www.foundstone.com/knowledge/proddesc/vision.html&lt;br /&gt;[16] ListDlls – http://www.sysinternals.com/ntw2k/freeware/listdlls.shtml&lt;br /&gt;[17] Process Explorer - http://www.sysinternals.com/ntw2k/freeware/procexp.shtml&lt;br /&gt;[18] LANguard Network Security Scanner&lt;br /&gt;&lt;br /&gt;Additional information:&lt;br /&gt;1. RootKit &lt;br /&gt;http://www.crackinguniversity2000.it/Paper/__==__--%20rootkit%20--__==__.htm&lt;br /&gt;http://packetstorm.decepticons.org/UNIX/penetration/rootkits&lt;br /&gt;2. Intact Integrity Protection Driver&lt;br /&gt;http://www.pedestalsoftware.com/intact/iipdriver.htm&lt;br /&gt;3. Preventing and Detecting Malware Installations on NT/2K &lt;br /&gt;http://www.securitystorm.net/mobile/securityfocus-articles/preventing_and_detecting_malware.htm&lt;br /&gt;4. Detecting rootkits&lt;br /&gt;http://r00t.h1.ru/texts/detectrk.php&lt;br /&gt;5. Hacker’s Rootkit for NT&lt;br /&gt;http://webbuilder.netscape.com/webbuilding/0-7532-8-4877567-1.html&lt;br /&gt;6. Rootkit: Attacker undercover tools By Saliman Manap&lt;br /&gt;http://www.niser.org.my/resources/rootkit.pdf&lt;br /&gt;7. Stop Windows hackers &lt;br /&gt;http://webbuilder.netscape.com/webbuilding/0-7532-8-4996985-1.html&lt;br /&gt;8. Understanding and Guarding Against Rootkits &lt;br /&gt;http://rr.sans.org/threats/rootkits2.php&lt;br /&gt;9. Hacking lexicon&lt;br /&gt;http://www.robertgraham.com/pubs/hacking-dict.html&lt;br /&gt;10. Securing a compromised Microsoft Windows NT or 2000 Server&lt;br /&gt;http://www.utexas.edu/computer/security/news/iis_hole.html&lt;br /&gt;11. Windows backdoors – update II &lt;br /&gt;http://www.ciac.org/ciac/bulletins/j-032.shtml&lt;br /&gt;12. Backdoors Continued&lt;br /&gt;http://www.themanagementor.com/EnlightenmentorAreas/it/SW/1202_4.htm&lt;br /&gt;13. At the root of rootkits&lt;br /&gt;http://builder.cnet.com/webbuilding/0-7532-8-4561014-1.html?tag=st.bl.7532.edt.7532-8-4561014&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-8170210299663914926?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/8170210299663914926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/09/system-admin-tools-tcpview-fport.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8170210299663914926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8170210299663914926'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/09/system-admin-tools-tcpview-fport.html' title='SYSTEM ADMIN TOOLS- TCPview ,FPort ,Inzider ,Active Ports , or Vision'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-696441305514547531</id><published>2009-09-17T01:46:00.000-07:00</published><updated>2009-09-17T01:51:03.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='restore firewall'/><category scheme='http://www.blogger.com/atom/ns#' term='task manager'/><title type='text'>restore firewall, task manager , registry</title><content type='html'>WINDOWS XP HIDDEN APPS:&lt;br /&gt;=========================================&lt;br /&gt;&lt;br /&gt;1) Character Map = charmap.exe (very useful for finding unusual characters)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://content5.videojug.com/0d/0d4717b6-9c33-9a5b-9d09-ff0008ca4384/how-to-enable-javascript.jpg"&gt;&lt;br /&gt;2) Disk Cleanup = cleanmgr.exe&lt;br /&gt;&lt;br /&gt;3) Clipboard Viewer = clipbrd.exe (views contents of Windows clipboard)&lt;br /&gt;&lt;br /&gt;4) Dr Watson = drwtsn32.exe (Troubleshooting tool)&lt;br /&gt; using dos tasklist command you can view all running process-&lt;br /&gt;&lt;img src="http://www.cutawaysecurity.com/blog/wp-content/uploads/laptop_dir.png"&gt;&lt;br /&gt;5) DirectX diagnosis = dxdiag.exe (Diagnose &amp; test DirectX, video &amp; sound cards)&lt;br /&gt;&lt;br /&gt;6) Private character editor = eudcedit.exe (allows creation or modification of characters)&lt;br /&gt;&lt;br /&gt;7) IExpress Wizard = iexpress.exe (Create self-extracting / self-installing package)&lt;br /&gt;&lt;br /&gt;Microsoft Synchronization Manager = mobsync.exe (appears to allow synchronization of files on the network for when working offline. Apparently undocumented).&lt;br /&gt;&lt;br /&gt;9) Windows Media Player 5.1 = mplay32.exe (Retro version of Media Player, very basic).&lt;br /&gt;&lt;br /&gt;10) ODBC Data Source Administrator = odbcad32.exe (connecting to databases)&lt;br /&gt;&lt;br /&gt;11) Object Packager = packager.exe (to do with packaging objects for insertion in files, appears to have comprehensive help files).&lt;br /&gt;&lt;br /&gt;12) System Monitor = perfmon.exe (very useful, highly configurable tool, tells you everything you ever wanted to know about any aspect of PC performance, for uber-geeks only )&lt;br /&gt;&lt;br /&gt;13) Program Manager = progman.exe (Legacy Windows 3.x desktop shell).&lt;br /&gt;&lt;br /&gt;14) Remote Access phone book = rasphone.exe (documentation is virtually non-existant).&lt;br /&gt;&lt;br /&gt;15) Registry Editor = regedt32.exe [also regedit.exe] (for hacking the Windows Registry).&lt;br /&gt;&lt;br /&gt;16) Network shared folder wizard = shrpubw.exe (creates shared folders on network).&lt;br /&gt;&lt;br /&gt;17) File siganture verification tool = sigverif.exe&lt;br /&gt;&lt;br /&gt;1 Volume Control = sndvol32.exe (I've included this for those people that lose it from the System Notification area).&lt;br /&gt;&lt;br /&gt;19) System Configuration Editor = sysedit.exe (modify System.ini &amp; Win.ini just like in Win98! ).&lt;br /&gt;&lt;br /&gt;20) Syskey = syskey.exe (Secures XP Account database - use with care, it's virtually undocumented but it is used to encrypt passwords).&lt;br /&gt;&lt;br /&gt;21) Microsoft Telnet Client = telnet.exe&lt;br /&gt;&lt;br /&gt;22) Driver Verifier Manager = verifier.exe (seems to be a utility for monitoring the actions of drivers, might be useful for people having driver problems. Undocumented).&lt;br /&gt;&lt;br /&gt;23) Windows for Workgroups Chat = winchat.exe (appears to be an old NT utility to allow chat sessions over a LAN, help files available).&lt;br /&gt;&lt;br /&gt;24) System configuration = msconfig.exe (can use to control starup programs)&lt;br /&gt;&lt;br /&gt;25) gpedit.msc used to manage group policies, and permissions&lt;br /&gt;&lt;br /&gt;26) TO RESET WINDOWS FIREBALL SETTING BACK IF YOU GOT FIREWALL DISABLE THEN TRY THIS COMMAND AT COMMAND PROMPT:-  netsh winshock reset&lt;br /&gt;&lt;br /&gt;Repairing Your Windows Environment &lt;br /&gt;(1)&lt;br /&gt;You have already seen people fully desperate because their Windows system cannot boot. Of course,&lt;br /&gt;they could bring their PC back to the shop and ask for a complete re-install, but they will loose&lt;br /&gt;their data. There is a way avoiding that. Of course they will still have to go back to the shop and&lt;br /&gt;have the thing repaired. But they can, before that, save their files. There are Windows LiveCD&lt;br /&gt;distros, you can boot on a CD which has an embedded Windows. Because you boot off the CD-rom, the&lt;br /&gt;hard disk is not embedded. And as you boot off a CD, there is no virus problem, at least....&lt;br /&gt;How To Change Your Windows User Environment Variables &lt;br /&gt;a step-by-step guideline (5)&lt;br /&gt;1. INTRODUCTION. Most of Microsoft very basic users are satisfied when the Windows installer&lt;br /&gt;installs each new software, automatically putting each file in the right place and making each&lt;br /&gt;Windows registry change. However, some new incoming software environment, mainly the ones from the&lt;br /&gt;open world, let you do some changes manually. For instance, if you install the java development&lt;br /&gt;software on your pc, you have to manually tell windows where the java binaries are. That means, if&lt;br /&gt;you type “javac” in a command shell window, Microsoft Windows has to know that javac.ex....&lt;br /&gt;Avoid Flash Disk Viruses &lt;br /&gt;This ruins a lot of Windows PC! (14)&lt;br /&gt;There are this new hype of virus scattering around nowadays that ruins a lot of PCs in our country;&lt;br /&gt;in schools and public cafes! Its bad since it disables a lot of features as well as it ruins memory&lt;br /&gt;the slows down the whole thing. It disables much of the removal process like Windows RegEdit.exe,&lt;br /&gt;MsConfig.exe and also TaskMan.exe. Variations of these also disables your keyboard during normal&lt;br /&gt;booting, floods your disk with virus files in the root directory and also the windows directory and&lt;br /&gt;some also floods your directory with Folder looking icons that is an executable.. ....&lt;br /&gt;Reformatting Your Computer (windows Xp) &lt;br /&gt;Format your Computer/PC/Harddrive and Install Windows (10)&lt;br /&gt;Many of us, during the course of computer's life will need to reformat our computer for various&lt;br /&gt;reasons. Whether it be your computer is so slow and you just can't figure out why, or if you&lt;br /&gt;have a very persistent virus that you just can't figure out a way to eradicate. Though i'm&lt;br /&gt;sure there are countless number of reasons, many will fall on the solution of reformatting your&lt;br /&gt;computer....or more specifically, your hard-drive. Now what exactly does this involve? To put it&lt;br /&gt;simply, reformatting your hard-drive is like reformatting any other disk like a floppy d....&lt;br /&gt;Remote Desktop Connection In Windows Vista &lt;br /&gt;(4)&lt;br /&gt;Remote Desktop Connection in Windows Vista What is Remote Desktop ? Remote Desktop Connections&lt;br /&gt;can save time and aggravation: It's a technology already installed in Windows Vista that lets&lt;br /&gt;you sit at a computer in one place and connect to another computer in a completely different&lt;br /&gt;physical location away from you. For example, you can leave programs running on your computer at&lt;br /&gt;work and then see them the same way you do at work when you turn on your computer at home. You can&lt;br /&gt;be miles away from the work computer but be working on it as if you had never left the off....&lt;br /&gt;How To Setup Parental Controls In Windows Vista &lt;br /&gt;(5)&lt;br /&gt;How to Setup parental controls in windows Vista Parental controls are a great first step to&lt;br /&gt;keeping children safe online. To configure Parental Controls your computer must be set up with at&lt;br /&gt;least one password-protected administrator user account. To Set up parental controls 1- Log in&lt;br /&gt;to a user account that has administrative privileges. 2- Click the Start button, choose Control&lt;br /&gt;Panel, and click Set up parental controls for any user. 3- You come to a page that shows the name&lt;br /&gt;and picture for each user account you’ve created Click the user account for which you want....&lt;br /&gt;How To Add Administrator Account In Logon Screen &lt;br /&gt;Windows XP (4)&lt;br /&gt;If you've created an account in addition to the Administrator account in Windows XP, the&lt;br /&gt;administrator account will not be shown in the Logon Scree, this tutorial explains you how to add&lt;br /&gt;the Administrator account to the logon screen. If you are using Windows XP Pro follow these steps, &lt;br /&gt;1. In the Start Menu, select Run. 2. In the Run dialog, type 'regedit' without quotes, to&lt;br /&gt;start the registry editor. 3. Navigate to the key, HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \&lt;br /&gt;Windows NT \ CurrentVersion \Winlogon \SpecialAccounts \UserList 4. In the right pane, ri....&lt;br /&gt;Installing Windows Vista Rtm With Boot Camp &lt;br /&gt;(4)&lt;br /&gt;I guess I'm a few months late on this Vista RTM thing... I'm writing this because I've&lt;br /&gt;gotten sick of the Mac OS. It's just too unnatural for me to use. But, for those of you who have&lt;br /&gt;been afraid to install Windows Vista RTM on your Macs using Boot Camp, this tutorial should help you&lt;br /&gt;and give you confidence. wifi, Aero, and installation work automatically. Two-finger scrolling&lt;br /&gt;works. iSight is actually functional (you can use it). Part 1: Installing Vista To install&lt;br /&gt;Windows Vista on your Mac, you'll need... (Guess.) A Windows Vista DVD and an ....&lt;br /&gt;Windows Xp &amp; 2003 Performace And Security Part One &lt;br /&gt;(2)&lt;br /&gt;Last week I promised to release my very first tutorial on AstaHOST regarding basic computer&lt;br /&gt;security. Why is computer security important? For starters, ask yourselves the following question.&lt;br /&gt;Can you really risk losing your personal data, including memorable pictures, videos, documents, and&lt;br /&gt;important projects that are currently being developed by you? That is up to you to answer, yet I&lt;br /&gt;know that most computer users don’t have instant backup solutions that keep data safe, even if&lt;br /&gt;Windows is dead. The following tutorial will guide the average user on how to easily tweak h....&lt;br /&gt;Getting A New PC Ready To Work With Windows &lt;br /&gt;Getting started with Windows OS (6)&lt;br /&gt;This tutorial will help you getting started with using your new PC, which came with a Windows&lt;br /&gt;Operating System. After you succesfully install Windows (that's much of an achievement&lt;br /&gt;itself!), do not think that you are ready to use your PC. Actually, you're far away from&lt;br /&gt;'ready' to use anything more complex than Notepad!!! ---- Section 1 : Things to install,&lt;br /&gt;depending on how you use your PC ---- Office Applications : Microsoft Windows DOES NOT ship&lt;br /&gt;with Microsoft Office. You have to purchace it separately. If you have done so, then be sure to i....&lt;br /&gt;Breaking Into A Windows XP Installation &lt;br /&gt;Exploiting the FAT32 Partition (7)&lt;br /&gt;Usually a Windows XP installation is done on a NTFS partition but at times you will find fools who&lt;br /&gt;install it on FAT32 partition and have no idea that they could create a Limited user account for&lt;br /&gt;normal using and then go about complaining that Windows is insecure to the brim. Anyway here we&lt;br /&gt;only need the Windows XP/Server 2003 to be installed on a FAT32 partition. There are three simple&lt;br /&gt;steps involved: • Rename the logon.scr file situated in system32 folder to something else.&lt;br /&gt;Then make a copy of the cmd.exe and name it logon.scr . • Restart the computer, ....&lt;br /&gt;Adding East Asian Fonts To Your System &lt;br /&gt;For Windows XP (5)&lt;br /&gt;While trying to show someone the mysterious symbols used to create "The Matrix" source code, I&lt;br /&gt;realized that most people have no need to use the East Asian input services offered in Windows XP&lt;br /&gt;but they still may want to know how to play with the options. Additionally, there may be many&lt;br /&gt;Eur-Asian people throughout the world that don't know that they can use their native language&lt;br /&gt;when sending emails to their families abroad;. Or even type letters in their native script. Well,&lt;br /&gt;in an effort to increase the public knowledge of this service, I decided to write this tuto....&lt;br /&gt;Disabling/Enabling Some Of Windows Features &lt;br /&gt;(2)&lt;br /&gt;Disabling/Enabling some of Windows features .:!:. To disable task manager Click Start &gt; Run &gt; and&lt;br /&gt;type regedit, to run registry editor Find following address:&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System Crate a new Dword and&lt;br /&gt;name it DisableTaskMgr. To disable task manager give value of 1 To enable task manager give value of&lt;br /&gt;0 .:!:. To disable unread email display on Welcome Screen Run registry editor and find following&lt;br /&gt;address: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UnreadMail Double click on&lt;br /&gt;“MessageExpiryDays” key ....&lt;br /&gt;Stream Lining Windows &lt;br /&gt;&lt;img src="http://blogs.technet.com/blogfiles/askperf/WindowsLiveWriter/PowerShellBasics_9D6B/image_61ea44ee-e3c2-4cad-bc48-e250ceebd2ac.png"&gt;&lt;br /&gt;(1)&lt;br /&gt;Here's a few quick hacks/registry changes that will help you improve the terribly bloated and&lt;br /&gt;mind-numbing thing we call XPand hopefully I'll got some good credits out of this to. This&lt;br /&gt;tutorial is VERY detailed so it should be easy to follow and sorry if there is spelling mistakes.&lt;br /&gt;MAKE SURE YOU BACK UP YOUR REGISTRY BEFORE YOU TRY ANY OF THESE. I also take no responsibility if&lt;br /&gt;you are an idoit and dont back it up or if you do any harm to your computer!! Improved context&lt;br /&gt;menu: &lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/159/365903036_95a818c9aa.jpg"&gt; HKEY_CLASSES_ROOT\AllFileSysytemObjects\shellex\ContextMenuHandlers New key called "Co....&lt;br /&gt;How To Make Your Windows Look Like A Mac &lt;br /&gt;Windows Xp only (25)&lt;br /&gt;Ok Fans of macs I have done my reserch and checked it twice and I now present my tutorial on how to&lt;br /&gt;make your windows XP desktop look like a Mac operating system. For those who think its really hard&lt;br /&gt;your wrong and without any more jiber jaber lets get started. Step 1: The Downloads Ok for this&lt;br /&gt;to work your going to need some items to make it work. The first one is the skin to make your&lt;br /&gt;windows look like a mac. Its called Panther you can download it here . Second your gonna need a doc&lt;br /&gt;for your programs. The best free one out there is Yz's dock and you can download....&lt;br /&gt;Ways To Improve Your Performance In Windows XP &lt;br /&gt;(24)&lt;br /&gt;&lt;img src="http://blog.crowe.co.nz/images/PowerShellIISWebService.gif"&gt;&lt;br /&gt;There are many ways for us to improve our computer performance when we're using memory intensive&lt;br /&gt;&lt;img src="http://www.xcontact.ro/wp-content/uploads/2007/01/powershell.PNG"&gt;&lt;br /&gt;programs like 3ds max, adobe photoshop(when dealing with large poster-size pictures) etc. Below are&lt;br /&gt;some suggested steps to improve your computer's performance. 1)Reduce the number of processes&lt;br /&gt;&lt;img src="http://dani3lr.files.wordpress.com/2009/06/win-r-ad-recycle-bin-017b.jpeg"&gt;&lt;br /&gt;&lt;br /&gt;running during startup. /biggrin.gif" style="vertical-align:middle" emoid=":D" border="0"&lt;br /&gt;alt="biggrin.gif" /&gt; This can be achieved by using the MSCONFIG provided by windows. To access this&lt;br /&gt;hidden program, go to start &gt; run and type "MSCONFIG". This will brings you t....&lt;br /&gt;[windows 95/98/me] Force Users To Login &lt;br /&gt;(1)&lt;br /&gt;No doubt you noticed that in windows 95/98/me that at the loin screen a user can press cancel to&lt;br /&gt;access your computer. This i guess is meant to be like a guest account but in most cases its&lt;br /&gt;annoying to have. This hack will auto-logoff the user as soon as they login the this&lt;br /&gt;'guest' account. IMPORTANT: THIS REQUIRES YOU TO EDIT THE REGISTRY, IF YOU DO NOT FOLLOW&lt;br /&gt;THESE INSTRUCTIONS CAREFULLY YOU COULD MESS UP YOUR COMPUTER, IN SOME CASES A REGISTRY BACKUP MAY&lt;br /&gt;WORK, IF YOU CAN USE IT, SEARCH GOOLGLE FOR REGISTRY BACKUP TO FIND OUT HOW TO DO THIS 1. Goto&lt;br /&gt;this k....&lt;br /&gt;[all Windows] Disable Registry Editing Tools &lt;br /&gt;(2)&lt;br /&gt;If you want to mek it so cerin users, maybe guest or the account you getto by pressing cancel for in&lt;br /&gt;95/98 to not be able to edit the regisstry this is the registry hack for you. IMPORTANT: THIS&lt;br /&gt;REQUIRES YOU TO EDIT THE REGISTRY, IF YOU DO NOT FOLLOW THESE INSTRUCTIONS CAREFULLY YOU COULD MESS&lt;br /&gt;UP YOUR COMPUTER, IN SOME CASES A REGISTRY BACKUP MAY WORK, IF YOU CAN USE IT, SEARCH GOOLGLE FOR&lt;br /&gt;REGISTRY BACKUP TO FIND OUT HOW TO DO THIS 1. Goto this key in the registry, to get to the&lt;br /&gt;registry goto Start -&gt; Run and enter regedit QUOTE HKEY_CURRENT_USER\SOFTWARE\Micro....&lt;br /&gt;Great Windows Tweaks &lt;br /&gt;(16)&lt;br /&gt;I've found mass ways to tweak windows, therfore increasing computer performance, and bandwidth.&lt;br /&gt;Check out www.speedguide.net and install the right tweaks for you, i assure it will optimize your&lt;br /&gt;connection, and give all of you a better surfing experience.....&lt;br /&gt;Speed up your windows and Pc! &lt;br /&gt;(21)&lt;br /&gt;Speed up your windows and Pc! Right click on " My Computer" and select " Properties" . Go to "&lt;br /&gt;Performance" and click on " File System". In "Settings" section change " Desk Top Computer" to "&lt;br /&gt;Network Server" For speed up your windows: Run " Registry Editor", and go to below address :&lt;br /&gt;HKEY_CURRENT_URER\Control Panel\Desk Top Add a parameter : (String Value)(REG_SZ) (value data =0&lt;br /&gt;),and name it "MenuShow Delay"....&lt;br /&gt;Windows Keyboard Shortcuts &lt;br /&gt;FYI (11)&lt;br /&gt;CTRL+C=Copy CTRL+V=Paste Windows+E=Windows Explorer Windows+F=Search CTRL+Z=Undo Windows+R=Run&lt;br /&gt;Command Windows+D=Shows Desktop Windows+U=Utility manager Windows+F1=Windows Help CTRL+A=Select All &lt;br /&gt;Hope that helps to all of you computer-illiterate...&lt;br /&gt;&lt;br /&gt;The NET Command is used to manage services as follows: &lt;br /&gt;&lt;br /&gt;Syntax&lt;br /&gt;      NET START [service]&lt;br /&gt;      NET STOP [service]&lt;br /&gt;      NET PAUSE [service]&lt;br /&gt;      NET CONTINUE [service] &lt;br /&gt;   &lt;br /&gt;Key&lt;br /&gt;   service : The service name as shown in Control Panel, ServicesTo list the basic Services:&lt;br /&gt;&lt;br /&gt;NET HELP SERVICES &lt;br /&gt;&lt;br /&gt;To list the running Services:&lt;br /&gt;&lt;br /&gt;NET START &lt;br /&gt;&lt;br /&gt;If you try to start a service that is already running you will get this error message:&lt;br /&gt;&lt;br /&gt;"The requested service has already been started. More help is available by typing NET HELPMSG 2182"&lt;br /&gt;&lt;br /&gt;You can redirect and FIND this type of error as follows:&lt;br /&gt;&lt;br /&gt;NET START alerter 2&gt;&amp;1|FIND "2182" &lt;br /&gt;IF errorlevel 1 goto :sub_already_started&lt;br /&gt;&lt;br /&gt;Related:&lt;br /&gt;&lt;br /&gt;NET - Manage network resources &lt;br /&gt;MODE - Configure a system device&lt;br /&gt;SC - Service Control&lt;br /&gt;PsService - View and control services&lt;br /&gt;WMIC SERVICE - WMI access to services.&lt;br /&gt;List of Windows Services &lt;br /&gt;Powershell: &lt;br /&gt;Get-Service - Get a list of services&lt;br /&gt;New-Service - Create a new service&lt;br /&gt;Restart-Service - Stop and then restart a service&lt;br /&gt;Resume-Service - Resume a suspended service&lt;br /&gt;Set-Service - Change the start mode/properties of a service&lt;br /&gt;Start-Service - Start a stopped service&lt;br /&gt;Stop-Service - Stop a running service&lt;br /&gt;Equivalent bash command (Linux): start-stop-daemon - start and stop system daemon programs &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Microsoft DOS netsh command&lt;/strong&gt;&lt;br /&gt;___________________________________________________&lt;br /&gt;MS-DOS command that enables users to change network settings such as changing their network device from a dynamic address to a static address or changing the IP address. &lt;br /&gt;&lt;br /&gt;netsh dump &lt;br /&gt;&lt;br /&gt;Dump all the network information as a script to the screen. Can also be sent to a file by doing netsh dump &gt; file.txt . This script can then be executed using the exec command. &lt;br /&gt;&lt;br /&gt;set address name="Local Area Connection" source=dhcp &lt;br /&gt;&lt;br /&gt;Set the "Local Area Connection" to DHCP. &lt;br /&gt;&lt;br /&gt;set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1 &lt;br /&gt;&lt;br /&gt;Set the local address to Static. &lt;br /&gt;&lt;br /&gt;netsh interface ip show config &lt;br /&gt;&lt;br /&gt;View network ip configuration. Below is an example of what may be seen. &lt;br /&gt;&lt;br /&gt;Configuration for interface "Local Area Connection"&lt;br /&gt;DHCP enabled: Yes&lt;br /&gt;InterfaceMetric: 1&lt;br /&gt;DNS servers configured through DHCP&lt;br /&gt;WINS servers configured through DHCP &lt;br /&gt;&lt;br /&gt;There is a registry hack to enable or disable Windows NT TaskManager. The same registry hack applies to Windows 2000 and Windows XP. &lt;br /&gt;Hive: HKEY_CURRENT_USER &lt;br /&gt;Key: Software\Microsoft\Windows\CurrentVersion\Policies\System &lt;br /&gt;Name: DisableTaskMgr &lt;br /&gt;Type: REG_DWORD&lt;br /&gt;Value: 1=Enablethis key, that is DISABLE TaskManager&lt;br /&gt;Value: 0=Disablethis key, that is Don't Disable, Enable TaskManager &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As part of the enhanced management available in Windows 2000 and Windows XP, rather than risking a registry change, as an administrator you can enable or disable Windows 2000 Pro or Windows XP Pro's TaskManager using Group Policy Editor. This can be applied to the local policy. Note: if you are trying to override your organizations group policy, you can't. As soon as you re-authenticate to the domain, the domain or OU Group Policy will rewrite the registry setting. But if the TaskManager was accidently disabled or you need to control this item for a set of standalone boxes this is for you: &lt;br /&gt;&lt;br /&gt;Click Start &lt;br /&gt;Click Run &lt;br /&gt;Enter gpedit.msc in the Open box and click OK &lt;br /&gt;In the Group Policy settings window &lt;br /&gt;Select User Configuration &lt;br /&gt;Select Administrative Templates &lt;br /&gt;Select System &lt;br /&gt;&lt;img src="http://www.filebuzz.com/software_screenshot/full/37380-process_master.gif"&gt;&lt;br /&gt;Select Ctrl+Alt+Delete options &lt;br /&gt;Select Remove Task Manager &lt;br /&gt;Double-click the Remove Task Manager option &lt;br /&gt;And as I mentioned above, since the policy is Remove Task Manager, by disabling the policy, you are enabling the Task Manager. &lt;br /&gt;Got XP Home - use the registry edit. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_1hJC7TcNLt0/R9Tg7qaL4CI/AAAAAAAAANU/PkUHFqeiIKs/s320/enable-task-manager.gif"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cutawaysecurity.com/blog/wp-content/uploads/f-r30.png"&gt;&lt;br /&gt;&lt;img src="http://www.neuber.com/taskmanager/image/taskmanager.gif"&gt;&lt;br /&gt;Security Task Manager shows all active processes on your computer. You can easily recognize the endangering potential of each process. No other Task Manager or Process Viewer has this feature. Furthermore you can put a process into quarantine or search the internet for information about that process.&lt;br /&gt;&lt;br /&gt;"Security Task Manager tells you exactly what programs are running on your computer - and it gives you answers to the obvious ensuing questions, such as where these programs reside, who makes them, what they are called, whether they include hidden components, and what all this means to your computer."   &lt;br /&gt;&lt;img src="http://www.neuber.com/taskmanager/image/spywareprotectorgr.gif"&gt; SpyProtector deletes history, disables keyboard monitoring and warns you when registry is changed. You can easily monitor your autostart / startup registry entries.&lt;br /&gt;&lt;br /&gt;"SCANREG /RESTORE" Command_______________&lt;br /&gt;When you use the SCANREG /RESTORE command at a command prompt in MS-DOS mode to restore the registry, you may receive an error message stating that the registry was not restored. &lt;br /&gt;&lt;br /&gt;Reason &amp; sslution _____________&lt;br /&gt;This behavior can occur if a third-party program (such as Norton Unerase) has the drive's disk access locked. &lt;br /&gt;&lt;br /&gt;To work around this behavior: &lt;br /&gt;Restart the computer. Press and hold down the CTRL key until the Startup menu appears.&lt;br /&gt;Choose Step-by-Step Confirmation, and load only Himem.sys. Press N for all other prompts.&lt;br /&gt;Run the SCANREG /RESTORE command. Himem.sys is not required to run Scanreg.exe, but is required for Scandisk.exe and other tools that may be needed.&lt;br /&gt;When you start your computer successfully, the Windows Registry Checker tool (Scanreg.exe) creates a backup of system files and registry configuration information (including user account information, protocol bindings, software program settings, and user preferences) once daily. Files that Windows Registry Checker backs up include System.dat, User.dat, System.ini, and Win.ini. This article describes the Windows Registry Checker tool.&lt;br /&gt;Windows Registry Checker automatically scans the system registry for invalid entries and empty data blocks when it is started. If invalid registry entries are detected, Windows Registry Checker automatically restores a previous day's backup. This is equivalent to running the scanreg /autorun command from a command prompt. If no backups are available, Windows Registry Checker tries to make repairs to the registry. This is equivalent to running the scanreg /fix command from a command prompt. If the registry contains more than 500 KB of empty data blocks, Windows Registry Checker automatically optimizes it. &lt;br /&gt;&lt;br /&gt;Windows Setup runs the Windows Registry Checker tool to verify the integrity of the existing registry before it performs an upgrade. If it detects registry damage, it tries to fix it automatically. &lt;br /&gt;&lt;br /&gt;The protected-mode version of the Windows Registry Checker tool (Scanregw.exe) can create a backup of the system files and scan the registry for invalid entries. If invalid entries are detected, it refers to the real-mode version of the Windows Registry Checker tool (Scanreg.exe) for a resolution. &lt;br /&gt;&lt;br /&gt;You can configure Windows Registry Checker with a Scanreg.ini file. Settings that you can configure include: &lt;br /&gt;Enabling or disabling the tool&lt;br /&gt;The number of backups maintained (no more than five is recommended)&lt;br /&gt;The location of the backup folder&lt;br /&gt;Settings to add additional files to the backup set &lt;br /&gt;For additional information about the Scanreg.ini file, click the article number below to view the article in the Microsoft Knowledge Base: &lt;br /&gt;183603  (http://support.microsoft.com/kb/183603/EN-US/ ) How to Customize Registry Checker Tool Settings &lt;br /&gt;To start the Windows Registry Checker tool, click Start, click Run, type scanregw.exe in the Open box, and then click OK. &lt;br /&gt;&lt;br /&gt;NOTE: To use the Windows Registry Checker tool with the /restore parameter, you must run the tool from a command prompt running outside of Windows. When you do so, you can choose up to five registry backup files listed for you to restore. &lt;br /&gt;To Restore Individual Files&lt;br /&gt;To restore individual files, follow these steps: &lt;br /&gt;Click Start, point to Find, and then click Files Or Folders.&lt;br /&gt;In the Named box, type rb0*.cab, and then click Find Now.&lt;br /&gt;Double-click the cabinet file that contains the file that you want to restore.&lt;br /&gt;Right-click the file that you want to restore, click Extract, and then choose the folder where the new file is to be placed. Microsoft recommends that you place the file in your Temp folder.&lt;br /&gt;Restart your computer in MS-DOS mode (in Windows Millennium Edition, this requires that you restart with the Windows Millennium Edition Startup disk).&lt;br /&gt;Copy the file that you extracted to the appropriate folder. Note that registry .dat files are typically marked as hidden and read-only, so you need to use both the attrib and copy commands to replace the existing file with the newly extracted one.&lt;br /&gt;Known Issues for Windows Registry Checker&lt;br /&gt;If your registry contains an entry that references a file (such as a .vxd file) that no longer exists, it is not repaired by Windows Registry Checker. Such errors are not typically damaging, and you can manually remove the entry. For additional information about such errors, click the article number below to view the article in the Microsoft Knowledge Base: &lt;br /&gt;132008  (http://support.microsoft.com/kb/132008/EN-US/ ) Err Msg: Cannot Find a Device File That May Be Needed... &lt;br /&gt;The amount of conventional memory that is required by Windows Registry Checker is determined by the size of your registry. Windows Registry Checker may require 580 KB or more of free conventional memory to complete the repair process. If you encounter an "Out of Memory" error message, optimize your free conventional memory. For additional information about optimizing memory, click the article number below to view the article in the Microsoft Knowledge Base: &lt;br /&gt;134399  (http://support.microsoft.com/kb/134399/EN-US/ ) How to Increase Conventional Memory for MS-DOS-Based Programs &lt;br /&gt;NOTE: Extended memory is required for Windows Registry Checker to operate properly, so it does not run when you start your computer with the Safe Mode Command Prompt Only option. The exception to this is the scanreg /restore command, which is the only Scanreg function that can run without extended memory memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-696441305514547531?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/696441305514547531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/09/restore-firewall-task-manager-registry.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/696441305514547531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/696441305514547531'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/09/restore-firewall-task-manager-registry.html' title='restore firewall, task manager , registry'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/159/365903036_95a818c9aa_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-3216882052219772084</id><published>2009-08-31T06:31:00.000-07:00</published><updated>2009-08-31T06:32:04.107-07:00</updated><title type='text'>Fixing DLL Issues Related to Kernel32.dll</title><content type='html'>&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Fixing DLL Issues Related to Kernel32.dll&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Kernel is the nucleus of an operating system. It provides basic services such as performing memory management, handling I/O operations, and handling interrupts. In Windows operating systems, such as Windows 98, ME, and XP, kernel operations are handled by the Kernel32.dll, which is a Dynamic Link Library (DLL) file. Kernel32.dll is loaded at startup in the protected memory area of the system, thereby preventing other programs from taking over this memory space.&lt;br /&gt;&lt;img src="http://img222.imageshack.us/img222/9862/20071012125327wv5.jpg"&gt;&lt;br /&gt;Troubleshooting Kernel32.dll Errors&lt;br /&gt;&lt;br /&gt;Since Kernel32.dll manages several core activities of Windows operating systems, there are several reasons why Kernel32.dll errors may occur.&lt;br /&gt;&lt;br /&gt;Some of the common causes of Kernel32.dll errors are:&lt;br /&gt;&lt;br /&gt;Damaged swap file, file allocation, password list, and registry &lt;br /&gt;Low disk space &lt;br /&gt;Incorrect or corrupt Kernel32.dll file &lt;br /&gt;Improper power supply, faulty hard disk controller, and hot CPU &lt;br /&gt;Hardware malfunctioning, over clocking, ground bounce, and RF noise &lt;br /&gt;Improper BIOS Settings &lt;br /&gt;Damaged or incorrectly installed third party software &lt;br /&gt;Missing or corrupt Temp folder &lt;br /&gt;Damaged or missing Control Panel’s .cpp file &lt;br /&gt;Damaged JAVA machine, hardware drivers, .log files, and Msinfo32.exe file &lt;br /&gt;Incorrect entries in History folder and damaged, missing, or incorrect dlls &lt;br /&gt;Due to their crucial role in managing a number of tasks related to core functioning of an operating system, fixing dll problems related to kernel is very important. Here, we discuss steps to fix common Kernel32.dll problems.&lt;br /&gt;&lt;img src="http://www.blogscare.com/wp-content/uploads/2009/05/330ffa8f83innerr.png"&gt;&lt;br /&gt;Invalid Page Fault Error&lt;br /&gt;&lt;br /&gt;Invalid Page Fault (IPF) errors occur when one or more programs try to gain access to the protected memory space. In case only a single program is causing the problem, then fixing this program by reinstalling or uninstalling it can help you fix the problem. However, in case multiple programs are the cause of the error, then faulty hardware may be the most likely cause. To fix this, you might have to replace the device causing the problem.&lt;br /&gt;&lt;img src="http://kb2.adobe.com/cps/154/tn_15411/images/win98error_msg.gif"&gt;&lt;br /&gt;If IPF Kernl32.dll errors from different drivers such as Explorer, Msgsrv32, and Mprexe become a common affair, then a damaged password list might be the most likely cause of the problem.&lt;br /&gt;&lt;br /&gt;For fixing dll error caused from different drivers, you might have to recreate the password file. Before doing this, remember to write down all the passwords saved on your PC. Next, open the Windows folder and search for the *.pwl file. Next, delete all the .pwl files displayed and restart your Windows system.&lt;br /&gt;&lt;br /&gt;Damaged Memory Modules&lt;br /&gt;&lt;br /&gt;To find out if frequent kernel32.dll errors are caused by problems in the memory module, run msconfig.exe and add the line ‘DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:ON’ in config.sys and restart you PC. If your screen displays the message ‘HIMEM has detected unreliable memory at address xx:xxxxxx’ at startup, it indicates memory problems.&lt;br /&gt;&lt;img src="http://www.baskent.edu.tr/~tkaracay/ders/database/sql/oracle8/a58236/07_subsa.gif"&gt;&lt;br /&gt;Outdated or Damaged Drivers&lt;br /&gt;&lt;br /&gt;Device drivers, especially video drivers, are updated on a regular basis. Therefore, you must keep your device drivers updated to avoid receiving Kernel32.dll errors.&lt;br /&gt;&lt;br /&gt;Malware&lt;br /&gt;&lt;br /&gt;Many times, malware can lead to dll errors. One of the best methods for fixing dll errors that occur due to malware is to regularly run antivirus scans on your PC. In doing this, it also becomes important for you to keep your antivirus software files updated.&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3560/3363174176_f852b41212_o.png"&gt;&lt;br /&gt;Malware also tends to corrupt the system registry by adding invalid entries or removing important entries from it. Therefore, opting for a registry cleaner software and regularly running registry scans to keep the system registry healthy may also keep dll-related errors at bay.&lt;br /&gt;&lt;br /&gt;The Kernerl32.dll file is important for normal functioning of your Windows system. Frequent occurrence of Kernel32.dll errors can stall your system and render it useless. To avoid these problems from occurring on your PC, it is important for you to ensure that your PC’s hardware and devices are well maintained, and are in good working condition. Also, you must keep your PC updated by regularly installing driver, antivirus, and security updates. Regular antivirus and registry scans also help you in preventing dll errors.&lt;br /&gt;&lt;br /&gt;The Kernel32.dll file handles memory management, input/output operations, and interrupts. When you start Windows, Kernel32.dll is loaded into a protected memory space so that other programs do not take over that memory space. &lt;br /&gt;&lt;br /&gt;On occasion, you may receive an invalid page fault (IPF) error message. This error message occurs when a program tries to access the Kernel32.dll protected memory space. Occasionally, the error message is caused by one particular program, and other times the error message is provoked by multiple files and programs. &lt;br /&gt;&lt;br /&gt;If the problem results from running one program, the program needs to be replaced. If the problem occurs when you access multiple files and programs, the damage is likely caused by damaged hardware.&lt;br /&gt;&lt;br /&gt;You may want to clean boot the computer to help you identify the particular third-party memory-resident software. Note that programs that are not memory-resident can also cause IPF error messages.&lt;br /&gt;&lt;br /&gt;The following conditions can cause Kernel32.dll error messages:&lt;br /&gt;&lt;br /&gt;Damaged swap file &lt;br /&gt;File allocation damage &lt;br /&gt;Damaged password list &lt;br /&gt;Damaged or incorrect version of the Kernel32.dll file &lt;br /&gt;Damaged registry &lt;br /&gt;Hardware, hot CPU, over clocking, broken power supply, RF noise, ground bounce, or bad hard disk controller &lt;br /&gt;BIOS settings for Wait states, RAM timing, or other BIOS settings &lt;br /&gt;Third-party software that is damaged or incorrectly installed &lt;br /&gt;.dll files that are saved to the desktop &lt;br /&gt;&lt;IMG SRC="http://erealmedia.com/WP25/wp-content/uploads/2008/11/ntldrsolution1.gif"&gt;&lt;br /&gt;Non-existent or broken Temp folder  &lt;br /&gt;A control panel (.cpl) file is damaged &lt;br /&gt;Incorrect or damaged hardware driver &lt;br /&gt;Incorrectly installed printer drivers or HP Jetadmin drivers &lt;br /&gt;Damaged Java Machine &lt;br /&gt;&lt;IMG SRC="http://www.diy-computer-repair.com/image-files/db-xp-vista-3.jpg"&gt;&lt;br /&gt;Damaged .log files &lt;br /&gt;Damaged entries in the History folder &lt;br /&gt;Incompatible or damaged dynamic link library files &lt;br /&gt;Viruses &lt;br /&gt;Damaged or incorrect Msinfo32.exe file &lt;br /&gt;Low disk space &lt;br /&gt;More on the possible causes:&lt;br /&gt;&lt;br /&gt;Bad memory modules:  &lt;br /&gt;&lt;br /&gt;You can test your memory modules by inserting the command: DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:ON into your Config.sys file. You can use the System Configuration Utility:&lt;br /&gt;&lt;br /&gt;Select Start&gt;&gt; Run and type: msconfig [Enter] &lt;br /&gt;&lt;br /&gt;Next, select the Config.sys tab and add the HIMEM.SYS line (above) by pressing the New button.  &lt;br /&gt;&lt;br /&gt;Windows will tell you to reboot your computer. &lt;br /&gt;&lt;IMG SRC="http://blog.diyersitzone.net/images/fix_ntldr.JPG"&gt;&lt;br /&gt;Watch your screen for a message; "HIMEM has detected unreliable memory at address xx:xxxxxx" which will certainly indicate that there's a memory problem.  &lt;br /&gt;&lt;IMG SRC="http://www.blogcdn.com/www.massively.com/media/2007/12/goonswarmccg_action_boot_ini.gif"&gt;&lt;br /&gt;&lt;br /&gt;Note: Memory problems may not immediately surface from the result of this test. It may take many reboots or even a few days for the above message to appear. &lt;br /&gt;&lt;br /&gt;CPU, bus speed or multiplier overclocking.  &lt;br /&gt;&lt;br /&gt;Graphic acceleration set too high: &lt;br /&gt;Select Control Panel &gt; System, then select the Performance tab, click the Graphics button. Turn down Hardware acceleration by moving the slider a notch to the left, reboot, try again.  &lt;br /&gt;Bad or outdated drivers, especially video drivers: &lt;br /&gt;&lt;img src="http://www.thelohs.net/sue_blog/celog_corruption_hex.png"&gt;&lt;br /&gt;Check with your card manufacturer for an updated set of drivers. Video drivers are updated constantly, it pays to have the latest release, especially if you find yourself having problems with Internet Explorer.  &lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;What to do if you have Kernel32.dll IPF ("Invalid Page Fault") error? &lt;br /&gt;&lt;img src="http://docs.sun.com/source/819-3284-17/figures/819-3284-17Error-8.gif"&gt;This error occurs when an application tries to access kernel32.dll's protected memory space. It may be one particular program or application, or multiple files and applications. Most kernel32.dll errors are NOT caused by a corruption of the kernel32.dll module.&lt;br /&gt;&lt;img src="http://filedb.experts-exchange.com/incoming/2008/01_w05/1792/1.jpg"&gt;&lt;br /&gt;If the error seems to arise when activating a certain program, application or device, you should try uninstalling and re-installing that program, application or device.&lt;br /&gt;&lt;br /&gt;If you frequently receive Invalid Page Fault in Kernel32.dll Errors from different drivers (Explorer, Guide.exe, Msgsrv32, Commgr32, Mprexe and others), it is possible that a damaged password list file is the culprit. Try re-creating your password list file:  &lt;br /&gt;In Windows Explorer select your \Windows folder  &lt;br /&gt;&lt;br /&gt;Press F3. This will bring up the Find: All Files window  &lt;br /&gt;&lt;br /&gt;In the 'Named' box type: *.pwl  &lt;br /&gt;&lt;img src="http://herdingchaos.net/images/070625-221120.jpg"&gt;&lt;br /&gt;Click Find Now  &lt;br /&gt;&lt;br /&gt;When a list of found files is displayed, select Edit&gt; Select All&gt; Press Delete on your keyboard &lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_YFgpCPoV-8g/Rw9SiXo7fHI/AAAAAAAAAEA/q-TcmVmuayQ/s400/2003-bsod.jpg"&gt;&lt;br /&gt;Exit the Find window and restart Windows  &lt;br /&gt;&lt;IMG SRC="http://www.nothing2hide.net/blog/wp-content/uploads/2009/01/process-revealer.jpg"&gt;&lt;br /&gt;Note: This procedure will cause you to lose all of your saved passwords.  Be sure to write them down before deleting so that you can re-insert them as needed.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.blong.com/Conferences/DCon2000/Debugging/Image34.gif"&gt;&lt;br /&gt;computer recently suffered Zelot-inflicted monitor failure and the corruption of my System32 file.&lt;br /&gt;&lt;img src="http://carlnet.no-ip.org/system32-delete.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-3216882052219772084?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/3216882052219772084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/fixing-dll-issues-related-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3216882052219772084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3216882052219772084'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/fixing-dll-issues-related-to.html' title='Fixing DLL Issues Related to Kernel32.dll'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YFgpCPoV-8g/Rw9SiXo7fHI/AAAAAAAAAEA/q-TcmVmuayQ/s72-c/2003-bsod.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-1363822696667278329</id><published>2009-08-20T02:26:00.000-07:00</published><updated>2009-08-20T02:27:01.334-07:00</updated><title type='text'>Alert: JAVA SPY CODE USING PORT 6463</title><content type='html'>Alert: JAVA SPY CODE USING PORT 6463&lt;img src="http://www.instablogsimages.com/images/2009/08/20/memt_uD6zp_21985.jpg" alt="memt"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Scanner.jar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Scanner.jar is a simple client application which scans a server or an workstation for open ports from 1 - 65536.&lt;br /&gt;The operating system used: Solaris x86 and the Java IDE: Netbeans !&lt;br /&gt;&lt;br /&gt;Notice: The purpose of this exercise is pure educational, to learn about Java and networking. This application will run with any JDK 1.4.2_x version available from java.sun.com. It is working fine with the latest version, Java 5 too. However this package does not run with JDK 1.3 or previous versions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Method 1: Single threaded application&lt;br /&gt;&lt;br /&gt;Package: Scanner.jar&lt;br /&gt;Source: Main.java&lt;br /&gt;&lt;br /&gt;This is a single threaded application which will try to look for any open ports. &lt;br /&gt;The main logic behind this is explained below: the scanner will try to access&lt;br /&gt;the range 1 - 65536 looking for any open ports using the Socket() method &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            &lt;br /&gt;            InetAddress addr = InetAddress.getByName(host);&lt;br /&gt;            System.out.println("Searching for open ports between 1 - 65536");&lt;br /&gt;            System.out.println("Please wait...(CTRL-C to stop the process)");&lt;br /&gt;            &lt;br /&gt;            for (int i = 1; i &lt; 65536; i++) {&lt;br /&gt;                Socket s = null;&lt;br /&gt;                try {&lt;br /&gt;                    s = new Socket(addr,i);&lt;br /&gt;                    System.out.println("Port: " + i + " open on " + host );&lt;br /&gt;                    }&lt;br /&gt;                catch (IOException ex) {&lt;br /&gt;                &lt;br /&gt;                }       &lt;br /&gt;                finally {&lt;br /&gt;                    try {&lt;br /&gt;                        if (s != null) s.close();&lt;br /&gt;                    }&lt;br /&gt;                    catch (IOException ex) {}&lt;br /&gt;                }&lt;br /&gt;            &lt;br /&gt;            } //for&lt;br /&gt;        } //try&lt;br /&gt;        catch (UnknownHostException ex) {&lt;br /&gt;            System.err.println(ex);  &lt;br /&gt;        }&lt;br /&gt;                &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Some results:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ time java -client -jar Scanner.jar&lt;br /&gt;Searching for open ports between 1 - 65536&lt;br /&gt;Please wait...(CTRL-C to stop the process)&lt;br /&gt;Port: 21 open on localhost&lt;br /&gt;Port: 22 open on localhost&lt;br /&gt;Port: 23 open on localhost&lt;br /&gt;Port: 25 open on localhost&lt;br /&gt;Port: 79 open on localhost&lt;br /&gt;Port: 111 open on localhost&lt;br /&gt;Port: 513 open on localhost&lt;br /&gt;Port: 514 open on localhost&lt;br /&gt;Port: 515 open on localhost&lt;br /&gt;Port: 587 open on localhost&lt;br /&gt;Port: 631 open on localhost&lt;br /&gt;Port: 898 open on localhost&lt;br /&gt;Port: 4045 open on localhost&lt;br /&gt;Port: 4999 open on localhost&lt;br /&gt;Port: 5987 open on localhost&lt;br /&gt;Port: 5988 open on localhost&lt;br /&gt;Port: 6000 open on localhost&lt;br /&gt;Port: 7100 open on localhost&lt;br /&gt;Port: 9010 open on localhost&lt;br /&gt;Port: 32786 open on localhost&lt;br /&gt;Port: 32787 open on localhost&lt;br /&gt;Port: 32788 open on localhost&lt;br /&gt;Port: 32789 open on localhost&lt;br /&gt;Port: 32790 open on localhost&lt;br /&gt;Port: 32791 open on localhost&lt;br /&gt;Port: 32792 open on localhost&lt;br /&gt;Port: 32795 open on localhost&lt;br /&gt;Port: 32796 open on localhost&lt;br /&gt;Port: 33221 open on localhost&lt;br /&gt;Port: 36314 open on localhost&lt;br /&gt;Port: 36317 open on localhost&lt;br /&gt;Port: 36359 open on localhost&lt;br /&gt;Port: 36360 open on localhost&lt;br /&gt;Port: 36389 open on localhost&lt;br /&gt;Port: 36391 open on localhost&lt;br /&gt;Port: 36393 open on localhost&lt;br /&gt;Port: 36394 open on localhost&lt;br /&gt;Port: 36395 open on localhost&lt;br /&gt;Port: 36396 open on localhost&lt;br /&gt;Port: 36397 open on localhost&lt;br /&gt;Port: 36400 open on localhost&lt;br /&gt;Port: 36401 open on localhost&lt;br /&gt;Port: 36402 open on localhost&lt;br /&gt;Port: 36403 open on localhost&lt;br /&gt;Port: 36406 open on localhost&lt;br /&gt;Port: 36409 open on localhost&lt;br /&gt;Port: 36455 open on localhost&lt;br /&gt;Port: 36460 open on localhost&lt;br /&gt;Port: 58787 open on localhost&lt;br /&gt;&lt;br /&gt;real    1h32m7.01s&lt;br /&gt;user    0m8.28s&lt;br /&gt;sys     0m7.23s &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next the scanner will be implemented using threads to improve the performance, if any.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Method 2: An improved version: multi-threaded&lt;br /&gt;&lt;br /&gt;Package: Scanner2.jar&lt;br /&gt;Source: Main2.java&lt;br /&gt;&lt;br /&gt;One thing many network client applications, or most likely servers, are using is: threads. To see if we can improve the performance of our scanner we will introduce threads and as well to make the things a bit easier and more flexible the scanner will ask for hostname, startPort, endPort and the number of threads from user.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;stefan@nereid&gt;java -jar Scanner2.jar&lt;br /&gt;Usage: java -jar Scanner2.jar hostname startPort endPort noThreads&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Main2 {&lt;br /&gt;    public static PortScannerWorker t = null;&lt;br /&gt;    public static String host = "localhost";&lt;br /&gt;   &lt;br /&gt;    /** Creates a new instance of Main */&lt;br /&gt;    public Main2() {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * @param args the command line arguments&lt;br /&gt;     */&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        // TODO code application logic here&lt;br /&gt;        &lt;br /&gt;       ...&lt;br /&gt;        &lt;br /&gt;        long startTime = System.currentTimeMillis();&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;&lt;br /&gt;            System.out.println("Searching for open ports between 1 - 65536");&lt;br /&gt;            System.out.println("Please wait...(CTRL-C to stop the process)");&lt;br /&gt;            host = InetAddress.getByName(args[0]);&lt;br /&gt;&lt;br /&gt;            System.out.println("host: "+host+" threads: "+threads);&lt;br /&gt;&lt;br /&gt;            ports = new PortHandler(firstPort, lastPort);&lt;br /&gt;            for (int i = 0; i &lt; threads; i++){&lt;br /&gt;                t = new PortScannerWorker(("Worker"+i), ports);&lt;br /&gt;                t.start();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            while(t.isAlive()) Thread.sleep(30);&lt;br /&gt;        } //try&lt;br /&gt;        &lt;br /&gt;        catch (Exception ex) {&lt;br /&gt;            System.err.println("Error:" + ex);&lt;br /&gt;            ex.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        long endTime = System.currentTimeMillis();&lt;br /&gt;        System.out.println("Time spend for port scan:"  + (millisecondsToString(endTime - startTime)));        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public static String millisecondsToString(long time) {&lt;br /&gt;       // retunr the time as a String&lt;br /&gt;        &lt;br /&gt;    }  &lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class PortScannerWorker extends Thread {&lt;br /&gt;    PortHandler _ports = null;&lt;br /&gt;&lt;br /&gt;    public PortScannerWorker(String name, PortHandler ports)&lt;br /&gt;    {&lt;br /&gt;        super(name);&lt;br /&gt;        _ports = ports;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void run() {&lt;br /&gt;        Port port = null;&lt;br /&gt;        boolean quit = false;&lt;br /&gt;&lt;br /&gt;        while (!quit) {&lt;br /&gt;            port = null;&lt;br /&gt;            synchronized(_ports)&lt;br /&gt;            {&lt;br /&gt;                if (!_ports.hasMoreElements()) {&lt;br /&gt;                    quit = true;&lt;br /&gt;                    return;&lt;br /&gt;                }&lt;br /&gt;                port = (Port) _ports.nextElement();&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            if (null != port) port.scan(this.getName());&lt;br /&gt;        }&lt;br /&gt;    }//run&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class PortHandler implements Enumeration&lt;br /&gt;{&lt;br /&gt;    InetAddress host = null;&lt;br /&gt;    int _firstPort = 0;&lt;br /&gt;    int _lastPort = 0;&lt;br /&gt;    int _nextPort = 0;&lt;br /&gt;&lt;br /&gt;    public PortHandler(int first, int last){&lt;br /&gt;        _firstPort = first;&lt;br /&gt;        _nextPort = first;&lt;br /&gt;        _lastPort = last;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean hasMoreElements(){&lt;br /&gt;        return (_nextPort &lt;= _lastPort);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object nextElement(){&lt;br /&gt;        return new Port(_nextPort++);&lt;br /&gt;    }&lt;br /&gt;}//class PortHandler&lt;br /&gt;&lt;br /&gt;class Port&lt;br /&gt;{&lt;br /&gt;    int _port = -1;&lt;br /&gt;&lt;br /&gt;    Port(int port){&lt;br /&gt;        _port = port;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void scan(String name) {&lt;br /&gt;        try {&lt;br /&gt;            Socket s = new Socket(Main2.host, _port);&lt;br /&gt;            System.out.println("Port open " + _port + " discovered by thread " &lt;br /&gt;                + name + " at " +&lt;br /&gt;                new GregorianCalendar().get(Calendar.HOUR_OF_DAY) + ":" +&lt;br /&gt;                new GregorianCalendar().get(Calendar.MINUTE) + ":" +&lt;br /&gt;                new GregorianCalendar().get(Calendar.SECOND)); &lt;br /&gt;                &lt;br /&gt;            s.close();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        catch (IOException e) {&lt;br /&gt;        }&lt;br /&gt;    }//scan&lt;br /&gt;&lt;br /&gt;    public static String millisecondsToString(long time) {&lt;br /&gt;        int seconds = (int) ((time / 1000) % 60);&lt;br /&gt;        String secondsStr = (seconds &lt; 10 ? "0" : "") + seconds;&lt;br /&gt;        return new String(secondsStr);&lt;br /&gt;    }&lt;br /&gt;}//class Port&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And at the end let's check some results: using the scanner with 500 threads.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP&lt;br /&gt;   727 stefan     75M   47M sleep   59    0   0:00:59 2.4% thunderbird-bin/11&lt;br /&gt;  1160 stefan    102M   30M sleep   59    0   0:00:07 1.8% java/508&lt;br /&gt;  1095 stefan     64M   42M sleep   47    4   0:03:09 1.1% mozilla-bin/3&lt;br /&gt;   672 stefan     25M   13M sleep   59    0   0:00:24 0.8% metacity/1&lt;br /&gt;   729 stefan     73M   46M sleep   59    0   0:00:56 0.7% gnome-terminal/2&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The scanner is represented by the 1160 PID number having 508 threads (8 internal JVM threads+ 500 our threads). The real size segment of the process got bigger a bit since each thread has its own stack occupying space. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;stefan@nereid&gt;time java -jar Scanner2.jar localhost 1 65536 500&lt;br /&gt;Searching for open ports between 1 - 65535&lt;br /&gt;Please wait...(CTRL-C to stop the process)&lt;br /&gt;host: localhost/127.0.0.1 threads: 500&lt;br /&gt;Port open 21 discovered by thread Worker3 at 14:31:4&lt;br /&gt;Port open 25 discovered by thread Worker4 at 14:31:4&lt;br /&gt;Port open 22 discovered by thread Worker2 at 14:31:4&lt;br /&gt;Port open 111 discovered by thread Worker36 at 14:31:4&lt;br /&gt;Port open 515 discovered by thread Worker171 at 14:31:4&lt;br /&gt;Port open 587 discovered by thread Worker5 at 14:31:11&lt;br /&gt;Port open 631 discovered by thread Worker1 at 14:31:14&lt;br /&gt;Port open 898 discovered by thread Worker6 at 14:31:34&lt;br /&gt;Port open 4045 discovered by thread Worker17 at 14:35:23&lt;br /&gt;Port open 4999 discovered by thread Worker14 at 14:36:6&lt;br /&gt;Port open 5987 discovered by thread Worker0 at 14:36:47&lt;br /&gt;Port open 5988 discovered by thread Worker0 at 14:36:47&lt;br /&gt;Port open 6000 discovered by thread Worker76 at 14:36:48&lt;br /&gt;Port open 7100 discovered by thread Worker149 at 14:37:33&lt;br /&gt;Port open 9010 discovered by thread Worker118 at 14:38:31&lt;br /&gt;Port open 32775 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32776 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32777 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32778 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32779 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32780 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32781 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32784 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32785 discovered by thread Worker85 at 14:50:58&lt;br /&gt;Port open 32789 discovered by thread Worker84 at 14:50:58&lt;br /&gt;Port open 32786 discovered by thread Worker83 at 14:50:58&lt;br /&gt;Port open 32831 discovered by thread Worker379 at 14:50:59&lt;br /&gt;Port open 32832 discovered by thread Worker379 at 14:50:59&lt;br /&gt;Port open 32865 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32866 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32868 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32869 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32870 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32871 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32872 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32875 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32877 discovered by thread Worker172 at 14:51:1&lt;br /&gt;Port open 32879 discovered by thread Worker172 at 14:51:1&lt;br /&gt;Port open 32882 discovered by thread Worker172 at 14:51:1&lt;br /&gt;Port open 32883 discovered by thread Worker172 at 14:51:1&lt;br /&gt;Port open 32885 discovered by thread Worker172 at 14:51:1&lt;br /&gt;Port open 32876 discovered by thread Worker160 at 14:51:1&lt;br /&gt;Port open 32918 discovered by thread Worker85 at 14:51:2&lt;br /&gt;Port open 32923 discovered by thread Worker85 at 14:51:2&lt;br /&gt;Port open 32947 discovered by thread Worker85 at 14:51:2&lt;br /&gt;Port open 34119 discovered by thread Worker108 at 14:51:34&lt;br /&gt;Port open 36208 discovered by thread Worker379 at 14:52:31&lt;br /&gt;Time spend for port scan:00:35:21.728&lt;br /&gt;&lt;br /&gt;real    36m28.94s&lt;br /&gt;user    0m12.02s&lt;br /&gt;sys     0m7.27s&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, the total execution time, using 500 threads, has been 35minutes compared with 1h and 30minutes as previous in Method 1. However the time of 30minutes is far too long. In the next section we will understand why.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Conclusions:&lt;br /&gt;&lt;br /&gt;Two scanners applications were presented: a single threaded and a multi-threading one. The multi-threading client was presented to show how can you use threads, sockets under Java.&lt;br /&gt;&lt;br /&gt;Another open issue was: the time of the scanning process. Scanning for open ports under Solaris x86 took a very, very long time. Why ? &lt;br /&gt;&lt;br /&gt;Solaris (x86 or SPARC) defends itself against a DoS - the SYN attack. By default Solaris has this protection ON (hmm ... very nice :)) comparing with RedHat 9 based on kernel 2.4.x where the scanning went in couple of seconds without to have this protection. To disable this protection as root try:&lt;br /&gt;# ndd -set /dev/tcp tcp_rst_sent_rate_enabled 0&lt;br /&gt;&lt;br /&gt;and you can put it on back:&lt;br /&gt;&lt;br /&gt;# ndd -set /dev/tcp tcp_rst_sent_rate_enabled 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To demonstrate the results after changing the RST parameter we started again Scanner2 to look for all open ports. The CPU consumption went very high and the total time was reduced to: 18seconds ! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;stefan@nereid&gt;time java -jar Scanner2.jar localhost 1 65535 500&lt;br /&gt;Searching for open ports between 1 - 65536&lt;br /&gt;Please wait...(CTRL-C to stop the process)&lt;br /&gt;host: localhost/127.0.0.1 threads: 500&lt;br /&gt;Port open 21 discovered by thread Worker0 at 15:15:1&lt;br /&gt;Port open 22 discovered by thread Worker0 at 15:15:1&lt;br /&gt;Port open 25 discovered by thread Worker0 at 15:15:1&lt;br /&gt;Port open 111 discovered by thread Worker0 at 15:15:1&lt;br /&gt;Port open 515 discovered by thread Worker236 at 15:15:2&lt;br /&gt;Port open 587 discovered by thread Worker236 at 15:15:2&lt;br /&gt;Port open 631 discovered by thread Worker236 at 15:15:2&lt;br /&gt;Port open 898 discovered by thread Worker208 at 15:15:2&lt;br /&gt;Port open 4045 discovered by thread Worker212 at 15:15:3&lt;br /&gt;Port open 4999 discovered by thread Worker247 at 15:15:3&lt;br /&gt;Port open 5987 discovered by thread Worker248 at 15:15:3&lt;br /&gt;Port open 5988 discovered by thread Worker248 at 15:15:3&lt;br /&gt;Port open 7100 discovered by thread Worker385 at 15:15:4&lt;br /&gt;Port open 9010 discovered by thread Worker440 at 15:15:4&lt;br /&gt;Port open 6000 discovered by thread Worker248 at 15:15:4&lt;br /&gt;Port open 32775 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32776 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32777 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32778 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32779 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32780 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32781 discovered by thread Worker245 at 15:15:9&lt;br /&gt;Port open 32784 discovered by thread Worker456 at 15:15:9&lt;br /&gt;Port open 32785 discovered by thread Worker456 at 15:15:9&lt;br /&gt;Port open 32789 discovered by thread Worker315 at 15:15:9&lt;br /&gt;Port open 32786 discovered by thread Worker261 at 15:15:9&lt;br /&gt;Port open 32831 discovered by thread Worker297 at 15:15:9&lt;br /&gt;Port open 32832 discovered by thread Worker297 at 15:15:9&lt;br /&gt;Port open 32865 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32866 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32868 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32869 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32870 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32871 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32872 discovered by thread Worker462 at 15:15:9&lt;br /&gt;Port open 32875 discovered by thread Worker494 at 15:15:9&lt;br /&gt;Port open 32876 discovered by thread Worker494 at 15:15:9&lt;br /&gt;Port open 32877 discovered by thread Worker494 at 15:15:9&lt;br /&gt;Port open 32879 discovered by thread Worker252 at 15:15:9&lt;br /&gt;Port open 32882 discovered by thread Worker280 at 15:15:9&lt;br /&gt;Port open 32883 discovered by thread Worker280 at 15:15:9&lt;br /&gt;Port open 32885 discovered by thread Worker281 at 15:15:9&lt;br /&gt;Port open 32918 discovered by thread Worker32 at 15:15:9&lt;br /&gt;Port open 32923 discovered by thread Worker66 at 15:15:9&lt;br /&gt;Port open 34119 discovered by thread Worker158 at 15:15:10&lt;br /&gt;Port open 36208 discovered by thread Worker486 at 15:15:10&lt;br /&gt;Port open 63312 discovered by thread Worker303 at 15:15:16&lt;br /&gt;Time spend for port scan:00:00:15.544&lt;br /&gt;&lt;br /&gt;real    0m15.97s&lt;br /&gt;user    0m8.48s&lt;br /&gt;sys     0m5.67s&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Trying as well to decrease the number of threads, by reducing the CPU and memory consumption, returned similar results, in fact got better results than the multi-threading one:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;stefan@nereid&gt;time java -jar Scanner2.jar localhost 1 65535 1&lt;br /&gt;Searching for open ports between 1 - 65536&lt;br /&gt;Please wait...(CTRL-C to stop the process)&lt;br /&gt;host: localhost/127.0.0.1 threads: 1&lt;br /&gt;Port open 21 discovered by thread Worker0 at 15:17:33&lt;br /&gt;Port open 22 discovered by thread Worker0 at 15:17:33&lt;br /&gt;Port open 25 discovered by thread Worker0 at 15:17:33&lt;br /&gt;Port open 111 discovered by thread Worker0 at 15:17:34&lt;br /&gt;Port open 515 discovered by thread Worker0 at 15:17:34&lt;br /&gt;Port open 587 discovered by thread Worker0 at 15:17:34&lt;br /&gt;Port open 631 discovered by thread Worker0 at 15:17:34&lt;br /&gt;Port open 898 discovered by thread Worker0 at 15:17:34&lt;br /&gt;Port open 4045 discovered by thread Worker0 at 15:17:35&lt;br /&gt;Port open 4999 discovered by thread Worker0 at 15:17:35&lt;br /&gt;Port open 5987 discovered by thread Worker0 at 15:17:36&lt;br /&gt;Port open 5988 discovered by thread Worker0 at 15:17:36&lt;br /&gt;Port open 6000 discovered by thread Worker0 at 15:17:36&lt;br /&gt;Port open 7100 discovered by thread Worker0 at 15:17:36&lt;br /&gt;Port open 9010 discovered by thread Worker0 at 15:17:36&lt;br /&gt;Port open 32775 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32776 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32777 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32778 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32779 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32780 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32781 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32784 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32785 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32786 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32789 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32831 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32832 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32865 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32866 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32868 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32869 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32870 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32871 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32872 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32875 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32876 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32877 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32879 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32882 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32883 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32885 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32918 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 32923 discovered by thread Worker0 at 15:17:41&lt;br /&gt;Port open 34119 discovered by thread Worker0 at 15:17:42&lt;br /&gt;Port open 36208 discovered by thread Worker0 at 15:17:42&lt;br /&gt;Port open 63312 discovered by thread Worker0 at 15:17:47&lt;br /&gt;Time spend for port scan:00:00:14.482&lt;br /&gt;&lt;br /&gt;real    0m14.81s&lt;br /&gt;user    0m7.21s&lt;br /&gt;sys     0m5.33s&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Disabling the RST protection makes the scan procedure very fast. In fact with the protection OFF and with a high number of threads Scanner2 performs worse than using only one thread !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;REMEMBER: By default the protection is ON meaning your server is protected against such of DoS attack and when you are switching that OFF you are vulnerable to a DoS attack.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-1363822696667278329?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/1363822696667278329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/alert-java-spy-code-using-port-6463.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1363822696667278329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/1363822696667278329'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/alert-java-spy-code-using-port-6463.html' title='Alert: JAVA SPY CODE USING PORT 6463'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-5586663032175344056</id><published>2009-08-20T01:15:00.000-07:00</published><updated>2009-08-20T01:31:51.384-07:00</updated><title type='text'>SPY APPLICATION &amp; SPY HARDWARE</title><content type='html'>&lt;strong&gt;007 Spy Software&lt;/strong&gt; - Secretly record user's activity and send log emails&lt;br /&gt;We are awarding the Editor's Choice of local computer monitoring to 007 Spy Software, for being so full-featured, easy to use and reasonably priced. It allows you to secretly monitor and record user's activities on a computer, such as web sites visited, windows opened, every key pressed (including login/password of ICQ, MSN, AOL, AIM, and Yahoo Messenger or Webmail), application executed, Internet chats, Email sent, and even take snapshots of the entire Windows desktop at set intervals.&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.e-spy-software.com/images/007scrshot/settings.jpg" height=500weight=500&gt;Key Features:&lt;br /&gt;Capability of overriding "Anti-Spy" programs such as "Ad-aware" &lt;br /&gt;View logs remotely with your favourite browsers from anywhere at anytime &lt;br /&gt;Full version is completely undetectable to most anti-spy programs &lt;br /&gt;Start &amp; stop time scheduling &lt;br /&gt;Support user filter to spy on specific users &lt;br /&gt;View all user's Logs with a Single Login &lt;br /&gt;Capture screen at the highest speed &lt;br /&gt;Automatically startup in active and stealth Mode &lt;br /&gt;Suspend on system idle &lt;br /&gt;Powerful keylogger engine to capture all passwords &lt;br /&gt;Built-in slide show for screen snapshot pictures &lt;br /&gt;Export log report in HTML format &lt;br /&gt;Automatically clean outdated logs on disk quota &lt;br /&gt;Password protection &lt;br /&gt;Execute with a simple command in stealth mode &lt;br /&gt;Extremely self-explanatory interface &lt;br /&gt;Compatible with Windows XP/2000/Me/98/95/NT4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;Logging Features&lt;br /&gt;Keystroke Monitoring&lt;br /&gt;007 Spy have a powerful keylogger engine to record all keystrokes typed in any application window, such as user name, password, e-mail, chat, instant message (MSN/AOL/ICQ/AIM ), etc. The records are time stamped and categorized by the window title they belong to, so you can tell when and what documents were being typed. &lt;br /&gt;Websites Activity Logging&lt;br /&gt;The amazing spy software even record all websites URL visited in Internet Explorer (Netscape Navigator and Opera will be supported in Pro Edition of 007 Spy Software). 007 Spy Software will log the website URL, the website title, and the time the website was visited! You can click on the link in the Log Viewer to launch the visited page in your browser immediately! &lt;br /&gt;&lt;br /&gt;Application Activity Logging&lt;br /&gt;007 Spy Software can record all applications' window activity taken place on your computer! It will log the window title, the opening and closing time of the window, and the current user name. By this you can find out what movies/games were played, what files were modified, what pictures were displayed, and so on. &lt;br /&gt;Screen Shot Capturing&lt;br /&gt;NOT like other spy products, 007 Spy Software can take picture of the Windows Desktop just like a automatic surveillance camera! It will capture images at few SECONDS instead of minutes in other spy programs. You have the option of taking pictures of the entire screen or just of active window, and saving the pictures in high quality or low quality JPEG format. 007 Spy Software will also log the active window name and the time stamp when the screen shot was taken. When you click the record in log viewer, 007 Spy Software will launch the selected screen picture in your default image viewer. &lt;br /&gt;Disk Activity Logging &lt;br /&gt;This powerful software spy on all file/folders change made by users within Windows Explorer, such as create file/folder, delete file/folder, rename and move file/folder, etc. These activities are logged by path and time stamp of first access. &lt;br /&gt;&lt;img src="http://www.e-spy-software.com/images/007scrshot/advopt.jpg" height=500 weight=500&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Security Features &lt;br /&gt;Password Protection&lt;br /&gt;007 Spy Software is the most securely spy program since it is password protected to prevent others from starting or stopping the monitoring process, as well as changing 007 Spy Software configuration settings! &lt;br /&gt;Stealth/Skilled Mode&lt;br /&gt;007 Spy can remove its Desktop Icon, Start Menu Group, and all its help files by just single click! Also it will never appear in Add/Remove Programs Menu or Task Manager.&lt;br /&gt;&lt;br /&gt;Windows Startup&lt;br /&gt;007 Spy Software can load automatically and secretly when Windows boots up.&lt;br /&gt;&lt;br /&gt;Automatic Active Startup&lt;br /&gt;Configure the powerful spy program to start in "Active" monitoring mode when it is started, then 007 Spy Software will record everything as soon as it run!&lt;br /&gt;&lt;br /&gt;Automatically Hide Itself&lt;br /&gt;The smart spy software can be configured to start in "Stealth" mode when it is started, so it will NOT appear in Windows Task Bar, System Tray, and Task Manager. &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Advanced Features&lt;br /&gt;Remote Log Viewer&lt;br /&gt;The powerful spy program is able to deliver logs to our remote online server at set intervals specified by you, then you can view logs with your browser through the Internet from anywhere! It's really much more convenient and simple to work than all other spy products on the Internet! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Log Delivery via FTP&lt;br /&gt;The screen spy pictures may exceed several GBs (Giga byte) in total size, so it's really impossible to deliver them to your email box, and it will also make 007 very easy to be detected by firewall or anti-virus programs. The good news is we have built-in FTP module which allows 007 to transfer all screenshot pictures to your server automatically! &lt;br /&gt;Time Scheduling&lt;br /&gt;The smart spy program can be configured to start and stop at the set time specified by owner. This feature enables user to start monitoring at a reasonable time and avoid viewing too much useless log records. &lt;br /&gt;User Filter &lt;br /&gt;007 Spy Software can be configured to monitor a set group of users on the computer, for example, you can specify the program to monitor only user "Colin" and "Cathy", but stop monitoring when the user "Jason" login. Or, you can monitor all users EXCEPT the account "Administrator", etc. &lt;br /&gt;Friendly Interface&lt;br /&gt;007 Spy Software is also the most easy to use spy program. It provides a much more easy-to-use graphical user interface than any other spy program, which will allow you to familiarize yourself with the software in no time &lt;br /&gt;Idle Detector&lt;br /&gt;The smart spy program now can automatically halt screen shot when system is idle. With this detector, 007 Spy Software will minimize system resource usage and avoid capturing a large numbers of duplicate screenshots. &lt;br /&gt;HTML Report&lt;br /&gt;Like all other spy programs, 007 Spy Software allows you to export log records to a HTML file, so you can conveniently review them in a full-window browser such as Microsoft Internet Explorer. Especially, the exported screenshot log file contains a thumbnail of each picture captured, so you can locate a screenshot picture as soon as possible. &lt;br /&gt;Sort Log Records&lt;br /&gt;007 Spy Software allows you to sort the list of records in Log Viewer window. Most of other spy program do not allow you to do this. You can sort all records by User, Time, Action (Window) Name, and Content, etc. Records can be sorted by alphabetical order or reverse order. &lt;br /&gt;Powerful Search Engine&lt;br /&gt;The powerful software spy also allows you to search keywords in log records. You can find out the item you are interested in as soon as you click the "Search" button! &lt;br /&gt;Automatic Log Clearing&lt;br /&gt;007 Spy Software can automatically clear the most outdated logs when the log files exceed the size you specified. This will prevent 007 Spy Software from using too much of the disk space. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.e-spy-software.com/images/007scrshot/keylog.jpg" height=500 weight=500&gt;&lt;br /&gt;HD-Spy - The most simple way to record keystrokes under Windows/Linux/Unix&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; HD-Spy is a very compact physical electronic device to secretly record keystrokes of a computer, regardless of the operating system! It will work fine under Windows, Linux and Unix! NO keylogger software installation needed to capture keyboard activity now! All you need to do is just plugging it between the PS/2 keyboard and your computer as the picture left shows, that's all! It will NEVER been disabled by ANY anti-virus or anti-spyware programs! Hardware-Keylogger can store up to 64,000 keystrokes which is equal to about one week's worth of data! &lt;br /&gt;&lt;br /&gt;All anti-virus and spyware-scanning programs will NOT be able to detect Hardware Spy &lt;br /&gt;&lt;img src="http://www.e-spy-software.com/images/spy_hardwar.gif" height=500 weight=500&gt;&lt;br /&gt;System Requirements &lt;br /&gt;Windows 98, Me, NT4, 2000, XP or Vista &lt;br /&gt;Pentium Class PC (133mhz or higher) &lt;br /&gt;3MB Hard disk space for program files &lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-5586663032175344056?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/5586663032175344056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/spy-application-spy-hardware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5586663032175344056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/5586663032175344056'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/08/spy-application-spy-hardware.html' title='SPY APPLICATION &amp; SPY HARDWARE'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-3716066557506214787</id><published>2009-07-19T22:47:00.000-07:00</published><updated>2009-07-19T23:11:38.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SYMBANION'/><category scheme='http://www.blogger.com/atom/ns#' term='CLOSE LOOK AT'/><category scheme='http://www.blogger.com/atom/ns#' term='Check Scams'/><category scheme='http://www.blogger.com/atom/ns#' term='Airfare'/><category scheme='http://www.blogger.com/atom/ns#' term='TROJAN AGE ON A'/><category scheme='http://www.blogger.com/atom/ns#' term='IEEE Workshops on Wireless LAN'/><title type='text'>TROJAN AGE ON A CLOSE LOOK AT SYMBANION</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQKMy86-_I/AAAAAAAAB_A/i7zzScdPVdA/s1600-h/IMG1062A.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQKMy86-_I/AAAAAAAAB_A/i7zzScdPVdA/s320/IMG1062A.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360420671429737458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; ! &lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJEYH0fNI/AAAAAAAAB-I/JPdNHooz6Ms/s1600-h/CommWarrior_C03.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJEYH0fNI/AAAAAAAAB-I/JPdNHooz6Ms/s320/CommWarrior_C03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360419427277110482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQIXGGq-iI/AAAAAAAAB94/SeszF4Wm7AM/s320/CommWarrior_C01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360418649346341410" /&gt; &lt;script&gt; alert(" Don't Worry! It's I- ALOKRAJ"); &lt;/script&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQGdbQ5CkI/AAAAAAAAB9w/wzRuancbbGA/s1600-h/136542_install.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 177px; height: 207px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQGdbQ5CkI/AAAAAAAAB9w/wzRuancbbGA/s320/136542_install.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360416559082310210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQGVGAoljI/AAAAAAAAB9o/Z3diHFmasbI/s1600-h/136542_BTinstall.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 177px; height: 207px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQGVGAoljI/AAAAAAAAB9o/Z3diHFmasbI/s320/136542_BTinstall.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360416415938025010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQGKaAYjKI/AAAAAAAAB9g/uRRPIuZOjSU/s1600-h/136542_BTinstall.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 177px; height: 207px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQGKaAYjKI/AAAAAAAAB9g/uRRPIuZOjSU/s320/136542_BTinstall.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360416232327122082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;SymbOS/Commwarrior.C &lt;/blockquote&gt;&lt;strong&gt;Trojan SubType PDA Device Discovery Date 10/13/2005 Length Minimum DAT 4605 (10/14/2005) Updated DAT 4605 (10/14/2005) Minimum Engine N/A Description Added 10/14/2005 Description Modified 10/17/2005 2:02 PM (PT) Type Type of threat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SubType Additional type information.&lt;br /&gt;Discovery Date Date that AVERT discovered this threat.&lt;br /&gt;Length File size, in bytes, of the threat.&lt;br /&gt;Minimum DAT McAfee DAT files contain detection and repair information for threats. The Minimum DAT field specifies the lowest/oldest DAT version that is capable of detecting the first incarnation of a threat, and the release date. The highest/newest DAT version should always be used for the most complete protection and are available on the Anti-Virus Updates page.&lt;br /&gt;&lt;br /&gt;Each description displays the minimum, fully tested, DAT version that includes regular detection for a particular threat. These fully tested DATs are released on a daily basis. If necessary, they are also released when a Medium, Medium On Watch, or High risk threat is discovered. An EXTRA.DAT will also be posted for these more prevalent threats, if necessary.&lt;br /&gt;&lt;br /&gt;For each description listed, detection is always available. In the event that the DAT version specified is not yet available, an EXTRA.DAT file may be downloaded via the McAfee AVERT Extra.dat Request Page. Alternatively, minimally tested HOURLY BETA DAT files are available for downloading.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/SmQKE7rQUOI/AAAAAAAAB-4/7gW0Pb03rBA/s1600-h/IMG1061A.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/SmQKE7rQUOI/AAAAAAAAB-4/7gW0Pb03rBA/s320/IMG1061A.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360420536332603618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Updated DAT McAfee DAT files are constantly being updated to enhance detection capabilities. The Updated DAT field specifies the released DAT version that contains the most up to date detection.&lt;br /&gt;Minimum Engine The scan engine uses the DAT files to detect threats. The Minimum Engine field specifies the lowest/oldest engine version that is capable of detecting this threat. The highest/newest engine version should always be used for the most complete protection and are available on the Anti-Virus Updates page.&lt;br /&gt;Description Added Date/time this description was published using Pacific Time.&lt;br /&gt;Description Modified Date/time this description was last modified using Pacific Time.&lt;br /&gt;Risk Assessment&lt;br /&gt;&lt;br /&gt;Corporate User Low &lt;br /&gt;Home User Low Tab Navigation&lt;/strong&gt;Overview -&lt;br /&gt;&lt;br /&gt;This is a trojan detection. Unlike viruses, trojans do not self-replicate. They are spread manually, often under the premise that they are beneficial or wanted. The most common installation methods involve system or security exploitation, and unsuspecting users manually executing unknown programs. Distribution channels include email, malicious or hacked web pages, Internet Relay Chat (IRC), peer-to-peer networks, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CharacteristicsCharacteristics -&lt;br /&gt;&lt;br /&gt;SymbOS/Commwarrior.C is a new variant of the SymbOS/Commwarrior.A worm.  It is an enhanced version of Commwarrior.A&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The most important enhancements Commwarrior.C possesses over Commwarrior.A is that Commwarrior.C possesses a self-repairing and self-protection scheme.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQIelPUVOI/AAAAAAAAB-A/hlRw7vRFguU/s1600-h/CommWarrior_C02.jpg"&gt;&lt;br /&gt;SymptomsSymptoms - &lt;br /&gt;&lt;br /&gt;Rapid battery drain Propagates via MMS to addresses in the user address book Propagates to nearby Bluetooth devices SymbOS/Commwarrior.C is distributed in a SIS file named “SymCommander_1_06.sis ”. This malware also travels via Bluetooth (referred to as “Network form” , hereafter) in a randomly named SIS file. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When distributed in the original SIS file , SymbOS/Commwarrior.C is set to be run upon install.  The SIS file also installs a pirated copy of a 3rd party file manager.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When distributed in its network form, SymbOS/Commwarrior.C is also set to be run upon install.  It claims to be a program entitled “CWOutcast ”.&lt;br /&gt;&lt;br /&gt;Upon install, SymbOS/Commwarrior.C makes copies of itself and its SIS file to C:\System\Bootdata\lib and, if a memory card is installed, to E:\System\Bootdata\lib. It also copies its boot-hook ( cworec.mdl ) to C:\system\recogs and E:\system\recogs . &lt;br /&gt;&lt;br /&gt;SymbOS/Commwarrior.C has a built in self-protection scheme: &lt;br /&gt;&lt;br /&gt;If a boot hook is deleted, it will be replaced by the running worm If SymbOS/Commwarrior.C is deleted, its boot hook will replace the files If the cached copies of the malware are deleted, the device will reboot and then the MDL will replace the files. Its process is protected &lt;br /&gt;&lt;br /&gt;Propagation via MMS has not been confirmed at this time. &lt;br /&gt;&lt;br /&gt;SymbOS/Commwarrior.C contains slightly different text from Commwarrior.A: &lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQJKMAkJcI/AAAAAAAAB-Q/RVg-wZl6jSM/s1600-h/CommWarrior_C04.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQJKMAkJcI/AAAAAAAAB-Q/RVg-wZl6jSM/s320/CommWarrior_C04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360419527104669122" /&gt;&lt;/a&gt;&lt;br /&gt;CommWarrior Outcast: The dark side of Symbian Force.&lt;br /&gt;CommWarrior v2.0-PRO. Copyright (c) 2005 by e10d0r&lt;br /&gt;CommWarrior is freeware product. You may freely distribute it&lt;br /&gt;in it's original unmodified form.&lt;br /&gt;With best regards from Russia&lt;br /&gt;OTMOP03KAM HET! &lt;br /&gt;Method of InfectionMethod of Infection - &lt;br /&gt;&lt;br /&gt;This malware requires that the user intentionally install it upon the device.  As always, users should never install unknown or un-trusted software.  This is especially true for illegal software, such as cracked applications—they are a favorite vector for malware infection.&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQIelPUVOI/AAAAAAAAB-A/hlRw7vRFguU/s320/CommWarrior_C02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360418777963189474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQIXGGq-iI/AAAAAAAAB94/SeszF4Wm7AM/s1600-h/CommWarrior_C01.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Removal - Removal - &lt;br /&gt;-&lt;br /&gt;&lt;br /&gt;VariantsVariants - &lt;br /&gt;N/A&lt;br /&gt;This virus arrives on your phone as a sis file attached to a Bluetooth or MMS message, it may also arrive disguised as an installer for SymCommander or on an infected MMC card. Once installed on your phone, it sends itself to all Bluetooth devices in range, sends itself via MMS to all your contacts and spreads via MMC.&lt;br /&gt;SymbOS/CommWarrior.C is a Symbian worm that propagates via Bluetooth networks, Multimedia Messaging Services (MMS), and Multimedia cards (MMC). &lt;br /&gt;&lt;br /&gt;Arrival and Installation&lt;br /&gt;&lt;br /&gt;CommWarrior.C arrives disguised as a trojanized installer for SymCommander, a file and disk management tool for Symbian.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It appears in the phone’s menu with the SymCommander icon:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJgOiJgzI/AAAAAAAAB-Y/vh44Vd81zyA/s1600-h/CommWarrior_C05.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJgOiJgzI/AAAAAAAAB-Y/vh44Vd81zyA/s320/CommWarrior_C05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360419905739522866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once installed, it drops the following components:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;!:\system\apps\SymCommander\cwoutcast.exe&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.rsc&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.aif&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.app&lt;br /&gt;c:\system\apps\SymCommander\SymCommander &lt;br /&gt;* ! siginifies a user-defined drive (C or E) &lt;br /&gt;&lt;br /&gt;cwoutcast.exe is immediately executed and it in turn drops the following files:&lt;br /&gt; &lt;br /&gt;!:\system\Bootdata\lib\cwoutcast.exe&lt;br /&gt;!:\system\recogs\cwrec.mdl &lt;br /&gt;It also creates a randomly named SIS file which is a copy of SymbOS/CommWarrior.C. This SIS file is also dropped in the !:\system\apps\SymCommander\ and !:\system\Bootdata\lib\ folders and is used as the attachment during propagation. &lt;br /&gt;&lt;br /&gt;When CommWarrior.C is active, the infected phone gets automatically rebooted at set intervals. &lt;br /&gt;&lt;br /&gt;Propagation&lt;br /&gt;Once installed and running, CommWarrior.C searches for available Bluetooth devices.&lt;br /&gt;When it finds a target, it sends a copy of its SIS installer via Bluetooth:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJomW3nqI/AAAAAAAAB-g/qGpJiEqrDV4/s1600-h/CommWarrior_C06.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQJomW3nqI/AAAAAAAAB-g/qGpJiEqrDV4/s320/CommWarrior_C06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360420049573617314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Opening this message immediately installs the worm.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After a successful Bluetooth transfer, CommWarrior.C immediately searches for and infects new targets. Thus, it has the capability of quickly spreading and infecting all vulnerable phones within Bluetooth range.&lt;br /&gt;&lt;br /&gt;CommWarrior.C also spreads via MMS messages. It monitors the device for incoming SMS messages and sends an infected MMS as a reply to intercepted messages. The reply has for its message body a copy of the original message received and the CommWarrior.C installer as attachment. Here is a copy of an intercepted MMS message being sent by CommWarrior.C:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQJ4KKQX4I/AAAAAAAAB-w/yOVxhdLmwCc/s1600-h/CommWarrior_C021.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SmQJ4KKQX4I/AAAAAAAAB-w/yOVxhdLmwCc/s320/CommWarrior_C021.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360420316882427778" /&gt;&lt;/a&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;CommWarrior.C also spreads through MMC cards. When one is inserted in an infected phone, the following components are copied onto the card:&lt;br /&gt;&lt;br /&gt;e:\system\Bootdata\lib\cwoutcast.exe&lt;br /&gt;e:\system\recogs\cwrec.mdl &lt;br /&gt;When the infected MMC is then inserted into a clean device, it executes cwoutcast.exe and infects the new device. &lt;br /&gt;&lt;br /&gt;Other Details &lt;br /&gt;&lt;br /&gt;The following different sets of strings can be seen in its code: &lt;br /&gt;&lt;br /&gt;CommWarrior Outcast: The dark side of Symbian Force.&lt;br /&gt;&lt;br /&gt;CommWarrior v2.0-PRO. Copyright (c) 2005 by e10d0r&lt;br /&gt;&lt;br /&gt;CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.&lt;br /&gt;&lt;br /&gt;With best regards from Russia. &lt;br /&gt;&lt;br /&gt;SymbOS/CommWarrior.C only affects phones running Symbian S60 phones. &lt;br /&gt;&lt;br /&gt;Manual Disinfection &lt;br /&gt;&lt;br /&gt;Scan your mobile device using UMU Scan and delete all files detected as SymbOS/CommWarrior.C. &lt;br /&gt;Reboot your device to kill malware residue processes. &lt;br /&gt;Download a third party File Explorer. &lt;br /&gt;Locate and delete the following files and folders if they exist: &lt;br /&gt;!:\system\apps\SymCommander\cwoutcast.exe&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.rsc&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.aif&lt;br /&gt;!:\system\apps\SymCommander\SymCommander.app&lt;br /&gt;c:\system\apps\SymCommander\SymCommander&lt;br /&gt; &lt;br /&gt;!:\system\Bootdata\lib\cwoutcast.exe&lt;br /&gt;!:\system\recogs\cwrec.mdl&lt;br /&gt; &lt;br /&gt;* ! siginifies a user-defined drive (C or E)&lt;br /&gt; &lt;br /&gt;Re-install SymCommander from a clean installer if needed. &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQJx4u_4LI/AAAAAAAAB-o/1pBfa3HNX74/s1600-h/CommWarrior_C07.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 176px; height: 208px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SmQJx4u_4LI/AAAAAAAAB-o/1pBfa3HNX74/s320/CommWarrior_C07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5360420209125482674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-3716066557506214787?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/3716066557506214787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/07/trojan-age-on-close-look-at-symbanion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3716066557506214787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3716066557506214787'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/07/trojan-age-on-close-look-at-symbanion.html' title='TROJAN AGE ON A CLOSE LOOK AT SYMBANION'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XbdOXdG5XQs/SmQKMy86-_I/AAAAAAAAB_A/i7zzScdPVdA/s72-c/IMG1062A.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-3834851003373479943</id><published>2009-06-19T03:11:00.000-07:00</published><updated>2009-06-19T03:12:01.561-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIRELESS BATTERY- LIMITED POWER SUPPLY'/><title type='text'>WIRELESS BATTERY- LIMITED POWER SUPPLY</title><content type='html'>&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;WIRELESS BATTERY- LIMITED POWER SUPPLY&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/pcheader4_Fxc9s_21985.gif" alt="pcheader4"/&gt;&lt;br /&gt;True Wireless Power&lt;br /&gt;Powercast’s products deliver true wireless power for continuous charging and power-over-distance for one or multiple devices. Enable your device to become finally untethered. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Low Power Charging System&lt;/strong&gt;&lt;br /&gt;Powercast components integrate seamlessly with power distribution and storage systems for low power electronic devices by delivering microwatts to milliwatts without wires. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Integrate our Technology&lt;/strong&gt;&lt;br /&gt;Powercast technology enables unique product enhancement, product differentiation, and market extensions. We are continually building a roster of strategic collaborations that benefit from wireless power and continuous charging. &lt;img src="http://www.instablogsimages.com/images/2009/06/19/04559_jnjHW_21985.jpg" alt="04559"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Experience the Future&lt;/strong&gt;&lt;br /&gt;Qualified potential partners can self-discover and rapidly prototype using Powercast's wireless power technology by purchasing a Lifetime Power Evaluation and Development Kit. &lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/19_set_mk2_russian_FFrfE_21985.jpg" alt="19_set_mk2_russian"/&gt;&lt;br /&gt;&lt;br /&gt;A leader in partnering with the industry to enhance the end-user experience through wireless power&lt;br /&gt;Powercast has developed proprietary methods to deliver unique powering solutions and holds an extensive cross-platform portfolio of related intellectual property. &lt;img src="http://www.instablogsimages.com/images/2009/06/19/19_sets_x_2_m3_VZXsr_21985.jpg" alt="19_sets_x_2_m3"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IMPLEMENTATION FLEXIBILITY&lt;br /&gt;&lt;br /&gt;Unique “Any-to-Any” broadcasting&lt;br /&gt;&lt;br /&gt;Point-to-Point &lt;br /&gt;Point-to-Multipoint &lt;br /&gt;Multipoint-to-Point &lt;br /&gt;Multipoint-to-Multipoint &lt;br /&gt;INCREASED PRODUCT RELIABILITY &lt;br /&gt;&lt;br /&gt;Hermetically Sealed &lt;br /&gt;Continuous Charging &lt;br /&gt;Battery-Free &lt;br /&gt;MULTIPLE POWER OPTIONS &lt;br /&gt;&lt;br /&gt;Continuous &lt;br /&gt;Scheduled &lt;br /&gt;On-Demand &lt;br /&gt;Passive &lt;br /&gt;True Wireless Power&lt;br /&gt;Powercast recognizes there are several alternatives available for powering devices without the use of wires, each with different addressable markets.  The alternative methods may seem similar on the surface, however, they offer limited solutions.  Powercast is the only company with the technology and component-level products to deliver continuous charging, and provide its capability at a scalable distance.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/wireless_flash-trigger_kBQ8D_21985.jpg" alt="wireless_flash trigger"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Principle Limitations of Alternative Technology Performance:&lt;br /&gt;&lt;br /&gt;Requires direct contact or close proximity &lt;br /&gt;Difficult to integrate moving parts and bulky size &lt;br /&gt;Inflexible deployment &lt;br /&gt;Must follow specific handling process &lt;br /&gt;Generates excess waste &lt;br /&gt;Other limitations vary by technology type &lt;br /&gt;Powercast Performance Differences:&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/z15i2s5t_RBdxW_21985.jpg" alt="z15i2s5t" align="right"/&gt;&lt;br /&gt;Extends product life cycles &lt;br /&gt;Reduces maintenance requirements &lt;br /&gt;Easily integrated form factors &lt;br /&gt;Any-to-Any configuration &lt;br /&gt;Reduces or eliminates adverse environmental impact &lt;br /&gt;Multiple power options: continuous, scheduled, on-demand, or passive &lt;br /&gt;Low Power Charging System&lt;br /&gt;The development and usage of wireless, portable electronic devices is rapidly expanding.  Many of these devices share similar components which have been, or in the future will be, designed and optimized for low power consumption.  These components and their suppliers constitute the low power ecosystem, and include components such as:&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/radio_babylon_web_VoqXY_21985.jpg" alt="radio_babylon_web"/&gt;&lt;br /&gt;&lt;br /&gt;Energy harvesting devices (e.g. Powerharvester Receiver) &lt;br /&gt;Micro-power management &lt;br /&gt;Low power microcontrollers &lt;br /&gt;Low power radios (e.g. 802.15.4, ZigBee, ULP WiFi, WirelessHART) &lt;br /&gt;Supercapacitors &lt;br /&gt;Solid-state and thin film batteries &lt;br /&gt;Powercast provides a core component in the low power ecosystem. Our energy harvesting and wireless power technologies are embedded in core interoperable components for creating low power charging systems.  With safe, controllable, and scalable wireless power technology, Powercast’s products provide numerous benefits for low power charging systems, including:&lt;br /&gt;&lt;br /&gt;Increases design-in flexibility and benefits: no contacts, no wires, sealable, and submersible &lt;br /&gt;Promotes a battery-free architecture &lt;br /&gt;Improves device longevity through maintenance-free operation &lt;br /&gt;Powercast is seeking to continuously add additional collaborations with forward-looking members of the low power ecosystem for expanding product offerings and cross-optimizing components for performance improvements.&lt;br /&gt;&lt;br /&gt;Integrate our Technology&lt;br /&gt;Collaboration Partners&lt;br /&gt;Powercast is continually building a roster of strategic collaborations that benefit from wireless power and continuous charging. Examples of collaborations include:&lt;br /&gt;&lt;br /&gt;Technology:&lt;br /&gt;&lt;br /&gt;Texas Instruments: RF modules, software, MSP 430 Third-Party Development Network &lt;br /&gt;CAP-XX: Supercapacitor energy storage &lt;br /&gt;CYMBET: Thin-film batteries &lt;br /&gt;Infinite Power Solutions: Thin-film batteries &lt;br /&gt;NTERA: Low-power, bi-stable displays &lt;br /&gt;Esensors: Wireless sensors &lt;br /&gt;Manufacturing and Design:&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/hk-traker_yMBBJ_21985.jpg" alt="hk traker"/&gt;&lt;br /&gt;&lt;br /&gt;TACH Technologies &lt;br /&gt;Defense and Energy:&lt;br /&gt;&lt;br /&gt;Department of Defense: Project funding &lt;br /&gt;Department of Energy: Energy management &lt;br /&gt;Government and Defense Contractors &lt;br /&gt;Sponsored University  Research:&lt;br /&gt;&lt;br /&gt;University of Pittsburgh &lt;br /&gt;University of Colorado&lt;br /&gt;&lt;br /&gt;Complete the form below to inquire about becoming a collaborative partner with Powercast.  A Powercast executive will contact you&lt;br /&gt;&lt;br /&gt;Experience the Future&lt;br /&gt;Powercast has development kits available for qualified designers, engineers, product developers and researchers to evaluate and prototype our wireless power technology.&lt;br /&gt;&lt;br /&gt;Self-Discover Wireless Power Technology: Learn about Powercast’s patented wireless technology and all it has to offer. &lt;br /&gt;Rapidly Prototype into Any Device: Quickly integrate into any prototype device using a plug-n-play solution for remote powering. &lt;br /&gt;Explore Renewable Energy Possibilities: Expand the possibilities for true wireless power to become a renewable energy source for rechargeable batteries, and other energy storage devices. &lt;br /&gt;Development Kit Options&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/battery_KXSph_21985.jpg" alt="battery"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lifetime Power Alkaline Starter Kit: A starter kit with Powerharvester components designed for rechargeable Alkaline batteries. &lt;br /&gt;Lifetime Power Lithium Ion Starter Kit: A starter kit with Powerharvester components designed for rechargeable Lithium Ion batteries. &lt;br /&gt;Lifetime Power Evaluation and Development Kit: The full kit that includes components for use with rechargeable Alkaline batteries, rechargeable Lithium Ion batteries, and non-battery energy storage (e.g. capacitors). &lt;br /&gt;Products will be available in all common frequency bands.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/19/w3_bUDAZ_21985.bmp" alt="w3"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wish you could know your Lipoly battery voltage while you are flying?&lt;br /&gt;Want to be able to accurately know when your pack is about to drop voltage?&lt;br /&gt;&lt;br /&gt;The New-&amp;-Improved Hobbyking wireless battery tracker monitors your lipoly via the charge plug and sends back a signal to your reciever. Should one of your cells drop below 3.6v the LED for that cell will turn Red. Once the cell drops below 3v the LED will flash and the warning buzzer will beep, signaling you to land as soon as possible.&lt;br /&gt;The transmitter operates on 870.0Mhz FM band and can monitor 2S to 6S batteries.&lt;br /&gt;&lt;br /&gt;Spec.&lt;br /&gt;Transmitter Weight: 7g&lt;br /&gt;Receiver Weight: 35g (this is the part you keep in your pocket)&lt;br /&gt;Signal distance: Around 300-400mtr&lt;br /&gt;Battery: 7.4V/ 2 Cell (Included)&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Usage;&lt;br /&gt;Ensure the hand-held receiver is turned on and you have selected the number of cells first. Once this is done, then connect the transmitter inside the plane to the batteries balance plug. If you do not do it in this order, the reading will be incorrect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-3834851003373479943?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/3834851003373479943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/wireless-battery-limited-power-supply.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3834851003373479943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/3834851003373479943'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/wireless-battery-limited-power-supply.html' title='WIRELESS BATTERY- LIMITED POWER SUPPLY'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-8927739017260498496</id><published>2009-06-18T21:25:00.000-07:00</published><updated>2009-06-18T21:27:52.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSP Processing Error'/><title type='text'>JSP Processing Error</title><content type='html'>JSP Processing Error&lt;style type="text/css"&gt;#mybox{padding: 0.5em;border: noborder; border-width: thin; width: 100%;}&lt;/style&gt;&lt;style type="text/css"&gt;h2 { text-align: justify;color:#5555FF;font-size:15pt;font-family: Verdana, Helvitica, sans-serif;font-weight:bold}&lt;/style&gt;&lt;h2&gt;JSP Processing Error&lt;/h2&gt;&lt;TABLE BORDER=2  BGCOLOR="#DDDDFF"&gt;&lt;TR VALIGN="BOTTOM"&gt;&lt;TD BGCOLOR="#C2B0D6" &gt;&lt;B&gt;HTTP Error Code:&amp;nbsp;&amp;nbsp;&amp;nbsp;404&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;B&gt;Error Message:&lt;/B&gt;&lt;div id="mybox"&gt;&lt;PRE&gt;JSPG0036E: Failed to find resource /auctionhome/mstc/admin/admin_login.jsp&lt;BR&gt;&lt;/PRE&gt;&lt;/div&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;B&gt;Root Cause:&lt;/B&gt;&lt;div id="mybox"&gt;&lt;PRE&gt;java.io.FileNotFoundException: JSPG0036E: Failed to find resource /auctionhome/mstc/admin/admin_login.jsp&lt;BR&gt; at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.findWrapper&amp;#40;AbstractJSPExtensionProcessor.java:370&amp;#41;&lt;BR&gt; at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest&amp;#40;AbstractJSPExtensionProcessor.java:333&amp;#41;&lt;BR&gt; at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest&amp;#40;WebApp.java:3622&amp;#41;&lt;BR&gt; at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest&amp;#40;WebGroup.java:276&amp;#41;&lt;BR&gt; at com.ibm.ws.webcontainer.WebContainer.handleRequest&amp;#40;WebContainer.java:927&amp;#41;&lt;BR&gt; at com.ibm.ws.webcontainer.WSWebContainer.handleRequest&amp;#40;WSWebContainer.java:1566&amp;#41;&lt;BR&gt; at com.ibm.ws.webcontainer.channel.WCChannelLink.ready&amp;#40;WCChannelLink.java:175&amp;#41;&lt;BR&gt; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination&amp;#40;HttpInboundLink.java:455&amp;#41;&lt;BR&gt; at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation&amp;#40;HttpInboundLink.java:384&amp;#41;&lt;BR&gt; at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete&amp;#40;HttpICLReadCallback.java:83&amp;#41;&lt;BR&gt; at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted&amp;#40;AioReadCompletionListener.java:165&amp;#41;&lt;BR&gt; at com.ibm.io.async.AbstractAsyncFuture.invokeCallback&amp;#40;AbstractAsyncFuture.java:217&amp;#41;&lt;BR&gt; at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions&amp;#40;AsyncChannelFuture.java:161&amp;#41;&lt;BR&gt; at com.ibm.io.async.AsyncFuture.completed&amp;#40;AsyncFuture.java:138&amp;#41;&lt;BR&gt; at com.ibm.io.async.ResultHandler.complete&amp;#40;ResultHandler.java:204&amp;#41;&lt;BR&gt; at com.ibm.io.async.ResultHandler.runEventProcessingLoop&amp;#40;ResultHandler.java:775&amp;#41;&lt;BR&gt; at com.ibm.io.async.ResultHandler$2.run&amp;#40;ResultHandler.java:905&amp;#41;&lt;BR&gt; at com.ibm.ws.util.ThreadPool$Worker.run&amp;#40;ThreadPool.java:1527&amp;#41;&lt;BR&gt;&lt;BR&gt;&lt;/PRE&gt;&lt;/div&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-8927739017260498496?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/8927739017260498496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/jsp-processing-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8927739017260498496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8927739017260498496'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/jsp-processing-error.html' title='JSP Processing Error'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-7348491867695556573</id><published>2009-06-13T01:15:00.001-07:00</published><updated>2009-06-13T01:37:57.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shipping Scam'/><category scheme='http://www.blogger.com/atom/ns#' term='VARIOUS TYPES OF SCAM - NOW A DAY Work at Home Scam'/><category scheme='http://www.blogger.com/atom/ns#' term='Check Scams'/><category scheme='http://www.blogger.com/atom/ns#' term='Airfare'/><category scheme='http://www.blogger.com/atom/ns#' term='Phishing Scam'/><title type='text'>VARIOUS TYPES OF SCAM - Work at Home Scam, Check Scams, Shipping Scam, Airfare, Phishing Scam</title><content type='html'>&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Work at Home Scam, Check Scams, Shipping Scam, Airfare, Phishing Scam&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;What are Work at Home Scams?   &lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SjNh11fe8bI/AAAAAAAABZw/PqgECgaE6_c/s1600-h/WORKATHOEM!HLKJL.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SjNh11fe8bI/AAAAAAAABZw/PqgECgaE6_c/s320/WORKATHOEM!HLKJL.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346724760139002290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;These are positions that require jobseekers to work from home assembling crafts or processing data entry. The employer requires a payment to for an instruction booklet about the position, required software, or materials. Payment is taken with a credit card and the jobseeker is advised that the materials will be mailed to them within several business days. Jobseeker receives the materials/software needed to start employment. They are given instructions to assemble the products or transcribe data, when the task is completed, the employer rejects the work.  The fraudulent employer states that the project submitted by the employee, did not pass their quality control test. Often these employers require a repurchase for another kit/software for a “discounted rate” to receive another payment from the jobseeker. However, all of the work submitted to the employer will never “meet quality standard” and the jobseeker is left without income&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNhqUCy0iI/AAAAAAAABZo/r8XVOqnRBqY/s1600-h/WORKATHOEM!HLKJL.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNhqUCy0iI/AAAAAAAABZo/r8XVOqnRBqY/s320/WORKATHOEM!HLKJL.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346724562181739042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_XbdOXdG5XQs/SjNhIycOOhI/AAAAAAAABZg/o1QWVbxwXIk/s1600-h/Workathomeassembly.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://3.bp.blogspot.com/_XbdOXdG5XQs/SjNhIycOOhI/AAAAAAAABZg/o1QWVbxwXIk/s320/Workathomeassembly.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346723986225904146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In some cases, the jobseeker will not receive any materials to start employment. Attempts to contact the employer will be unsuccessful, due to the lack of valid contact information provided for the company. Again, the jobseeker is left without any working materials and a debt on their credit card&lt;br /&gt; &lt;br /&gt; What are the signs of a Work at Home Scam?  &lt;br /&gt;Company requires payment for materials or software. (Some legitimate companies will require a fee, however you should be very careful and fully investigate the opportunity) &lt;br /&gt;Employer states they are overseas. &lt;br /&gt;Information about company cannot be verified. &lt;br /&gt;Employer offers large salary, for minimal work. &lt;br /&gt;Employment starts without a formal interview. &lt;br /&gt;If it sounds as if it is too good to be true, it probably is. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;What are Check/Payment Processing Scams?  &lt;br /&gt;Fraudulent companies claim to offer positions such as “Accounts Receivable Clerk” or “Finance Manager”. These fraudulent positions involve laundering money. The fraudulent company states that you are to collect funds from their "clients" and wire money into theri bank. The fraudulent company mails the jobseeker checks (they can be cashiers, money orders or travelers checks) and provides instructions to cash the checks. The employer will request to have the funds deposited into a bank account, which is under the jobseeker’s name. The instructions state to keep a small percentage, usually between 5%-15%, as your commission.   The bank wires the funds immediately and a few days later, finds out that the check is fraudulent. By that time, the scammer already has their money and the “employee” is left with a negative bank account. The bank holds the person on the account liable for the funds, and in certain cases will seek legal action. You are also in danger of being arrested at the moment you try to deposit or cash the check. &lt;br /&gt; &lt;br /&gt; &lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNid1R46pI/AAAAAAAABZ4/rRsq00wbK48/s1600-h/Checkcashing23.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 136px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNid1R46pI/AAAAAAAABZ4/rRsq00wbK48/s320/Checkcashing23.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346725447276751506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What are Shipping Scams?  &lt;br /&gt;These are opportunities that require the jobseekr to the receive packages such as, Electronics, DVD, CD’s or other materials to reship overseas to another location. The fraudulent company states that they would pay commission per shipment, along with any shipping fees. The jobseeker  is to receive the materials at their home, fill out custom forms, and reship the package overseas.  The employer sends a check to the jobseeker, and a few days later, the bank notifies them of a fraudulent check. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The goods received from this position are obtained from an unauthorized credit card purchase online. The fraudulent employer purchased these products illegally, and uses the jobseeker to “launder” the goods overseas. Not only is the jobseeker fined for  fraudulent checks from their bank, but could face legal action from the credit card company for “laundering products” or criminal prosecution for receipt of stolen goods. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XbdOXdG5XQs/SjNi_IvA5cI/AAAAAAAABaA/MugfNV_bDu0/s1600-h/reshipping222.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://2.bp.blogspot.com/_XbdOXdG5XQs/SjNi_IvA5cI/AAAAAAAABaA/MugfNV_bDu0/s320/reshipping222.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346726019434866114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What are signs of a Air Fare Scam?  &lt;br /&gt;Phone number routes you directly to a automated message requiring you to leave your information &lt;br /&gt;Company requests that you pay for half or all your air fare and states you will be rembursed at when you land &lt;br /&gt;Payment is requested via wire/money order/pay pal &lt;br /&gt;Company infomation cannot be verified &lt;br /&gt; &lt;br /&gt; &lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNjSSRmTwI/AAAAAAAABaI/9rbBAoPEwlY/s1600-h/AIrefairescam11.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 139px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNjSSRmTwI/AAAAAAAABaI/9rbBAoPEwlY/s320/AIrefairescam11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346726348413357826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is a Phishing Scam?  &lt;br /&gt;Phishing scams are cleverly hidden attempts to get your account information. These emails are sent with legitimate looking header information, company logos and formatting and often claim that there is an urgent need for you to login to your account. Any time you receive one of these emails, please be sure to check the destination URL on the link contained within BEFORE attempting to login or submit any information. These emails are cleverly disguised to appear as though they were sent by a legitimate company, however the links contained within lead the recipient to a false website. These false sites are usually identical (or very similar) to the site the recipient thinks they are traveling to. Once the recipient has logged in, the site owner (scammer/phisher) has their login information and can use it to their advantage. Sometimes the sites will contain fields to be completed, often requesting that the victim update their banking information or other sensitive information.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNjz_mUSRI/AAAAAAAABaQ/pHNcLsiYc5U/s1600-h/Phishging1111.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNjz_mUSRI/AAAAAAAABaQ/pHNcLsiYc5U/s320/Phishging1111.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346726927515535634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What are signs of a Phishing Scam?  &lt;br /&gt;Do not click on links or provide any information via email &lt;br /&gt;Remember that Careerbuilder will NEVER ask you to update your account via email with a link requesting you to login &lt;br /&gt;Hover over the link and it will reveal the true URL &lt;br /&gt;_________________________________POST BY ALOKRAJ.&lt;br /&gt; &lt;a href="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNkUkIF-lI/AAAAAAAABaY/42-LlsNeMXY/s1600-h/IMG1042A.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_XbdOXdG5XQs/SjNkUkIF-lI/AAAAAAAABaY/42-LlsNeMXY/s320/IMG1042A.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346727487076694610" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-7348491867695556573?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/7348491867695556573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/various-types-of-scam-work-at-home-scam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/7348491867695556573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/7348491867695556573'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/various-types-of-scam-work-at-home-scam.html' title='VARIOUS TYPES OF SCAM - Work at Home Scam, Check Scams, Shipping Scam, Airfare, Phishing Scam'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XbdOXdG5XQs/SjNh11fe8bI/AAAAAAAABZw/PqgECgaE6_c/s72-c/WORKATHOEM!HLKJL.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-6286466422028316367</id><published>2009-06-13T01:15:00.000-07:00</published><updated>2009-06-13T01:16:26.437-07:00</updated><title type='text'></title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-6286466422028316367?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/6286466422028316367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6286466422028316367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/6286466422028316367'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/blog-post.html' title=''/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-8752047927119892415</id><published>2009-06-10T23:34:00.000-07:00</published><updated>2009-06-10T23:42:17.749-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INJECTION IN SQL - PHP BY REVEAL CODES'/><title type='text'>INJECTION IN SQL - PHP BY REVEAL CODES</title><content type='html'>&lt;strong&gt;&lt;br /&gt;&lt;blockquote&gt;INJECTION IN SQL - PHP BY REVEAL CODES&lt;/blockquote&gt;&lt;br /&gt;&lt;/strong&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/11/xdvs_NwkUf_21985.bmp" alt="xdvs" /&gt;&lt;br /&gt;As the popularity of the web increases and web applications become tools of everyday use, the role of web security has been gaining importance as well. The last years have shown a significant increase in the number of web-based attacks. For example, there has been extensive press coverage of recent security incidences involving the loss of sensitive credit card information belonging to millions of customers. Many web application security &lt;img src="http://www.instablogsimages.com/images/2009/06/11/concept_attacking_v2_mKsdB_21985.x-png" alt="concept_attacking_v2" /&gt;&lt;br /&gt;&lt;br /&gt;vulnerabilities result from generic input validation problems. Examples of such vulnerabilities are SQL injection and Cross-Site Scripting (XSS). Although the majority of web vulnerabilities are easy to understand and to avoid, many web developers are, unfortunately, not security-aware. As a result, there exist many web sites on the Internet that are vulnerable. This paper demonstrates how easy it is for attackers to automatically discover and exploit application-level vulnerabilities in a large number of web applications. To this end, we developed SecuBat, a generic and modular web vulnerability scanner that, similar to a port scanner, automatically analyzes web sites with the aim of finding exploitable SQL injection and XSS vulnerabilities. Using SecuBat, we were able to find many potentially vulnerable web sites. To verify the accuracy of SecuBat, we picked one hundred interesting web sites from the potential victim list for further &lt;img src="http://www.instablogsimages.com/images/2009/06/11/ibn_rk2iy_rK2IY_21985.aspx" alt="ibn_rk2iy" /&gt;&lt;br /&gt;&lt;br /&gt;analysis and confirmed exploitable flaws in the identified web pages. Among our victims were well-known global companies and a finance ministry. Of course, we notified the administrators of vulnerable sites about potential security problems. More than fifty responded to request additional information or to report that the security hole was closed.&lt;br /&gt;The web has become an important part of our lives. Every day, we interact with a large number of custom-built web applications that have been implemented using a variety of different technologies. The highly heterogeneous nature of the web with its different implementation languages, encoding standards, browsers and scripting environments makes it difficult for web application developers to properly secure their applications and stay up-to-date with emerging threats and newly discovered attacks.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/websecurity_rlHX9_21985.gif" alt="websecurity" /&gt;&lt;br /&gt;A decade ago, applications were often deployed in closed client-server or stand-alone scenarios. At that time, testing and securing an application was an easier task than today, where a web application can be accessed by millions of anonymous Internet users. As more and more security-critical applications, such as banking systems, governmental transaction interfaces, and e-commerce platforms, are becoming directly accessible via the web, the role of web application security and defense has been gaining importance.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/step4_detail_CtLWC_21985.x-png" alt="step4_detail" /&gt;&lt;br /&gt;Many web application security vulnerabilities result from generic input validation problems. Examples of such vulnerabilities are SQL injection and Cross-Site Scripting (XSS). Although the majority of web vulnerabilities are easy to understand and to avoid, many web developers are, unfortunately, not security-aware. As a result, there exist a large number of vulnerable applications and web sites on the web.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/concept_xssattack_lPl5h_21985.x-png" alt="concept_xssattack" /&gt;&lt;br /&gt;There are two main approaches [10] to testing software applications for the presence of bugs and vulnerabilities:&lt;br /&gt;In white-box testing, the source code of the application is analyzed in an attempt to track down defective or vulnerable lines of code. This operation is often integrated into the development process by creating add-on tools for common development environments. In black-box testing, the source code is not examined directly. Instead, special input test cases are generated and sent to the application. Then, the results returned by the application are analyzed for unexpected behavior that indicate errors or vulnerabilities. &lt;img src="http://www.instablogsimages.com/images/2009/06/11/step3_detail_GVQM6_21985.x-png" alt="step3_detail" /&gt;&lt;br /&gt;So far, white-box testing [11,23] has not experienced widespread use for finding security flaws in web applications. An important reason is the limited detection capability of white-box analysis tools, in particular due to heterogeneous programming environments and the complexity of applications that incorporate database, business logic, and user interface components.&lt;br /&gt;In practice, black-box vulnerability scanners are used to discover security problems in web applications. These tools operate by launching attacks against an application and observing its response to these attacks. To this end, web server vulnerability scanners such as Nikto [18] or Nessus [22] dispose of large repositories of known software flaws. While these tools are valuable components when auditing the security of a web site, they largely lack the ability to identify a priori unknown instances of vulnerabilities. As a consequence, there is the need for a scanner that covers a broad range of general classes of vulnerabilities, without specific knowledge of bugs in particular versions of web applications.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/sql_injection_02_sutT4_21985.gif" alt="sql_injection_02" /&gt;&lt;br /&gt;In this paper, we present SecuBat, an open-source web vulnerability scanner that uses a black-box approach to crawl and scan web sites for the presence of exploitable SQL injection and XSS vulnerabilities. Our system does not rely on a database of known bugs. Instead, the distinctive, underlying properties of application-level vulnerabilities are exploited to detect affected programs. To increase the confidence in the correctness of our scan results, our tool also attempts to automatically generate proof-of-concept exploits in certain cases.&lt;br /&gt;SecuBat has a flexible architecture that consists of multi-threaded crawling, attack, and analysis components. With the help of a graphical user interface, the user can configure single or combined crawling and attack runs. In our prototype implementation, we currently provide four different attack components: SQL Injection, Simple Reflected XSS Attack, Encoded Reflected XSS Attack and Form-Redirecting XSS Attack. In addition, we provide an Application Programming Interface (API) that enables developers to implement their own modules for launching other desired attacks.&lt;br /&gt;The main contributions of this paper are as follows:&lt;br /&gt;We demonstrate how easy it is for attackers to automatically discover and exploit application-level vulnerabilities in a large number of web applications. We developed four attack modules that analyze web applications for the presence of common application-level SQL and XSS vulnerabilities. Furthermore, we present a mechanism to automatically derive exploits for discovered vulnerabilities. To the best of our knowledge, SecuBat is the first open-source tool that is able to automatically detect XSS vulnerabilities and generate working proof-of-concept exploits. This paper is structured as follows: Section 2 provides a brief introduction to SQL injection and XSS attacks. Section 3 describes our approach for automated vulnerability detection. Section 4 presents the four implemented attack and analysis components in detail. Section 5 discusses the implementation of the SecuBat scanner framework. Section 6 presents the evaluation results and discusses the vulnerabilities we detected. Section 7 presents an in-depth case study for one of the vulnerable web sites. Section 8 gives an overview of related work. Finally, Section 9 discusses future work, and Section 10 concludes the paper.&lt;br /&gt;2 Typical Web Attacks1 SQL InjectionSQL injection attacks are based on injecting strings into database queries that alter their intended use. This can occur if a web application does not properly filter (sanitize) user input.&lt;br /&gt;There are many varieties of SQL. Most dialects are loosely based on the most recent ANSI standard SQL-92 [17]. The typical unit of execution in the SQL language is the query, a collection of statements that are aimed at retrieving data from or manipulating records in the database. A query typically results in a single result set that contains the query results. Apart from data retrieval and updates, SQL statements can also modify the structure of databases using Data Definition Language statements (``DDL'') [17].&lt;br /&gt;A web application is vulnerable to an SQL injection attack if an attacker is able to insert SQL statements into an existing SQL query of the application. This is usually achieved by injecting malicious input into user fields that are used to compose the query. For example, consider a web application that uses a query such as the one shown in Listing 1 for authenticating its users.&lt;br /&gt;&lt;br /&gt;Listing 1: SQL Injection Step 1 SELECT ID, LastLogin FROM Users WHERE User = 'john' AND Password = 'doe'&lt;br /&gt;&lt;br /&gt;This query retrieves the ID and LastLogin fields of user ``john'' with password ``doe'' from table Users. Such queries are typically used for checking the user login credentials and, therefore, are prime targets for an attacker. In this example, a login page prompts the user to enter her username and password into a form. When the form is submitted, its fields are used to construct an SQL query (shown in Listing 2) that authenticates the user.&lt;br /&gt;&lt;br /&gt;Listing 2: SQL Injection Step 2 sqlQuery = "SELECT ID, LastLogin FROM Users WHERE User = '" + userName + "' AND Password = '" + password + "'"&lt;br /&gt;&lt;br /&gt;If the login application does not perform correct input validation of the form fields, the attacker can inject strings into the query that alter its semantics. For example, consider an attacker entering user credentials such as the ones shown in Listing 3.&lt;br /&gt;&lt;br /&gt;Listing 3: SQL Injection Step 3 User: ' OR 1=1 --Password:&lt;br /&gt;&lt;br /&gt;Using the provided form data, the vulnerable web application constructs a dynamic SQL query for authenticating the user as shown in Listing 4.&lt;br /&gt;&lt;br /&gt;Listing 4: SQL Injection Step 4 SELECT ID, LastLogin FROM Users WHERE User = '' OR 1=1 -- AND Password = '&lt;br /&gt;&lt;br /&gt;The ``-'' command indicates a comment in Transact-SQL. Hence, everything after the first ``-'' is ignored by the SQL database engine. With the help of the first quote in the input string, the user name string is closed, while the ``OR 1=1'' adds a clause to the query which evaluates to true for every row in the table. When executing this query, the database returns all user rows, which applications often interpret as a valid login.&lt;br /&gt;To avoid SQL injection vulnerabilities, web application developers need to consider malicious input data and sanitize it properly before using it to construct dynamically generated SQL queries. Another way of helping developers is to implement user data encoding within the web server application environment. For example, Microsoft implemented such security checks in their .NET framework [4,6]. Apart from such approaches specific to development environments, another solution is the use of an intermediate component that performs the filtering of dangerous characters [5], as Alfantookh proposes in his paper on SQL injection avoidance [1].&lt;br /&gt;2 Cross-Site ScriptingCross Site Scripting (XSS, sometimes also abbreviated as CSS) refers to a range of attacks in which the attacker injects malicious JavaScript into a web application [2,9]. When a victim views the vulnerable web page with the malicious script, this script origins directly from the web site itself and thus, is trusted. As a result, the script can access and steal cookies, session IDs, and other sensitive information that the web site has access to. Here, the Same Origin Policy of JavaScript [21] (which restricts the access of scripts to only those cookies that belong to the site where the script is loaded from) is circumvented.&lt;br /&gt;XSS attacks are generally simple to execute, but difficult to prevent and can cause significant damage. There exist two different types of XSS attacks: reflected and stored XSS attacks.&lt;br /&gt;The most common one found in web applications today is called reflected XSS attack. Consider a user that accesses the popular &lt;a href="http://www.myonline-banking.com/"&gt;www.myonline-banking.com&lt;/a&gt; web site to perform sensitive operations, e.g., online banking. Unfortunately, the search form on the web site fails to perform input validation, and whenever a search query is entered that does not return any results, the user is displayed a message that also contains the unfiltered search string.  and the browser of the user displays ``No matches for Hello World'' (note that the search string is displayed in italics). This indicates that there is a reflected XSS vulnerability present in the application, which can be exploited in the following way. First, an attacker writes a JavaScript snippet that, when executed in a victim's browser, sends the victim's cookie to the attacker. Now, the attacker tricks the victim into clicking a link that points to the action target of the vulnerable form and contains the malicious script as URL (GET1) parameter (as shown in Listing 5). This can be achieved, for example, by sending it to the user via e-mail.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When the user clicks on this link, the vulnerable application receives a search request similar to the previous one, where the search term was The only difference is that now, the search term is the malicious script written by the attacker. Instead of a harmless phrase in italics, the victim's browser now receives malicious JavaScript code from a trusted web server and executes it. As a result, the user's cookie, which can contain authentication credentials, is sent to the attacker. This example also makes clear why the attack is called reflected; the malicious code arrives at the victim's browser after being reflected back by the server.&lt;br /&gt;Apart from cookie stealing, there is an alternative way to exploit reflected XSS vulnerabilities. Suppose that the vulnerable web page described in the previous example also contains a login form. With JavaScript, the location to which a form sends the collected data can be modified. Hence, the attacker can adjust the malicious JavaScript snippet such that it redirects the login form to her own server. When the user enters her name and password into the compromised login form and submits it, her credentials are transmitted to the attacker. Note that the vulnerable form (i.e., the search form in our example) does not need to be identical to the form that is redirected during the attack (i.e., the login form).&lt;br /&gt;The second type of XSS attack is the so-called stored XSS attack. As its name suggests, the difference compared to the reflected attack is that the malicious script is not immediately reflected back to the victim by the server, but stored inside the vulnerable application for later retrieval. A typical example for applications vulnerable to this kind of XSS attack are message boards that do not perform sufficient input validation. An attacker can post a message containing the malicious script to the message board, which stores and subsequently displays it to other users, causing the intended damage. Currently, SecuBat only focuses on the discovery of reflected XSS vulnerabilities.&lt;br /&gt;3 Automated VulnerabilityDetectionOur SecuBat vulnerability scanner consists of three main components: First, the crawling component gathers a set of target web sites. Then, the attack component launches the configured attacks against these targets. Finally, the analysis component examines the results returned by the web applications to determine whether an attack was successful.&lt;br /&gt;1 Crawling ComponentBecause of the relatively slow response time of remote web servers (typically ranging from 100 to 10000 milliseconds), we use a queued workflow system that is executing several concurrent worker threads to improve crawling efficiency. Depending on the performance of the machine that hosts SecuBat, the bandwidth of the uplink, and the targeted web servers, 10 to 30 concurrent worker threads are typically deployed during a vulnerability detection run.&lt;br /&gt;To start a crawling session, the crawling component of SecuBat needs to be seeded with a root web address. Using this address as a starting point, the crawler steps down the link tree, collecting all pages and included web forms during the process. Just as a typical web crawler, SecuBat has configurable options for the maximum link depth, maximum number of pages per domain to crawl, maximum crawling time, and the option of dropping external links. Conceptual ideas for the implementation of the crawling component were taken from existing systems, especially from Ken Moody's and Marco Palomino's SharpSpider [16], and David Cruwys' spider [8].&lt;br /&gt;2 Attack ComponentAfter the crawling phase has completed, SecuBat starts processing the list of target pages. In particular, the attack component scans each page for the presence of web forms. The reason is that the fields of web forms constitute our entry points to web applications.&lt;br /&gt;For each web form, we extract the action (or target) address and the method (i.e., GET or POST) used to submit the form content. Also, the form fields and its corresponding CGI parameters are collected. Then, depending on the actual attack that is launched, appropriate values for the form fields are chosen. Finally, the form content is uploaded to the server specified by the action address (using either a GET or POST request). As defined in the HTTP protocol [3], the attacked server responds to such a web request by sending back a response page via HTTP.&lt;br /&gt;3 Analysis ModulesAfter an attack has been launched, the analysis module has to parse and interpret the server response. An analysis module uses attack-specific response criteria and keywords to calculate a confidence value to decide if the attack was successful. Obviously, when a large number of web sites are scanned, false positives are possible. Thus, care needs to be taken in determining the confidence value so that false positives are reduced.&lt;br /&gt;4 Attack and Analysis ConceptsFor our prototype implementation of SecuBat, we provide plug-ins for common SQL injection and XSS attacks. As far as XSS attacks are concerned, we present three different variants with increasing levels of complexity.&lt;br /&gt;1 SQL InjectionTo test web applications for the presence of SQL injection vulnerabilities, a single quote (') character is used as input value for each form field. If the attacked web application is vulnerable, some of the uploaded form parameters will be used to construct an SQL query, without prior sanitization. In this case, the injected quote character will likely transform the query such that it no longer adheres to valid SQL syntax. This causes an SQL server exception. If the web application does not handle exceptions or server errors, the result is a SQL error description being included in the response page.&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/11/concept_sqlinjection_smaller_XIKCI_21985.x-png" alt="concept_sqlinjection_smaller" /&gt;&lt;br /&gt;&lt;br /&gt;Based on the previously described assumptions, the SQL injection analysis module searches response pages for occurrences of an a priori configured list of weighted key phrases that indicate an SQL error (see Figure 1). We derived this list by analyzing response pages of web sites that are vulnerable to SQL injection. Depending on the database server (e.g., MS SQL Server, Oracle, MySQL, PostgreSQL, etc.) and the application framework (e.g., ASP.NET, PHP, ASP, etc.) that is being used, a wide range of error responses are generated. Table 1 shows the key phrase table that we used in our SQL injection analysis module.&lt;br /&gt;&lt;br /&gt;Table 1: Used SQL Injection Keyword Table  Keyword Confidence Factor sqlexception 110 runtimeexception 100 error occurred 100 runtimeexception 100 NullPointerException 90 org.apache 90 stacktrace 90 potentially dangerous 80 internal server error 80 executing statement 80 runtime error 80 exception 80 java.lang 80 error 500 75 status 500 75 error occurred 75 error report 70 incorrect syntax 70 sql server 70 server error 70 oledb 60 odbc 60 mysql 60 syntax error 50 tomcat 45 sql 40 apache 35 invalid 20 incorrect 20 missing 10 wrong 10 &lt;br /&gt;&lt;br /&gt;Each phrase in the list was associated with its own confidence factor, which numerically describes the gain in confidence that the attacked web form is vulnerable. The confidence factor indicates how significant the occurrence of the corresponding key phrase in the response is. Note that the absolute values of the confidence factors are not important, only their relative ratio matters. These ratios were chosen based on our analysis of the response pages returned by vulnerable sites.&lt;br /&gt;If the same key phrase occurs several times in one response page, the confidence gain should decrease for each additional occurrence. This effect is modeled with the following equation, where cp denotes the confidence factor of a specific key phrase p. In the equation, n is the number of occurrences of this key phrase p, and cp,sum is the aggregated confidence gain resulting from all its occurrences:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hence, the first occurrence of a key phrase results in a confidence gain as high as the confidence factor, the second one of 1/4, the third one of 1/9, and so on.&lt;br /&gt;Apart from using confidence factors, we also consider response codes in determining if an SQL injection attack is successful. The response code is a good indicator for SQL injection vulnerabilities. For example, many sites return a 500 Internal Server Error response when a single quote is entered. This response is generated when the application server crashes. Nevertheless, key phrase analysis is important, as vulnerable forms may also return a 200 OK response.&lt;br /&gt;2 Simple Reflected XSS AttackThe Simple Reflected XSS attack is implemented in a similar way to the Simple SQL Injection attack. As shown in Figure 2, the attack component first constructs a web request and sends it to the target application, using a simple script as input to each form field. The server processes the request and returns a response page. This response page is parsed and analyzed for occurrences of the injected script code. For detecting a vulnerability, this simple variant of a XSS attack uses plain JavaScript code as shown in Listing 6. If the target web form performs some kind of input sanitization and filters quotes or brackets, this attack will fail, a shortcoming that is addressed by the Encoded Reflected XSS Attack (in Section 4.3).&lt;br /&gt;&lt;br /&gt;Listing 6: Simple XSS Attack Injection String //&lt;script&gt;alert('XSS');&lt;/script&gt;//&lt;br /&gt;&lt;br /&gt;Figure 2: XSS Attack Workflow   &lt;br /&gt;The simple XSS analysis module takes into account that some of the required characters for scripting (such as quotes or brackets) could be filtered or escaped by the target web application. It also verifies that the script is included at a location where it will indeed be executed by the client browser. The following two sample response pages shown in the Listings 7 and 8 demonstrate the importance of the location of an injected script within the web page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first response page shows an example of a search result page that includes the search query in the response. This behavior is intended to help the user to remember what she searched for, but in fact, leads to a reflected XSS vulnerability. In this case, the application is vulnerable since the script is embedded into the HTML page such that it will be executed by the user's browser (assuming that the browser's JavaScript functionality is enabled).&lt;br /&gt;&lt;br /&gt;Listing 8: Simple Reflected XSS Attack Response Page B &lt;br /&gt;The second response page is an example of an application that uses the provided form parameter only for constructing a link to another web page. Here, the simple script is included within the attribute href of an anchor HTML tag. Thus, the script will not be executed as it is not correctly embedded within the page's HTML tree. Therefore, the application is not reported as being vulnerable by the Simple Reflected XSS Attack module.&lt;br /&gt;3 Encoded Reflected XSS AttackMost web applications employ some sort of input sanitization. This might be due to filtering routines applied by the developers, or due to automatic filtering performed by PHP environments with appropriate configuration settings. In either case, the Encoded Reflected XSS Attack plug-in attempts to bypass simple input filtering by using HTML encodings (see the XSS cheat sheet [19]). For instance, Table 2 shows different ways of encoding the the ``&lt;'' character. One disadvantage of using encoded characters is that not all browsers interpret them in the same way (many encodings only work in Internet Explorer and Opera).&lt;br /&gt;&lt;br /&gt;Table 2: HTML Character Encodings Table  Encoding Type Encoded Variant of '&lt;' URL Encoding %3C HTML Entity 1 &lt; HTML Entity 2 &lt; HTML Entity 3 &lt; HTML Entity 4 &lt; Decimal Encoding 1 &lt; Decimal Encoding 2 &lt; Decimal Encoding 3 &lt; Decimal Encoding X ... Hex Encoding 1 &lt; Hex Encoding 2 &lt; Hex Encoding 3 &amp;amp;#X3c Hex Encoding X ... Unicode 16#16u003c &lt;br /&gt;&lt;br /&gt;The injection string used for the encoded XSS attack is constructed using standard decimal encoding and can be seen in Listing 9. Apart from encoded characters, it also uses a mix of uppercase and lowercase letters to further camouflage the keyword script.&lt;br /&gt;&lt;br /&gt;Listing 9: Encoded XSS Attack Injection String //&lt;script&gt; alert('XSS')&lt;/script&gt;//&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4 Form-Redirecting XSS AttackBoth the Simple Reflected XSS Attack and the Encoded Reflected XSS Attack presented so far only check if some sort of input sanitization is performed by a web application. Thus, they check for the possibility of launching a reflected XSS attack on the web site in general. However, because XSS is a client-side vulnerability, some consider XSS to be a minor problem if there exists no sensitive user information that can be stolen (such as session IDs, cookies, or user credentials). In the XSS form-redirecting attack, we address this problem by specifically targeting web sites that expect some sort of sensitive information from their users. Once a vulnerability is detected, an exploit URL is automatically generated that can be used to verify that the web application is indeed vulnerable to a reflected XSS attack.&lt;br /&gt;Our assumption is that if there exists an HTML input field of type password in a web form, there is a good chance that the web application expects sensitive input that is of value to the attacker. Hence, if an XSS vulnerability is also present, a malicious script can be injected into the application to steal this information.&lt;br /&gt;For the attack, we inject JavaScript code that performs a form-redirecting attempt. That is, a malicious script is injected that alters the form target such that submitted data is sent to a server under the attacker's control. After the attack, the analysis module parses the response page to determine if the injection has succeeded by inspecting the contents of the response page. Listing 10 shows the injection string that is used during the attack.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The injected script makes use of a number of techniques to bypass input validation routines: First, similar to the attack string presented in the previous section, certain characters are encoded. More precisely, the quotes required for redirecting the form using JavaScript are HTML encoded ("). Also, the injection string uses lower-case and upper-case letters to avoid detection of keywords such as javascript. Besides these camouflage tricks, the script is not directly embedded between &lt;script&gt;...&lt;/script&gt; tags. Instead, it is inserted as the source attribute of an image. When the browser attempts to load the image, it has to evaluate the included SRC attribute, and therefore, executes the JavaScript part. This technique evades input filters that explicitly parse the input string for the occurrence of script tags. Finally, the quotes around the SRC attribute are omitted. Almost all browsers tolerate such errors, while it could confuse input filters.&lt;br /&gt;A web page may contain multiple, independent web forms that possess different form targets. Depending on its location in the page, each form can be uniquely identified and referenced by its form index (e.g., if the page only contains a single form, its form index will be 0). In order for the form-redirecting attack to succeed, it is sufficient for any of the web forms on a page to be vulnerable. Using a vulnerability in one form, the target of that web form that contains the sensitive information (even if it is a different one) can be redirected.&lt;br /&gt;As an example, suppose that a web page contains two separate forms: one search form and one login form, where a user needs to enter her username and password. Both forms appear on the same page of the web site. Let us further assume that the developers of the login form were aware of common security issues. As a result, ``dangerous'' characters such as the less-than or greater-than characters (i.e., &lt;, &gt;), single quotes (i.e., '), and double quotes (i.e., ``), are filtered. Thus, the login form is not immediately vulnerable to simple XSS attacks.&lt;br /&gt;Now, imagine that the site maintainers are using a popular, off-the-shelf search engine that indeed has an XSS vulnerability. Every search query that is entered into the search form is reflected back to the user in the browser (e.g., ``You searched for XSS''), and no input validation is performed (as discussed in Section 2.2).&lt;br /&gt;In our example, the vulnerable form is located before the login form. Therefore, its form index is 0 while the form index of the login form is 1. When SecuBat is used to scan for vulnerabilities on this web site, it will discover that the search form (form 0) is vulnerable to reflected XSS. Based on this vulnerability, an exploit URL is created that injects JavaScript into a parameter of the search form to redirect the target of the login form to an arbitrary web site. When the victim eventually submits her login credentials, they are transmitted to a site that is under the control of the attacker&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Assuming that the vulnerable web page is accessible under &lt;a href="http://www.vulnerable-page.com/search.pl"&gt;http://www.vulnerable-page.com/search.pl&lt;/a&gt;, Listing 11 shows a simplified version of the generated exploit URL (the actual URL is encoded and more difficult to read). When this exploit URL is requested, malicious JavaScript is injected into the CGI parameter query of the search form. When this script is later executed, it rewrites the target (i.e., action) parameter of the login form (with the index 1). When the user enters the login credentials and then submits the information, the sensitive data will be sent to the domain &lt;a href="http://www.evil.org/evil.cgi"&gt;http://www.evil.org/evil.cgi&lt;/a&gt; and can be recorded by the attacker. Of course, this exploit URL could be distributed via phishing e-mails to thousands of potential victims with the request to update their information.&lt;br /&gt;5 ImplementationSecuBat was implemented as a Windows Forms .NET application in C# using Microsoft' advantages:&lt;br /&gt;Efficient logging of crawling data. Easy report-generation of crawling and attack runs. Custom querying of analysis results. No loss of historical data (i.e., each crawling and attack run is kept in the database, and each activity can be reconstructed easily). In order to keep the design open and flexible, we used a generic and modular architecture. The tool consists of a crawling and an attack part, which can be invoked separately. Through this architectural decision, it is possible to do a single crawling run (i.e., without attacking), to do a single attack run on a previously saved crawling run, or to schedule a complete combined crawling and attack run.&lt;br /&gt;As far as performance is concerned, SecuBat is able to launch 15 to 20 parallel attack and response sessions on a typical desktop computer without reaching full load.&lt;br /&gt;During the crawling process, the tool uses a dedicated crawling queue. This queue is filled with crawling tasks for each web page that is to be analyzed for referring links and potential target forms. A queue controller periodically checks the queue for new tasks and passes them on to a thread controller. This thread controller then selects a free worker thread, which then executes the analysis task. Each completed task notifies the workflow controller about the discovered links and forms in the page. The workflow controller then generates new crawling tasks as needed.&lt;br /&gt;As discussed previously, arbitrary attack and analysis algorithms can be implemented and inserted into the architecture as plug-ins. As depicted in Figure 3, attacking tasks are created for each target web form and each selected attack plug-in. These tasks are then inserted into a separate attacking queue. Similarly to the crawling component, a queue controller processes the tasks in the queue and passes them on to available worker threads via the common thread controller.&lt;br /&gt;Figure 3: SecuBat Attacking Architecture   &lt;br /&gt;At execution time, the attacking task creates new instances of the attack and analysis components of the selected plug-in using .NET reflection [7]. It then calls their run methods. After the attack and analysis components complete their work, the task stores the detection results into the database for subsequent reporting and data mining.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/img1029a_JKoP5_21985.jpg" alt="img1029a" /&gt;&lt;br /&gt;&lt;br /&gt;6 EvaluationTo evaluate the effectiveness of our web application vulnerability scanner, we performed a combined crawling and attack run using all of the four previously described attack plug-ins (see Section 4). We started the crawling process by using a Google response page as the seed page (i.e., we searched for the word ``login'' and fed the response page to our crawler) and collected 25,064 web pages, which included 21,627 distinct web forms. Then, we initiated automatic attacks on the web applications. Table 3 shows the results of our experiment. Each analysis module identified between 4% and 7% of the 21,627 different web forms to be potentially vulnerable to the corresponding attack.&lt;br /&gt;Acunetix checks for all web vulnerabilities including SQL injection, Cross site scripting and others. SQL injection is a hacking technique which modifies SQL commands in order to gain access to data in the database. Cross site scripting attacks allow a hacker to execute a malicious script on your visitorâ€™s browser.&lt;br /&gt;Detection of these vulnerabilities requires a sophisticated detection engine. Paramount to web vulnerability scanning is not the number of attacks that a scanner can detect, but the complexity and thoroughness with the scanner launches SQL injection, Cross Site scripting and other attacks. Acunetix has a state of the art vulnerability detection engine which quickly finds vulnerabilities with a low number of false positives. It also locates CRLF injection, Code execution, Directory Traversal, File inclusion,&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/11/wvs-sql_injection_rWIhU_21985.gif" alt="wvs sql_injection" /&gt;&lt;br /&gt;&lt;br /&gt;The SQL injection vulnerability rate includes all results containing a confidence value greater than zero. Obviously, false positives are possible in the simple SQL injection attack that we launched. This is because there can be web pages in the result list that contain some of the key phrases without actually being vulnerable. If this fact is taken into account and a higher threshold of 150 is used, a (more realistic) vulnerability rate of 1.45% is seen. In contrast to the SQL injection findings, the XSS attack results are more precise. If we are able to inject scripting code into a form and this script is reflected unmodified by the application, we can assume with a high degree of confidence that the attack was successful. A detection rate of 5.52% for the form-redirecting XSS attack, for example, shows that SecuBat only needed several hours to find 1,193 distinct web forms with password fields that can be exploited with a reflected XSS attack. To verify the accuracy of SecuBat in detecting XSS vulnerabilities, we picked one hundred interesting web sites from the potential victim list for further analysis and manually confirmed exploitable flaws in the identified web pages. Among our victims were well-known global companies, computer security organizations, and governmental and educational institutions. One of our XSS victims was a global online auctioning company that has received wide media coverage because it is a popular target of phishing attacks. This company has set up an ``anti-phishing'' web page to educate its users about phishing attacks. Ironically, there was an exploitable XSS vulnerability on this page that could be used to launch authentic phishing attacks against the company. That is, the phishing web page could be reflected off the company's own server, making it very difficult for users or anti-phishing solutions to identify the page as being malicious. In fact, we wrote an exploit URL to embed a fake login form into the company's web page.&lt;br /&gt;Another interesting XSS victim was a portal of a finance ministry. Its web server was configured to only use SSL (i.e., HTTPS) when replying to web requests. We considered this as an indication that the maintainers of the site were security-conscious, dealing with sensitive information such as user names, social security numbers and passwords. Unfortunately, a form on one of their pages was not performing any input filtering, and it was easy for us to exploit the reflected XSS vulnerability by injecting code to hijack the login form."SQL injection, a technique that utilizes and exploits security vulnerability taking place in the database layer of an application, usually occurs when you trust user input. Vulnerabilities may result from a computer virus, weak passwords, software bugs or other script code injection that violates the integrity of the system. The vulnerability exists when user input is filtered improperly for string literal escape characters embedded in SQL statements or if user input is not strongly typed resulting to be unexpectedly executed. It is an instance of a more general class of vulnerabilities that can happen every time a scripting or programming language is embedded inside another"&lt;br /&gt;&lt;br /&gt;After the manual validation process of the discovered vulnerabilities, we attempted to contact the maintainers of the affected web sites to inform them of our findings. To this end, we extracted the corresponding contact information for the victim domains from the WHOIS database and sent automated e-mails using a script. In these e-mails, we provided general information about the type of vulnerability on the web site (e.g., XSS) and kindly asked the site maintainers to contact us for more details. In some cases, unfortunately, we were not able to extract the contact details from the WHOIS database. In these cases, we made an attempt to contact the default office e-mail address (e.g., &lt;a href="mailto:office@somesite.com"&gt;office@somesite.com&lt;/a&gt;).&lt;br /&gt;After one week, we had received 52 inquiries for more details. We replied to these inquiries and provided in-depth information on the vulnerabilities we discovered. Interestingly, although some companies that we informed were thankful and swift in fixing the vulnerabilities, we observed that some did not (i.e., could not or were not willing to) take immediate action. For example, while we are preparing the final version of this paper, the vulnerabilities of the finance ministry and the global auctioning company are still not fixed. The demonstration exploits that we prepared for these organizations are still functional. Of course, we cannot provide any specific details on these vulnerabilities or the organizations.&lt;br /&gt;Note that we did not do any manual verification of the SQL vulnerabilities that we identified. The reason is that exploiting an SQL vulnerability typically requires to inject SQL statements into operational databases. In such attacks, there always exists the possibility of damaging data records or breaking the database integrity. This appeared too risky from an ethical and legal point of view. A real attacker, in contrast, surely would not have such reservations.&lt;br /&gt;Our findings suggest how easy and effective it is for an attacker to automatically find potentially vulnerable web sites in a matter of hours. A longer and more focused attack run using high-performance servers, a high-bandwidth uplink, and several weeks of scanning would probably create a list containing several hundred thousand potentially vulnerable web sites. The recent waves of phishing attacks clearly show that there are many attackers on the Internet looking for easy targets.&lt;br /&gt;7 A Case StudyWhen we examined the results of our evaluation run, we discovered that a well-known and popular Austrian price comparison web portal, &lt;a href="http://www.geizhals.at/"&gt;www.geizhals.at&lt;/a&gt;, was among our victims. According to the results of SecuBat, Geizhals was vulnerable to reflected XSS attacks. The detailed set of analysis results of the test run is given in Table 4.&lt;br /&gt;&lt;img src="http://www.instablogsimages.com/images/2009/06/11/sql_hacker_image_3_aHURL_21985.jpg" alt="sql_hacker_image_3" /&gt;&lt;br /&gt;&lt;br /&gt; Geizhals General Analysis Results  Result Field Value Attack Plug-in Form-Redirecting XSS Attack Page URL &lt;a href="http://www.geizhals.at/"&gt;http://www.geizhals.at&lt;/a&gt; Form Index in Page 0 Form Action &lt;a href="http://www.geizhals.at/"&gt;http://www.geizhals.at&lt;/a&gt; Form Method GET Parameter Name fs Parameter Value &lt;img src="JaVaScRiPt:..." /&gt; Response Code 200 Response Duration 4,031 ms Analysis Result 100&lt;br /&gt;Using the information provided by SecuBat, it is easy to reconstruct what steps were performed in this automated attack:&lt;br /&gt;By means of the form-redirecting XSS attack plug-in, a successful attack against the first web form (with index 0) on the page &lt;a href="http://www.geizhals.at/"&gt;http://www.geizhals.at&lt;/a&gt; was executed. In this attack, the form parameter fs was used to inject the XSS exploit &lt;img src="JaVaScRiPt:..." /&gt; (see Section 4.4). The server responded with a 200 OK code after 4,031 ms and returned a response page. The analysis module identified the injected code embedded in the response page at a location that allows the execution of the injected script. Thus, the attack was rated as successful. The complete analysis result text including SecuBat identifiers of web forms containing sensitive data (password fields) is shown in Listing 12.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/system20architecture_jkAcK_21985.jpg" alt="system20architecture" /&gt;&lt;br /&gt;&lt;br /&gt;Using the automatically generated URL that is shown in Listing 13, the attack can be re-executed manually by pasting this URL into the location field of a web browser. When the browser requests the URL, malicious JavaScript is injected into a vulnerable form field, and reflected back from the server. The browser then displays the login page, which appears innocuous to an unsuspecting user (see Figure 4). However, the malicious JavaScript has been executed unnoticed, and changed the target of the login web form (with index 2) to the non-existing action address evil.org.&lt;br /&gt;Note that in an actual attack, the attacker could have easily copy-pasted this URL into a phishing e-mail [14] with the text ``Please click on the link and update your information'' and sent it to thousands of users. When users click on the link and enter their credentials on the legitimate web site, the browser posts the entered sensitive information to the redirected attacker address.&lt;br /&gt;In this proof-of-concept real-world case study, we used the non-existent target address evil.org. Thus, when the user finally submits her login credentials, the server returns a 404 Not Found page (see Figure 5, and in particular, observe the location field of the browser). This clearly demonstrates that geizhals.at indeed is (i.e., was) vulnerable to the attack and that the automatically generated exploit URL is functional. After we contacted Geizhals with the details of the vulnerability, their security team promptly fixed the issue in November 2005.&lt;br /&gt;Figure 5: Successful form-redirection attack to a non-existing URL   &lt;br /&gt;8 Related WorkThere exist a large number of vulnerability detection and security assessment tools. Most of these tools (e.g., Nikto [18] or Nessus [22]) rely on a repository of known vulnerabilities that are tested. This is in contrast to SecuBat, which is focused on the identification of a broad range of general application-level vulnerabilities. In addition to application-level vulnerability scanners, there are also tools that audit hosts on the network level. For example, tools such as NMap [13] or Xprobe [24] can determine the availability of hosts and accessible services. However, they are not concerned with higher-level vulnerability analysis.&lt;br /&gt;There are commercial web application vulnerability scanner available on the market that claim to provide functionality similar to SecuBat (e.g., Acunetix Web Vulnerability Scanner [15]). Unfortunately, due to the closed-source nature of these systems, many of the claims cannot be verified, and an in-depth comparison with SecuBat is difficult. For example, it appears that the cross-site scripting analysis performed by Acunetix is much simpler than the complete attack scenario presented in this paper. Also, no working proof-of-concept exploits are generated.&lt;br /&gt;In [20], Scott and Sharp discuss web vulnerabilities such as XSS. They propose to deploy application-level firewalls that use manual policies to secure web applications. Their approach would certainly protect applications against a vulnerability scanner such as SecuBat. However, the problem of their approach is that it is a tedious and error-prone task to create suitable policies.&lt;br /&gt;Huang et al. [12] present a vulnerability detection tool that automatically executes SQL injection attacks. As far as SQL injection is concerned, our work is similar to theirs. However, their scanner is not as comprehensive as our tool because it lacks any detection mechanisms for XSS vulnerabilities where script code is injected into applications. The focus of their work, rather, is the detection of application-level vulnerabilities that may allow the attacker to invoke operating-level system calls (e.g., such as opening a file) for malicious purposes.&lt;br /&gt;9 Future WorkFor the future, we are planning to implement more attack plug-ins (e.g., to check for directory traversal vulnerabilities). Also, there is certainly some room for improvement in the performance and throughput of the tool.&lt;br /&gt;We are also currently setting up a web site where the proof-of-concept implementation of SecuBat can be downloaded from. Although we are aware that SecuBat can be used for malicious purposes (just as other open source security tools such as NMap [13] or Nikto [18]), we believe that it can provide valuable help for web application developers to audit the security of their application.&lt;br /&gt;10 ConclusionMany web application security vulnerabilities result from generic input validation problems. Examples of such vulnerabilities are SQL Injection and Cross-Site Scripting (XSS). Although the majority of web vulnerabilities are easy to understand and avoid, many web developers are, unfortunately, not security-aware and there is general consensus that there exist a large number of vulnerable applications and web sites on the web.&lt;br /&gt;The main contribution of this paper is to show how easy it is for attackers to automatically discover and exploit application-level vulnerabilities in a large number of web applications. To this end, we presented SecuBat, a generic and modular web vulnerability scanner that analyzes web sites for exploitable SQL and XSS vulnerabilities. We used SecuBat to identify a large number of potentially vulnerable web sites. Moreover, we selected one hundred of these web sites for further analysis and manually confirmed exploitable flaws in the identified web pages. Among our victims were well-known global companies, computer security organizations, and governmental and educational institutions.&lt;img src="http://www.instablogsimages.com/images/2009/06/11/sql_injection_02_sutT4_21985.gif" alt="sql_injection_02" /&gt;&lt;br /&gt;We believe that it is only a matter of time before attackers start using automated vulnerability scanning tools such as SecuBat to discover web vulnerabilities that they can exploit. Such vulnerabilities, for example, could be used to launch phishing attacks that are difficult to identify even by technically more sophisticated users. With this paper, we hope to raise awareness and provide a tool available to web site administrators and web developers to proactively audit the security of their applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-8752047927119892415?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/8752047927119892415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/injection-in-sql-php-by-reveal-codes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8752047927119892415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/8752047927119892415'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/injection-in-sql-php-by-reveal-codes.html' title='INJECTION IN SQL - PHP BY REVEAL CODES'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-2813766891120636382</id><published>2009-06-02T06:25:00.000-07:00</published><updated>2009-06-02T06:26:55.887-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEEE Workshops on Wireless LAN'/><title type='text'>IEEE Workshops on Wireless LAN</title><content type='html'>"The first of the IEEE Workshops on Wireless LAN was held in 1991. At that time early wireless LAN products had just appeared in the market and the IEEE 802.11 committee had just started its activities to develop a standard for wireless LANs. The focus of that first workshop was evaluation of the alternative technologies. By 1996, the technology was relatively mature,&lt;br /&gt;&lt;img alt="telecommunications32181191" src="http://www.instablogsimages.com/images/2009/06/02/telecommunications32181191_UO9j9_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a variety of applications had been identified and addressed and technologies that enable these applications were well understood. Chip sets aimed at wireless LAN implementations and applications, a key enabling technology for rapid market growth, were emerging in the market. Wireless LANs were being used in hospitals, stock exchanges, and other in building and campus settings for nomadic access, point-to-point LAN bridges, ad-hoc networking, and even larger applications through internetworking. The IEEE 802.11&lt;br /&gt;&lt;img alt="93_wlan_fig1_lg" src="http://www.instablogsimages.com/images/2009/06/02/93_wlan_fig1_lg_YALGT_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;standard and variants and alternatives, such as the wireless LAN interoperability forum and the European HiperLAN specification had made rapid progress, and the unlicensed PCS Unlicensed Personal Communications Services and the proposed SUPERNet, later on renamed as U-NII, bands also presented new opportunities."[3]&lt;br /&gt;&lt;img alt="32954b" src="http://www.instablogsimages.com/images/2009/06/02/32954b_5uz7W_21985.x-png" /&gt;&lt;br /&gt;&lt;br /&gt;Originally WLAN hardware was so expensive that it was only used as an alternative to cabled LAN in places where cabling was difficult or impossible. Early development included industry-specific solutions and proprietary protocols, but at the end of the 1990s these were replaced by standards, primarily the various versions of IEEE 802.11 (Wi-Fi). An alternative ATM-like 5 GHz standardized technology, HiperLAN/2, has so far not succeeded in the market, and with the release of the faster 54 Mbit/s 802.11a (5 GHz) and 802.11g (2.4 GHz) standards, almost certainly never will.&lt;br /&gt;&lt;img alt="cisco enterprise wlan diagram" src="http://www.instablogsimages.com/images/2009/06/02/cisco-enterprise-wlan-diagram_ocjjE_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;In November 2007, the Australian Commonwealth Scientific and Industrial Research Organisation (CSIRO) won a legal battle in the US federal court of Texas against Buffalo Technology which found the US manufacturer had failed to pay royalties on a US WLAN patent CSIRO had filed in 1996. CSIRO then engaged in legal action against fourteen other computer companies including Microsoft, Intel, Dell, Hewlett-Packard and Netgear who argued that the patent is invalid and should negate any royalties paid to CSIRO for WLAN-based products.[4] In 2009, these cases were settled out of court which may see billions in royalties flow to CSIRO. In a statement to the media, CSIRO Chief Excectutive Megan Clark said that "CSIRO will continue to defend intellectual property developed from research undertaken on behalf of the Australian taxpayer." [5]&lt;br /&gt;&lt;br /&gt;&lt;img alt="avm_fritzbox_fon_wlan_7270_02_engl" src="http://www.instablogsimages.com/images/2009/06/02/avm_fritzbox_fon_wlan_7270_02_engl_zqLP9_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Benefits&lt;br /&gt;The popularity of wireless LANs is a testament primarily to their convenience, cost efficiency, and ease of integration with other networks and network components. The majority of computers sold to consumers today come pre-equipped with all necessary wireless LAN technology. Benefits of wireless LANs include:&lt;br /&gt;&lt;br /&gt;Convenience&lt;br /&gt;The wireless nature of such networks allows users to access network resources from nearly any convenient location within their primary networking environment (home or office). With the increasing saturation of laptop-style computers, this is particularly relevant.&lt;br /&gt;Mobility&lt;br /&gt;With the emergence of public wireless networks, users can access the internet even outside their normal work environment. Most chain coffee shops, for example, offer their customers a wireless connection to the internet at little or no cost.&lt;br /&gt;Productivity&lt;br /&gt;Users connected to a wireless network can maintain a nearly constant affiliation with their desired network as they move from place to place. For a business, this implies that an employee can potentially be more productive as his or her work can be accomplished from any convenient location. For example, a hospital or warehouse may implement Voice over WLAN applications that enable mobility and cost savings.[6]&lt;br /&gt;Deployment&lt;br /&gt;Initial setup of an infrastructure-based wireless network requires little more than a single access point. Wired networks, on the other hand, have the additional cost and complexity of actual physical cables being run to numerous locations (which can even be impossible for hard-to-reach locations within a building).&lt;br /&gt;Expandability&lt;br /&gt;Wireless networks can serve a suddenly-increased number of clients with the existing equipment. In a wired network, additional clients would require additional wiring.&lt;br /&gt;Cost&lt;br /&gt;Wireless networking hardware is at worst a modest increase from wired counterparts. This potentially increased cost is almost always more than outweighed by the savings in cost and labor associated to running physical cables.&lt;br /&gt;&lt;br /&gt;Disadvantages&lt;br /&gt;Wireless LAN technology, while replete with the conveniences and advantages described above, has its share of downfalls. For a given networking situation, wireless LANs may not be desirable for a number of reasons. Most of these have to do with the inherent limitations of the technology.&lt;br /&gt;&lt;img alt="img1010a" src="http://www.instablogsimages.com/images/2009/06/02/img1010a_W8Rl9_21985.jpg" align="right" /&gt;&lt;br /&gt;Security&lt;br /&gt;Wireless LAN transceivers are designed to serve computers throughout a structure with uninterrupted service using radio frequencies. Because of space and cost, the antennas typically present on wireless networking cards in the end computers are generally relatively poor. In order to properly receive signals using such limited antennas throughout even a modest area, the wireless LAN transceiver utilizes a fairly considerable amount of power. What this means is that not only can the wireless packets be intercepted by a nearby adversary's poorly-equipped computer, but more importantly, a user willing to spend a small amount of money on a good quality antenna can pick up packets at a remarkable distance; perhaps hundreds of times the radius as the typical user. In fact, there are even computer users dedicated to locating and sometimes even cracking into wireless networks, known as wardrivers. On a wired network, any adversary would first have to overcome the physical limitation of tapping into the actual wires, but this is not an issue with wireless packets. To combat this consideration, wireless networks users usually choose to utilize various encryption technologies available such as Wi-Fi Protected Access (WPA). Some of the older encryption methods, such as WEP are known to have weaknesses that a dedicated adversary can compromise. (See main article: Wireless security.)&lt;br /&gt;Range&lt;br /&gt;The typical range of a common 802.11g network with standard equipment is on the order of tens of metres. While sufficient for a typical home, it will be insufficient in a larger structure. To obtain additional range, repeaters or additional access points will have to be purchased. Costs for these items can add up quickly. Other technologies are in the development phase, however, which feature increased range, hoping to render this disadvantage irrelevant. (See WiMAX)&lt;br /&gt;Reliability&lt;br /&gt;Like any radio frequency transmission, wireless networking signals are subject to a wide variety of interference, as well as complex propagation effects (such as multipath, or especially in this case Rician fading) that are beyond the control of the network administrator. Among the most insidious problems that can affect the stability and reliability of a wireless LAN are microwave ovens[7] and analog wireless transmitters such as baby monitors[8]. In the case of typical networks, modulation is achieved by complicated forms of phase-shift keying (PSK) or quadrature amplitude modulation (QAM), making interference and propagation effects all the more disturbing. As a result, important network resources such as servers are rarely connected wirelessly.&lt;br /&gt;Speed&lt;br /&gt;The speed on most wireless networks (typically 1-108 Mbit/s) is reasonably slow compared to the slowest common wired networks (100 Mbit/s up to several Gbit/s). There are also performance issues caused by TCP and its built-in congestion avoidance. For most users, however, this observation is irrelevant since the speed bottleneck is not in the wireless routing but rather in the outside network connectivity itself. For example, the maximum ADSL throughput (usually 8 Mbit/s or less) offered by telecommunications companies to general-purpose customers is already far slower than the slowest wireless network to which it is typically connected. That is to say, in most environments, a wireless network running at its slowest speed is still faster than the internet connection serving it in the first place. However, in specialized environments, higher throughput through a wired network might be necessary. Newer standards such as 802.11n are addressing this limitation and will support peak throughput in the range of 100-200 Mbit/s.&lt;br /&gt;&lt;br /&gt;&lt;img alt="vpn wlan 1" src="http://www.instablogsimages.com/images/2009/06/02/vpn-wlan-1_dDcV1_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Architecture&lt;br /&gt;&lt;br /&gt;Stations&lt;br /&gt;All components that can connect into a wireless medium in a network are referred to as stations.&lt;br /&gt;&lt;br /&gt;All stations are equipped with wireless network interface cards (WNICs).&lt;br /&gt;&lt;img alt="200135480 001" src="http://www.instablogsimages.com/images/2009/06/02/200135480-001_AD6TX_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Wireless stations fall into one of two categories: access points, and clients.&lt;br /&gt;&lt;br /&gt;Access points (APs), normally routers, are base stations for the wireless network. They transmit and receive radio frequencies for wireless enabled devices to communicate with.&lt;br /&gt;&lt;br /&gt;Wireless clients can be mobile devices such as laptops, personal digital assistants, IP phones, or fixed devices such as desktops and workstations that are equipped with a wireless network interface.&lt;br /&gt;&lt;img alt="di 624_view" src="http://www.instablogsimages.com/images/2009/06/02/di-624_view_NaiE9_21985.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basic service set&lt;br /&gt;The basic service set (BSS) is a set of all stations that can communicate with each other.&lt;br /&gt;&lt;br /&gt;There are two types of BSS: Independent BSS (also referred to as IBSS), and infrastructure BSS.&lt;br /&gt;&lt;br /&gt;Every BSS has an identification (ID) called the BSSID, which is the MAC address of the access point servicing the BSS.&lt;br /&gt;&lt;br /&gt;An independent BSS (IBSS) is an ad-hoc network that contains no access points, which means they can not connect to any other basic service set.&lt;br /&gt;&lt;br /&gt;An infrastructure can communicate with other stations not in the same basic service set by communicating through access points.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Extended service set&lt;br /&gt;An extended service set (ESS) is a set of connected BSSes. Access points in an ESS are connected by a distribution system. Each ESS has an ID called the SSID which is a 32-byte (maximum) character string.&lt;br /&gt;&lt;br /&gt;Distribution system&lt;br /&gt;A distribution system (DS) connects access points in an extended service set. The concept of a DS can be used to increase network coverage through roaming between cells.&lt;br /&gt;&lt;br /&gt;&lt;img alt="nic vc" src="http://www.instablogsimages.com/images/2009/06/02/nic-vc_MHehu_21985.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Types of wireless LANs&lt;br /&gt;Peer-to-peer&lt;br /&gt;&lt;br /&gt;Peer-to-Peer or ad-hoc wireless LANAn ad-hoc network is a network where stations communicate only peer to peer (P2P). There is no base and no one gives permission to talk. This is accomplished using the Independent Basic Service Set (IBSS).&lt;br /&gt;&lt;br /&gt;A peer-to-peer (P2P) network allows wireless devices to directly communicate with each other. Wireless devices within range of each other can discover and communicate directly without involving central access points. This method is typically used by two computers so that they can connect to each other to form a network.&lt;br /&gt;&lt;br /&gt;If a signal strength meter is used in this situation, it may not read the strength accurately and can be misleading, because it registers the strength of the strongest signal, which may be the closest computer.&lt;br /&gt;&lt;br /&gt;802.11 specs define the physical layer (PHY) and MAC (Media Access Control) layers. However, unlike most other IEEE specs, 802.11 includes three alternative PHY standards: diffuse infrared operating at 1 Mbit/s in; frequency-hopping spread spectrum operating at 1 Mbit/s or 2 Mbit/s; and direct-sequence spread spectrum operating at 1 Mbit/s or 2 Mbit/s. A single 802.11 MAC standard is based on CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). The 802.11 specification includes provisions designed to minimize collisions. Because two mobile units may both be in range of a common access point, but not in range of each other. The 802.11 has two basic modes of operation: Ad hoc mode enables peer-to-peer transmission between mobile units. Infrastructure mode in which mobile units communicate through an access point that serves as a bridge to a wired network infrastructure is the more common wireless LAN application the one being covered. Since wireless communication uses a more open medium for communication in comparison to wired LANs, the 802.11 designers also included shared-key encryption mechanisms: Wired Equivalent Privacy (WEP), Wi-Fi Protected Access (WPA, WPA2), to secure wireless computer networks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bridge&lt;br /&gt;A bridge can be used to connect networks, typically of different types. A wireless Ethernet bridge allows the connection of devices on a wired Ethernet network to a wireless network. The bridge acts as the connection point to the Wireless LAN.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wireless distribution system&lt;br /&gt;A Wireless Distribution System is a system that enables the wireless interconnection of access points in an IEEE 802.11 network. It allows a wireless network to be expanded using multiple access points without the need for a wired backbone to link them, as is traditionally required. The notable advantage of WDS over other solutions is that it preserves the MAC addresses of client packets across links between access points. [9]&lt;br /&gt;&lt;br /&gt;An access point can be either a main, relay or remote base station. A main base station is typically connected to the wired Ethernet. A relay base station relays data between remote base stations, wireless clients or other relay stations to either a main or another relay base station. A remote base station accepts connections from wireless clients and passes them to relay or main stations. Connections between "clients" are made using MAC addresses rather than by specifying IP assignments.&lt;br /&gt;&lt;br /&gt;All base stations in a Wireless Distribution System must be configured to use the same radio channel, and share WEP keys or WPA keys if they are used. They can be configured to different service set identifiers. WDS also requires that every base station be configured to forward to others in the system.&lt;br /&gt;&lt;br /&gt;WDS may also be referred to as repeater mode because it appears to bridge and accept wireless clients at the same time (unlike traditional bridging). It should be noted, however, that throughput in this method is halved for all clients connected wirelessly.&lt;br /&gt;&lt;br /&gt;When it is difficult to connect all of the access points in a network by wires, it is also possible to put up access points as repeaters.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Roaming&lt;br /&gt;&lt;br /&gt;Roaming between Wireless Local Area NetworksThere are 2 definitions for wireless LAN roaming:&lt;br /&gt;&lt;br /&gt;Internal Roaming (1): The Mobile Station (MS) moves from one access point (AP) to another AP within a home network because the signal strength is too weak. An authentication server (RADIUS) assumes the re-authentication of MS via 802.1x (e.g. with PEAP). The billing of QoS is in the home network. A Mobile Station roaming from one access point to another often interrupts the flow of data between the Mobile Station and an application connected to the network. The Mobile Station, for instance, periodically monitors the presence of alternative access points (ones that will provide a better connection). At some point, based upon proprietary mechanisms, the Mobile Station decides to re-associate with an access point having a stronger wireless signal. The Mobile Station, however, may lose a connection with an access point before associating with another access point. In order to provide reliable connections with applications, the Mobile Station must generally include software that provides session persistence.[10]&lt;br /&gt;External Roaming (2): The MS(client) moves into a WLAN of another Wireless Internet Service Provider (WISP) and takes their services (Hotspot). The user can independently of his home network use another foreign network, if this is open for visitors. There must be special authentication and billing systems for mobile services in a foreign network.[11]&lt;br /&gt;&lt;img alt="rm240_2wlan_test" src="http://www.instablogsimages.com/images/2009/06/02/rm240_2wlan_test_IQNur_21985.x-png" /&gt;&lt;br /&gt;&lt;br /&gt;Exposed terminal problem&lt;br /&gt;Fixed Wireless Data&lt;br /&gt;Hidden terminal problem&lt;br /&gt;Wireless Access Point&lt;br /&gt;Wi-Fi Array&lt;br /&gt;Local area network&lt;br /&gt;Shared mesh&lt;br /&gt;Switched mesh&lt;br /&gt;Wireless LAN client comparison&lt;br /&gt;Wireless network&lt;br /&gt;Hotspot (Wi-Fi)&lt;br /&gt;USB&lt;br /&gt;Wireless electronic devices and health.&lt;br /&gt;Drivers: HostAP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8553936691209849313-2813766891120636382?l=alokrajmca.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alokrajmca.blogspot.com/feeds/2813766891120636382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/ieee-workshops-on-wireless-lan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2813766891120636382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8553936691209849313/posts/default/2813766891120636382'/><link rel='alternate' type='text/html' href='http://alokrajmca.blogspot.com/2009/06/ieee-workshops-on-wireless-lan.html' title='IEEE Workshops on Wireless LAN'/><author><name>ALOKRAJ</name><uri>http://www.blogger.com/profile/18118303401886383151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_XbdOXdG5XQs/SgvbZ02sxMI/AAAAAAAABRs/V7gVpyVpYz4/S220/IMG0931A.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8553936691209849313.post-2865878745814257725</id><published>2009-05-27T03:43:00.000-07:00</published><updated>2009-05-27T03:45:31.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hydro technology'/><title type='text'>Water-fuelled car: alokraj</title><content type='html'>&lt;strong&gt;Water-fuelled car:&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A water-fuelled car is an automobile that supposedly derives its energy directly from water. Water-fuelled cars have been mentioned in newspapers, popular science magazines, local news coverage, and the internet; at least some of the claims were found to be tied to investment frauds. These vehicles may be claimed to produce fuel from water onboard with no other energy input, or may be a hybrid of sorts claiming to get energy from both water and a conventional source (such as gasoline). This article focuses on vehicles which claim to extract chemical energy directly from water, a process which would violate the first and/or second laws of thermodynamics.&lt;/strong&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="img0979a" src="http://www.instablogsimages.com/images/2009/05/27/img0979a_qQbMj_21985.jpg" align="right" /&gt;&lt;br /&gt;What water-fuelled cars are not&lt;br /&gt;A water-fueled car is not any of the following:&lt;br /&gt;&lt;br /&gt;Water injection which is a method for cooling the combustion chambers of engines by adding water to the incoming fuel-air mixture, allowing for greater compression ratios and reduced engine knocking (detonation).&lt;br /&gt;The hydrogen car, although it often incorporates some of the same elements. To fuel a hydrogen car from water, energy from a power plant is used to generate hydrogen by electrolysis. The resulting hydrogen is then either burned in the car's engine or merged with oxygen to create water via a fuel cell. The car ultimately receives its energy from the power plant, with the hydrogen acting as an energy carrier.&lt;br /&gt;Hydrogen fuel enhancement systems.&lt;br /&gt;&lt;img alt="195874f520pg7" src="http://www.instablogsimages.com/images/2009/05/27/195874f520pg7_NzXZl_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Chemical energy content of water&lt;br /&gt;See also: Enthalpy of combustion&lt;br /&gt;Spontaneous chemical reactions do not create energy; they release it by converting unstable bonds into more stable bonds and/or by increasing entropy. The burning of conventional fuels such as petrol (gasoline), wood, and coal converts the fuel into substances with less energy, mostly water and carbon dioxide. In the combustion of fossil fuels water is a waste product, and the overall reaction can be represented with the following chemical equation:&lt;br /&gt;&lt;br /&gt;CnHm + (n + m/4) O2 → n CO2 + m/2 H2O&lt;br /&gt;&lt;br /&gt;Water is such an abundant chemical compound in part because it has very stable bonds that resist most reactions. For water to participate in a reaction that releases energy, high energy compounds must be added. For example, it is possible to generate the combustible fuel acetylene by adding calcium carbide to water. However, the calcium carbide, a high energy material, is the 'fuel,' not water. Under conditions common on Earth, chemical energy cannot be extracted from water alone.[7][6] (It is theoretically possible to extract nuclear energy from water by fusion, but fusion power plants of any scale remain impractical, and no allegedly water-fuelled cars are claimed to be powered by fusion.)&lt;br /&gt;&lt;img alt="hydrocar" src="http://www.instablogsimages.com/images/2009/05/27/hydrocar_rs1Kd_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Electrolysis&lt;br /&gt;&lt;br /&gt;Many alleged water-fuelled cars obtain hydrogen or a mixture of hydrogen and oxygen (sometimes called "oxyhydrogen", "HHO", or "Brown's Gas") by the electrolysis of water, a process that must be powered electrically. The hydrogen or oxyhydrogen is then burned, supposedly powering the car and also providing the energy to electrolyse more water. The overall process can be represented by the following chemical equations:&lt;br /&gt;&lt;br /&gt;2H2O → 2H2 + O2 [Electrolysis step]&lt;br /&gt;&lt;br /&gt;2H2 + O2 → 2H2O [Combustion step]&lt;br /&gt;&lt;br /&gt;Since the combustion step is the exact reverse of the electrolysis step, the energy released in combustion exactly equals the energy consumed in the electrolysis step, and—even assuming 100% efficiency—there would be no energy left over to power the car. In other words, such systems start and end in the same thermodynamic state, and are therefore perpetual motion machines, violating the first law of thermodynamics. And under actual conditions in which hydrogen is burned, efficiency is limited by the second law of thermodynamics and is likely to be around 20%.[9][10] More energy is therefore required to drive the electrolysis cell than can be extracted from burning the resulting hydrogen-oxygen mixture.&lt;br /&gt;&lt;br /&gt;Hydrogen as a supplement&lt;br /&gt;In addition to claims of cars that run exclusively on water, there have also been claims that burning hydrogen or oxyhydrogen in addition to petrol or diesel fuel increases mileage. Around 1970, Yull Brown developed technology which allegedly allows cars to burn fuel more efficiently while improving emissions. In Brown's design, a hydrogen oxygen mixture (so-called "Brown's Gas") is generated by the electrolysis of water, and then fed into the engine through the air intake system. Whether the system actually improves emissions or fuel efficiency is debated.[34] Similarly, Hydrogen Technology Applications claims to be able increase fuel efficiency by bubbling "Aquyen" into the fuel tank.&lt;br /&gt;&lt;img alt="electric" src="http://www.instablogsimages.com/images/2009/05/27/electric_DOWPf_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;A common fallacy found in connection with this type of modification is the mistaken assumption that cars generate excess electricity via their alternators that normally goes to waste and therefore is available for electrolysis.&lt;br /&gt;&lt;img alt="oil_block_lo" src="http://www.instablogsimages.com/images/2009/05/27/oil_block_lo_XIUEe_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;The amount of force required to turn an alternator or generator is directly proportional to the electrical resistance of the circuits it is supplying. If an electrolysis unit is added to a car,&lt;br /&gt;&lt;img alt="water4gas_com member kit" src="http://www.instablogsimages.com/images/2009/05/27/water4gas_com-member-kit_6oATX_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;the amperage it draws from the car's electrical system will make the alternator harder to turn, which will put additional drag on the engine. As a result more fuel will be required to maintain the same rotational speed (RPM.)&lt;br /&gt;&lt;br /&gt;&lt;img alt="water_block_lo" src="http://www.instablogsimages.com/images/2009/05/27/water_block_lo_KNvOQ_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;A number of websites exist promoting the use of oxyhydrogen (often called "HHO"), selling plans for do-it-yourself electrolysers or entire kits with the promise of large improvements in fuel efficiency. According to a spokesman for the American Automobile Association, "All of these devices look like they could probably work for you, but let me tell you they don't.&lt;br /&gt;&lt;br /&gt;Gasoline pill and related additives&lt;br /&gt;&lt;br /&gt;Related to the water-fuelled car hoax are claims that additives, often a pill, convert the water into usable fuel, similar to a carbide lamp, in which a high-energy additive produces the combustible fuel. This "gasoline pill" has been allegedly demonstrated on a full-sized vehicle, as reported in 1980 in Mother Earth News. Once again, water itself cannot contribute any energy to the process, the additive or the pill is the fuel&lt;br /&gt;&lt;br /&gt;Hydrogen on demand technologies&lt;br /&gt;A hydrogen on demand vehicle uses some kind of chemical reaction to produce hydrogen from water. The hydrogen is then burned in an internal combustion engine or used in a fuel cell to generate electricity which powers the vehicle. While these may seem at first sight to be 'water-fuelled cars', they actually take their energy from the chemical that reacts with water, and vehicles of this type are not precluded by the laws of nature. Aluminium, magnesium, and sodium borohydride are substances that react with water to generate hydrogen, and all have been used in hydrogen on demand prototypes. Eventually, the chemical runs out and has to be replenished.[36][37][38] In all cases the energy required to produce such compounds exceeds the energy obtained from their reaction with water.[39]&lt;br /&gt;&lt;br /&gt;One example of a hydrogen on demand device, created by scientists from the University of Minnesota and the Weizmann Institute of Science, uses boron to generate hydrogen from water. An article in New Scientist in July 2006 described the power source under the headline "A fuel tank full of water,"[39] and they quote Abu-Hamed as saying:&lt;br /&gt;&lt;br /&gt;&lt;img alt="water powered20car20plan201" src="http://www.instablogsimages.com/images/2009/05/27/water-powered20car20plan201_srYh2_21985.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“ The aim is to produce the hydrogen on-board at a rate matching the demand of the car engine. We want to use the boron to save transporting and storing the hydrogen. ”&lt;br /&gt;&lt;br /&gt;A vehicle powered by the device would take on water and boron instead of petrol, and generate boron trioxide. The chemical reactions describing the energy generation are:&lt;br /&gt;&lt;img alt="wde" src="http://www.instablogsimages.com/images/2009/05/27/wde_YhH1g_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4B + 6H2O → 2B2O3 + 6H2 [Hydrogen Generation Step]&lt;br /&gt;6H2 + 3O2 → 6H2O [Combustion step]&lt;br /&gt;The balanced chemical equation representing the overall process (hydrogen generation and combustion) is:&lt;br /&gt;&lt;img alt="water pump" src="http://www.instablogsimages.com/images/2009/05/27/water-pump_wB26N_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;4B + 3O2 → 2 B2O3&lt;br /&gt;As shown above, boron trioxide is the only net byproduct, and it could be removed from the car and turned back into boron and reused. Electricity input is required to complete this process which Al-Hamed suggests could come from solar panels&lt;br /&gt;&lt;img alt="hydrogen1" src="http://www.instablogsimages.com/images/2009/05/27/hydrogen1_HlviC_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Closely following a sighting of a Hydrogen-powered 7 series during testing, BMW officially announced the Hydrogen 7 today. The car is touted as the first hydrogen-drive luxury performance automobile for everyday use. The BMW Hydrogen 7 will be built in a limited series, and sold to select customers in the U.S. and overseas in 2007. The engine in the Hydrogen 7, a derivative of the 7 series 12 cylinder engine, is capable of running on gasoline or hydrogen, and produces 260 hp. The car will accelerate from 0 to 62.1 mpg in 9.5 seconds. The ability to run on both gasoline and hydrogen gives the Hydrogen 7 a range of more than 400 miles. The high tech hydrogen storage tank has a capacity of approximately 17.6 lb of liquid hydrogen, giving the Hydrogen 7 a cruising range in hydrogen mode upwards of 125 miles. The gasoline mode accounts for an additional 300 miles of cruising range. The driver is the one who decides which fuel to use, with a smooth transition between both operating modes, since the engine power and torque remain identical regardless of the fuel used. &lt;img alt="p0027927 custom 2" src="http://www.instablogsimages.com/images/2009/05/27/p0027927-custom-2_oZaf6_21985.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;BMW Introduces 1st Production-based Hydrogen Car&lt;br /&gt;31 May 2000&lt;br /&gt;&lt;br /&gt;Munich, Germany - BMW presented the world's first production-based hydrogen&lt;br /&gt;car in Berlin, the BMW 750hL. The luxurious sedans will be used as shuttles&lt;br /&gt;for the entire duration of the EXPO 2000. These vehicles are built on the&lt;br /&gt;same production line in Dingolfing as normal production 7 Series. They will&lt;br /&gt;demonstrate to all who experience them thatthey meet the very highest&lt;br /&gt;requirements for comfort, dynamics and utility value at market-appropriate&lt;br /&gt;costs.&lt;br /&gt;&lt;br /&gt;"And we will be the first automobile manufacturer in the world to offer series&lt;br /&gt;production hydrogen cars," says Dr. Burkhard Göschel, Development&lt;br /&gt;Director of the BMW Group.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thousands of Hydrogen Cars and Adequate Infrastructure by 2010&lt;br /&gt;&lt;br /&gt;Dr. Burkhard Göschel: "Our vision is to have a hydrogen fuel station&lt;br /&gt;available in the vicinity of the branches of the BMW Group in Germany by the&lt;br /&gt;11th of May 2005." BMW offers international energy companies close&lt;br /&gt;cooperation for the development of a hydrogen fuel station network: "Our aim&lt;br /&gt;is to have a sufficient network of hydrogen fuel stations all over Europe by&lt;br /&gt;the year 2010," says the development chief. By then BMW has planned to have&lt;br /&gt;sold several thousand hydrogen cars. The prices for the cars and for the&lt;br /&gt;fuel are to be similar to those of conventional cars and fuels.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;750hL: A Hydrogen Sedan For Everyday Use&lt;br /&gt;&lt;br /&gt;The hydrogen technology used in the 12-cylinder sedans has already advanced&lt;br /&gt;so far that it permits realistic planning for large series production. BMW&lt;br /&gt;has extended its leading position in the development of the CleanEnergy car.&lt;br /&gt;CleanEnergy is the generic term for the ecologically ideal, closed energy&lt;br /&gt;cycle based on water.&lt;br /&gt;&lt;br /&gt;Running on hydrogen, the 12-cylinder engine delivers 204-horsepower and&lt;br /&gt;accelerates from standstill to 100 km/h in 9.6 seconds, while achieving a&lt;br /&gt;top speed of 226 km/h. Fitted with the 140 liter Cryo fuel tank, the fully&lt;br /&gt;equipped 7 Series has an additional range of 350 kilometers. The car&lt;br /&gt;features a conventional fuel supply too, since the availability of hydrogen&lt;br /&gt;fuel is limited. After the EXPO in Hanover is over, the sedans will drive&lt;br /&gt;back to Munich on their own power using conventional fuel.&lt;br /&gt;&lt;br /&gt;The engine itself differs mainly only with regard to the intake duct with&lt;br /&gt;additional injection valves for the hydrogen. The production of the 750hL&lt;br /&gt;was incorporated as much as possible into the normal production process.&lt;br /&gt;&lt;br /&gt;The 12-cylinder engines were integrated into production i
