Pages

Monday, May 9, 2011

Snort notes

Reloading Snort rules without stopping the server:
     killall -HUP snort

Whitelisting an IP:
add the following to the /etc/snort/rules/local.rules
     pass udp 134.129.111.111 any -> any any ( sid:1000001 ;)
     pass udp any any -> 134.129.111.111 any ( sid:1000002 ;)

Exporting SQL tables and data

Following are the steps for exporting your database and data view script generation.
  • Right click on the database that you would like to export
    • Go to Tasks > Generate Scripts...
  • A screen will pop up.  Your database should be selected in the list.
    • Click Next
  • Change the following settings
    • General
      • ANSI Padding = False
      • Include Descriptive Headers = False
      • Script Extended Properties = False
    • Table/View Options
      • Script Data = True
  • Click Next
  • Choose the Tables checkbox and click next
  • Click the Select All button and click Finish
  • Click Finish again and your script should be in a new query window.

Thursday, April 14, 2011

Javascript - Select by value


function selectItemByValue(elmnt, value){

for(var i=0; i < elmnt.options.length; i++)
{
if(elmnt.options[i].value == value)
elmnt.selectedIndex = i;
}
}

Monday, April 4, 2011

Methods Example

The following is an example of how to use a sub and a function in order to reuse code.

Friday, March 4, 2011

Array examples

Here are some examples of arrays, arraylists, hashtables, and queues.

 Public Class frmJuke

Dim strDahArray(0 To 2) As String
Dim arrTestMyList As New ArrayList
Dim hashTable As New Hashtable
Dim qQueue As New Queue

Private Sub btnAddCD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArray.Click
strDahArray(0) = "This is cool"
strDahArray(1) = "This is cooler"
strDahArray(2) = "This is the coolest"

For x As Integer = 0 To 2
MsgBox(strDahArray(x))
Next

lstArray.DataSource = strDahArray
cboArray.DataSource = strDahArray
End Sub

Private Sub btnArrayList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArrayList.Click
arrTestMyList.Add("this is not cool")
arrTestMyList.Add("not even this is cool")
arrTestMyList.Add("this sux")

For Each Str As String In arrTestMyList
MsgBox(Str)
Next

lstArray.DataSource = arrTestMyList
cboArray.DataSource = arrTestMyList
End Sub

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
arrTestMyList.Clear()

For y As Integer = 0 To (strDahArray.Length - 1)
strDahArray(y) = ""
Next

lstArray.DataSource = Nothing
cboArray.DataSource = Nothing

End Sub


Private Sub btnAddToArrayList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddToArrayList.Click
arrTestMyList.Add(txtArrayList.Text)
txtArrayList.Clear()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
hashTable.Add("box1", "asdf")
hashTable.Add("box2", "jld;fkajdf;lasdf")

For Each obj As DictionaryEntry In hashTable
MsgBox(obj.Key & "=" & obj.Value)
Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim str As String
qQueue.Enqueue("third")
qQueue.Enqueue("second")
qQueue.Enqueue("first")

Do While qQueue.Count > 0
str = qQueue.Dequeue()
MsgBox(str)
Loop
End Sub
End Class

Friday, February 11, 2011

Asp.net - inserting form data into a database

Here is a quick explanation for taking the information from a form throwing it into a database.

First let's import the libraries for connecting to SQL. These need to got at the very top of your code page.
Imports System.Data
Imports System.Data.SqlClient

Now the code. This will likely be placed in the click even of a button.
Dim sqlCon As New SqlConnection("Data Source=.\Sqlexpress;Initial Catalog=Sprinklers;Integrated Security=True")

Dim sql As String = "Insert into Sprinklers " & _
" (sprinklername,description) " & _
" values " & _
" (@sprinklername, @description) "

Dim sqlCommand As New SqlCommand(sql, sqlCon)
sqlCommand.Parameters.Add(New SqlParameter("@sprinklername", SqlDbType.VarChar, 50))
sqlCommand.Parameters("@sprinklername").Value = txtName.Text
sqlCommand.Parameters.Add(New SqlParameter("@description", SqlDbType.VarChar, 500))
sqlCommand.Parameters("@description").Value = txtDesc.Text
sqlCommand.Connection.Open()
Try
sqlCommand.ExecuteNonQuery()
Catch ex As SqlException
MsgBox(ex.Message)
End Try

sqlCommand.Connection.Close()
sqlCommand = Nothing
sqlcon = Nothing



Now for the code with comments. This will explain line by line what is happening.
     ' We need to tell our program how to get to the database
Dim sqlCon As New SqlConnection("Data Source=.\Sqlexpress;Initial Catalog=Sprinklers;Integrated Security=True")

' Here is the statement that inserts data into the database.
' Notice the @sprinklername type variable. We will use a parameters
' feature to replace those with our form values
Dim sql As String = "Insert into Sprinklers " & _
" (sprinklername,description) " & _
" values " & _
" (@sprinklername, @description) "

' The sql connection told our program where to go,
' this tells the program what to do when it gets there
' We are passing in the sql statement and the connection we created before
Dim sqlCommand As New SqlCommand(sql, sqlCon)

' Now its time to give some values to those @ variables
' First let's tell the program which param we are dealing with, @sprinklername in this case
' The sqldbtype and the last number in the variables here need to match the datatype
' and length that are set for the column we are inserting into.
sqlCommand.Parameters.Add(New SqlParameter("@sprinklername", SqlDbType.VarChar, 50))
' Now that we've added a new parameter, let's give it a value.
sqlCommand.Parameters("@sprinklername").Value = txtName.Text

' Do it again for the other variable
sqlCommand.Parameters.Add(New SqlParameter("@description", SqlDbType.VarChar, 500))
sqlCommand.Parameters("@description").Value = txtDesc.Text

' Our statement is fully prepared and we need to open the connection.
sqlCommand.Connection.Open()

Try
' This will do the actual execution of the query. We want this inside of
' a try in case something goes wrong.
sqlCommand.ExecuteNonQuery()
Catch ex As SqlException
MsgBox(ex.Message)
End Try

' Close the connection to the database
sqlCommand.Connection.Close()

' Do away with the connection and command for memory management.
sqlCommand = Nothing
sqlCon = Nothing

Tuesday, February 1, 2011

Transferring users from one sql server to another

While setting up another server, I set about to learn how to transfer all of my students from one sql server to the new one. I came across this helpful article at: http://support.microsoft.com/kb/918992


To transfer the logins and the passwords from the instance of SQL Server on server A to the instance of SQL Server on server B, follow these steps:
  1. On server A, start SQL Server Management Studio, and then connect to the instance of SQL Server from which you moved the database.
  2. Open a new Query Editor window, and then run the following script.
     USE master 
    GO
    IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
    DROP PROCEDURE sp_hexadecimal
    GO
    CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar (514) OUTPUT
    AS
    DECLARE @charvalue varchar (514)
    DECLARE @i int
    DECLARE @length int
    DECLARE @hexstring char(16)
    SELECT @charvalue = '0x'
    SELECT @i = 1
    SELECT @length = DATALENGTH (@binvalue)
    SELECT @hexstring = '0123456789ABCDEF'
    WHILE (@i <= @length)
    BEGIN
    DECLARE @tempint int
    DECLARE @firstint int
    DECLARE @secondint int
    SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
    SELECT @firstint = FLOOR(@tempint/16)
    SELECT @secondint = @tempint - (@firstint*16)
    SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
    SELECT @i = @i + 1
    END

    SELECT @hexvalue = @charvalue
    GO

    IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
    DROP PROCEDURE sp_help_revlogin
    GO
    CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
    DECLARE @name sysname
    DECLARE @type varchar (1)
    DECLARE @hasaccess int
    DECLARE @denylogin int
    DECLARE @is_disabled int
    DECLARE @PWD_varbinary varbinary (256)
    DECLARE @PWD_string varchar (514)
    DECLARE @SID_varbinary varbinary (85)
    DECLARE @SID_string varchar (514)
    DECLARE @tmpstr varchar (1024)
    DECLARE @is_policy_checked varchar (3)
    DECLARE @is_expiration_checked varchar (3)

    DECLARE @defaultdb sysname

    IF (@login_name IS NULL)
    DECLARE login_curs CURSOR FOR

    SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM
    sys.server_principals p LEFT JOIN sys.syslogins l
    ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'
    ELSE
    DECLARE login_curs CURSOR FOR


    SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM
    sys.server_principals p LEFT JOIN sys.syslogins l
    ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name
    OPEN login_curs

    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
    IF (@@fetch_status = -1)
    BEGIN
    PRINT 'No login(s) found.'
    CLOSE login_curs
    DEALLOCATE login_curs
    RETURN -1
    END
    SET @tmpstr = '/* sp_help_revlogin script '
    PRINT @tmpstr
    SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
    PRINT @tmpstr
    PRINT ''
    WHILE (@@fetch_status <> -1)
    BEGIN
    IF (@@fetch_status <> -2)
    BEGIN
    PRINT ''
    SET @tmpstr = '-- Login: ' + @name
    PRINT @tmpstr
    IF (@type IN ( 'G', 'U'))
    BEGIN -- NT authenticated account/group

    SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'
    END
    ELSE BEGIN -- SQL Server authentication
    -- obtain password and sid
    SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )
    EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT
    EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT

    -- obtain password policy state
    SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
    SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name

    SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'

    IF ( @is_policy_checked IS NOT NULL )
    BEGIN
    SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked
    END
    IF ( @is_expiration_checked IS NOT NULL )
    BEGIN
    SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked
    END
    END
    IF (@denylogin = 1)
    BEGIN -- login is denied access
    SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )
    END
    ELSE IF (@hasaccess = 0)
    BEGIN -- login exists but does not have access
    SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )
    END
    IF (@is_disabled = 1)
    BEGIN -- login is disabled
    SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'
    END
    PRINT @tmpstr
    END

    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
    END
    CLOSE login_curs
    DEALLOCATE login_curs
    RETURN 0
    GO

    Note This script creates two stored procedures in the master database. The two stored procedures are named the sp_hexadecimal stored procedure and the sp_help_revlogin stored procedure.
  3. Run the following statement.
    EXEC sp_help_revlogin
    The output script that is generated by the sp_help_revlogin stored procedure is the login script. This login script creates the logins that have the original Security Identifier (SID) and the original password.
  4. On server B, start SQL Server Management Studio, and then connect to the instance of SQL Server to which you moved the database.

    Important Before you go to step 5, review the information in the "Remarks" section.
  5. Open a new Query Editor window, and then run the output script that is generated in step 3.