Monday, December 20, 2010

How to Remove autorun.inf Virus from USB/Pen Drive?
Pen drives these days are more vulnerable to viruses and the biggest problem most PC users face is “Autorun.Inf” which automatically installs virus in other folders. In order to remove Auto Run virus, you just need to replace to the file with a new one “Autorun.Inf”.
Steps to Remove Autorun.Inf Virus from Pen Drive
1.Open a notepad and leave it blank (don’t type anything)
2.Save it as “Autorun.Inf” in the destination drive (Your Pen Drive)

Autorun.Inf
That’s it. The autorun virus is now removed from your pendrive.
The actual logic behind this is to overwrite the autorun.inf file with an empty one. Because an empty autorun file can’t execute automatically.
This is the basic and very simple step to get rid of Autorun.Inf virus without having to use any Anti-virus software’s.

Sunday, December 12, 2010

Android

Android™ delivers a complete set of software for mobile devices: an operating system, middleware and key mobile applications. The Android Software Development Kit (SDK) is now available.
Open

Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It was built to be truly open. For example, an application can call upon any of the phone's core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that was designed to optimize memory and hardware resources in a mobile environment. Android is open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.
All applications are created equal

Android does not differentiate between the phone's core applications and third-party applications. They can all be built to have equal access to a phone's capabilities providing users with a broad spectrum of applications and services. With devices built on the Android Platform, users are able to fully tailor the phone to their interests. They can swap out the phone's homescreen, the style of the dialer, or any of the applications. They can even instruct their phones to use their favorite photo viewing application to handle the viewing of all photos.
Breaking down application boundaries

Android breaks down the barriers to building new and innovative applications. For example, a developer can combine information from the web with data on an individual's mobile phone -- such as the user's contacts, calendar, or geographic location -- to provide a more relevant user experience. With Android, a developer can build an application that enables users to view the location of their friends and be alerted when they are in the vicinity giving them a chance to connect.
Fast & easy application development

Android provides access to a wide range of useful libraries and tools that can be used to build rich applications. For example, Android enables developers to obtain the location of the device, and allows devices to communicate with one another enabling rich peer-to-peer social applications. In addition, Android includes a full set of tools that have been built from the ground up alongside the platform providing developers with high productivity and deep insight into their applications.

Friday, December 10, 2010

Create mp3 player VB.Net2008

Creating a Mp3 Player In VB.net 2008 (Express \ Standard)
Aug 16
A Mp3 player is a hard task, but if you plan to use the Windows Media Player Controls it becomes so much easier, and so much quicker. In this tutorial I shall show you how to build your own basic Mp3 Player. Of course this is not going to oust great clients such as Winamp and Foobar2000, but it’s a good way to get to know using custom COM elements.
Ok let’s get started before I get to sleepy! Open up VB.net (Express Edition is fine) and now click File – New Project. In the new window that shows click Windows Form Application and type the project name to be Mp3Player


Click OK. Now in the toolbox (if the toolbox is not showing go to View – Toolbox) right click and select Choose Items from the right click menu. In the new ‘Choose Toolbox Items’ window that shows click the COM Components tab and then scroll down until you find the ‘Windows Media Player’ Control. Click the tickbox next to the name of the control

Click OK. Now in the general section of your Toolbox you should have a element called ‘Windows Media Player’ Drag this element onto your application. Depending on your Windows Media Player version you should get something that looks like the below image

Now to make things easier for creating your application move the element to the bottom of your application. Because the user won’t see the media player it’s not important about the size of location. It’s at this point you might find it nicer to slightly enlarge the application window (you can do this by clicking on one of the corners of the application and dragging it out). We now need to add a listbox. This will be our playlist editor, where the user will be able to add songs to play. You can add a listbox from the toolbox common controls area. Give this listbox full width of your application and leave above 15\20% at the top of your app. Make sure the listbox is selected then in the right hand (default position) properties section rename the listbox to ‘playlist’. In the properties section Anchor to Top, Left, Bottom and Right!

Your application should some what like the above image by this stage. We now need to allow the user to import files to the listbox. This is probably the most complex code of a mp3 player, and still it’s still rather basic code! Drag a button (from toolbox – Common controls) onto your application. Give this button a name of import and a text value in the properties to ‘Import’. You should also Anchor this button to Top, Right. Now once again from the toolbox drag OpenFileDialog from the Dialogs section. Don’t worry nothing will show up on your main application but you will see something like what shows below.

Click this button once to bring up the properties in the right menu for the dialog. Rename it importdiag and change the value multiselect to true. In the filter section of the properties for importdiag type the following:
Mp3 Music|*.mp3
The above will make sure the user can only select Mp3 files. Now double click on the ‘Import’ button you created earlier. This should take you into code view. Make sure your mouse cursor is within the Private Sub import_click and then type
importdiag.ShowDialog()
This will in turn show a open file window that Windows will generate for us. It will only show if the user has clicked the import button. Making sure you still have the importdiag button still clicked on the right properties menu click the small lightning bolt. You should now see something somewhat like the below image.

Double click on the item ‘FileOk’ (The actual text that says FileOK). You should now be in code view. Making sure your mouse is within the Private Sub importdiag_FileOk section, type the following code
For Each track As String In importdiag.FileNames
playlist.Items.Add(track)
Next
This code does the following: It goes though each one of the files the user selected and then adds it to our listbox. Because we’re only trying to create a simple Mp3 player we have not checked if the user is importing a valid filetype, but instead relying on the File Import window working in filtering to show on Mp3 tracks. Ok you can now test out importing Mp3 files. Press F5 to start debugging. Try important a collection of Mp3 files.
Now lets start to play these tracks! Add a button on your application and name it ‘play’, give it a text value of “Play”. Double click on this play button to enter the code view. Making sure your cursor is contained within Private Sub play_Click section type the following
AxWindowsMediaPlayer1.URL = playlist.SelectedItem
This calls our Windows media player item we added at the very start of the tutorial, and plays the selected item in the playlist. Add a new button to the application, this time call it stopbutton and have a text value of ‘Stop’. Double click the stop button and type the following code:
AxWindowsMediaPlayer1.Ctlcontrols.stop()
Once again add another button and this time call it pause with a text value of Pause. Double click it and in the code view type:
AxWindowsMediaPlayer1.Ctlcontrols.pause()
You can now open Mp3 files, play them, stop them and pause them. That’s it for this tutorial but on request I will go into more details with things such as track lengths, video playback and design. Let me know in the comments if you’d like that! I’d love to hear all your feedback! I’m off to bed now, I’m getting very sleepy!





Code 1:

Ingredients: 2 track bar(volume and trackposition)
1 progress bar(trackposition1)
5 buttons(but_next, play, back ,pause and stop)
4 labels
listview(tracklist and 1 colum named trackcol)
1 menustrip and create 8 downstrip(play, pause, fast forward, next, stop, volume up, volume down, exit

Public Class Media_Player
#Region "Color Settings"
Dim CurrentTrackColor As System.Drawing.Color = Color.Red
Dim PausedTrackColor As System.Drawing.Color = Color.LightYellow
#End Region
' Dim opendrive As WMPLib.WindowsMediaPlayer
' Dim i As Integer
' Dim total As Integer
Dim WithEvents vplayer As New AxWIAVIEWLib.AxVideoPreview
Dim WithEvents Player As New WMPLib.WindowsMediaPlayer
Dim files As Collections.ObjectModel.ReadOnlyCollection(Of String)
Dim titles As New List(Of String)
Dim CurrentPlaying As Integer = 0
Dim PreviouslyPlaying As Integer = 0
Private Sub but_Play_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_Play.Click
GUIMode("Play")
updatePlayer()
Player.controls.play()

End Sub

Private Sub but_Pause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_Pause.Click

If Player.playState = WMPLib.WMPPlayState.wmppsPaused Then
GUIMode("Play")
Else
GUIMode("Paused")
End If
End Sub

Private Sub but_Stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_Stop.Click
Player.controls.stop()
GUIMode("Stopped")
End Sub

Private Sub Volume_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Volume.Scroll
Player.settings.volume = Volume.Value
Label3.Text = Volume.Visible
End Sub

Private Sub TrackPosition_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackPosition.Scroll
Player.controls.pause()
Player.controls.currentPosition = ProgressBar1.Value
'Label9.Text = Player.controls.currentPosition
Player.controls.currentPosition = TrackPosition.Value
Player.controls.play()
updatePlayer()
' Allow the app to do some processing
Application.DoEvents()
End Sub

Private Sub Media_Player_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Player = Nothing
End Sub

Private Sub Media_Player_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Player.close()
End Sub

Private Sub Media_Player_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label7.Text = "Created By Mangciphu Zola"
'Me.BackgroundImage.Clone()
Randomize()
' Me.Label3.Text = ShowInTaskbar
Label5.Text = Player.versionInfo
Label2.Text = TrackList.Items.Count
'ShowInTaskbar = Me.Label3.Text
Player.windowlessVideo = True
but_Pause.Enabled = True
but_Stop.Enabled = True
'hide the progress bar which display the track position
ProgressBar1.Visible = False
Label10.Text = Player.controls.currentPosition
'set the place where you want this player to get them automatic
files = FileIO.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.Desktop, FileIO.SearchOption.SearchAllSubDirectories, "*.mp3")
files = FileIO.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyPictures, FileIO.SearchOption.SearchAllSubDirectories, "*.mp3")
files = FileIO.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData, FileIO.SearchOption.SearchAllSubDirectories, "*.mp3")
files = FileIO.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyMusic, FileIO.SearchOption.SearchAllSubDirectories, "*.mp3", "*.wav", "*.mp4", "*.avi", "*.MPEG")
For Each a As String In files
Me.TrackList.Items.Add(FileIO.FileSystem.GetName(a))
Next
Volume.Value = Player.settings.volume

'Me.txt_TrackName.Text = Player.URL

Player.settings.autoStart = False
Player.URL = files(0)
Player.enableContextMenu = False

Me.Text = ScrollStateVScrollVisible
With (Me.Timer1.Interval = 500)
Timer1.Start()
Enabled = True
End With
End Sub
Private Sub GUIMode(ByRef Guimode As String)
Select Case Guimode
Case ("Play")
' Put GUI in playing mode guise
Player.controls.play()
but_Pause.BackColor = System.Drawing.SystemColors.Control
but_Pause.Enabled = True
but_Stop.Enabled = True
Label4.Text = Player.status
but_Play.Enabled = True
Case ("Paused") ' put gui in paused mode guise
but_Pause.Enabled = True
but_Stop.Enabled = False
but_Play.Enabled = False
but_Pause.BackColor = PausedTrackColor
Player.controls.pause()
Case ("Stopped")
but_Pause.Enabled = False
but_Stop.Enabled = False

End Select

End Sub

Private Sub Player_MediaError(ByVal pMediaObject As Object) Handles Player.MediaError
MessageBox.Show("Unrecoverable Problem. Shutting Down", "MyMusic Player")
Me.Close()
End Sub

Private Sub Player_PlayStateChange(ByVal NewState As Integer) Handles Player.PlayStateChange
Static Dim PlayAllowed As Boolean = True
Select Case CType(NewState, WMPLib.WMPPlayState)
Case (WMPLib.WMPPlayState.wmppsReady)
If PlayAllowed Then
Player.controls.play()
End If
Case (WMPLib.WMPPlayState.wmppsMediaEnded)
' Reach end of track move onto next, looping around
PreviouslyPlaying = CurrentPlaying
CurrentPlaying = (CurrentPlaying + 1) Mod files.Count
' Start protection (without it next wouldn't play
PlayAllowed = False
' Play track
Player.URL = files(CurrentPlaying)
Player.controls.play()
' End Protection
PlayAllowed = True
updatePlayer()
End Select
Label4.Text = Player.status
Label10.Text = Player.controls.currentPosition.ToString
End Sub

Private Sub updatePlayer()
' Display track name
'txt_TrackName.Text = Player.currentMedia.name
' Label8.Text = Player.currentMedia.name
' ShowInTaskbar = Label3.Text
'Label3.Text = ShowInTaskbar
' txt_TrackArtist.Text = Player.status
' Update TrackPostion
With (ProgressBar1)
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = Val(Player.currentMedia.duration)
ProgressBar1.Value = Val(Player.controls.currentPosition())
End With
With (TrackPosition)
TrackPosition.Minimum = 0
TrackPosition.Maximum = CInt(Player.currentMedia.duration)
TrackPosition.Value = CInt(Player.controls.currentPosition())
End With
' Display Current Time Position and Duration
'txt_Progress.Text = Player.controls.currentPositionString & vbTab & Player.currentMedia.durationString
'Label4.Text = txt_Progress.Text = Player.controls.currentPositionString & vbTab & Player.currentMedia.durationString
' Set Volume slide to match current volume
Volume.Value = Player.settings.volume
' Is the CurrentPlaying Track No. is different to the Previous Track number.
If CurrentPlaying <> PreviouslyPlaying Then
' Yes,
' Set the forecolor of the corrisponding track, assiociated with the previous playing track, with the control color
TrackList.Items(PreviouslyPlaying).ForeColor = System.Drawing.SystemColors.ControlText
End If
' Set the forecolor of the corrisponding track, assiociated with the currently playing track, with the current track color
TrackList.Items(CurrentPlaying).ForeColor = CurrentTrackColor
Label4.Text = Player.status
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

' MessageBox.Show("Are You Sure About that? and the playing track is ...", Me.Text, MessageBoxButtons.YesNo)
Label4.Text = Player.status
' Me.Text = ScrollStateAutoScrolling
'ProgressBar1.Style = Me.Text
' Label4.Text = ShowInTaskbar.ToString
' Player.controls.currentItem.name = ShowInTaskbar
'it displays the playing track on the taskbar
Me.Text = Player.controls.currentItem.name & " " & Label10.Text
SetScrollState(8, True)
'this shows the total time of a track
Label9.Text = Player.controls.currentItem.durationString
'the current time of a track
Label10.Text = Player.controls.currentPositionString
' Label11.Text =
Label3.Text = Volume.Value.ToString & "%"
REM Label11.Text = Player.controls.currentItem.attributeCount
updatePlayer()
Label1.Text = DateAndTime.Now
End Sub

Private Sub TrackList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
GUIMode("Play")
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.
CurrentPlaying = TrackList.SelectedIndices(0)
' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()
End Sub


Private Sub MuteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MuteToolStripMenuItem.Click
Player.settings.mute = True
End Sub

Private Sub PlayToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlayToolStripMenuItem.Click
GUIMode("Play")
updatePlayer()
Player.controls.play()
Label10.Text = Player.controls.currentPosition.ToString
End Sub

Private Sub but_Next_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_Next.Click
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.

' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()

GUIMode("next")
updatePlayer()
CurrentPlaying = CurrentPlaying + 1


Player.controls.next()
Player.controls.play()

End Sub

Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click
Player.controls.stop()
GUIMode("Stopped")
End Sub

Private Sub PauseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PauseToolStripMenuItem.Click
If Player.playState = WMPLib.WMPPlayState.wmppsPaused Then
GUIMode("Play")
Else
GUIMode("Paused")
End If
End Sub

Private Sub FastForwardToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FastForwardToolStripMenuItem.Click
Player.controls.fastForward()

End Sub

Private Sub FastRewindToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FastRewindToolStripMenuItem.Click
Player.controls.fastReverse()
End Sub

Private Sub but_Back_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_Back.Click
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.

' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()

GUIMode("back")
updatePlayer()
CurrentPlaying = CurrentPlaying - 1


Player.controls.previous()
Player.controls.play()

End Sub

Private Sub RedToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedToolStripMenuItem.Click

Me.BackColor = Color.Red
End Sub

Private Sub ShowAdvanceSeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowAdvanceSeToolStripMenuItem.Click
TrackPosition.Visible = False
ProgressBar1.Visible = True
End Sub

Private Sub NormalSeekToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NormalSeekToolStripMenuItem.Click
TrackPosition.Visible = True
ProgressBar1.Visible = False
End Sub
Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click
Player.controls.play()
updatePlayer()
' Allow the app to do some processing
Application.DoEvents()
End Sub



Private Sub TrackList_DoubleClick1(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackList.DoubleClick
GUIMode("Play")
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.
CurrentPlaying = TrackList.SelectedIndices(0)
' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()
End Sub


Private Sub NextToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NextToolStripMenuItem.Click
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.

' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()

GUIMode("next")
updatePlayer()
CurrentPlaying = CurrentPlaying + 1


Player.controls.next()
Player.controls.play()
End Sub

Private Sub BackToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BackToolStripMenuItem.Click
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.

' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()

GUIMode("back")
updatePlayer()
CurrentPlaying = CurrentPlaying - 1


Player.controls.previous()
Player.controls.play()

End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub



Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
Player.settings.volume = Volume.Value + 1
End Sub

Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click
Player.settings.volume = Volume.Value + 2
End Sub

Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
Player.settings.volume = Volume.Value + 5
End Sub

Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click
Player.settings.volume = Volume.Value + 10
End Sub

Private Sub ToolStripMenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem6.Click
Player.settings.volume = Volume.Value + 20
End Sub

Private Sub ToolStripMenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem7.Click
Player.settings.volume = Volume.Value + 50
End Sub

Private Sub ToolStripMenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem8.Click
Player.settings.volume = Volume.Value - 1
End Sub

Private Sub ToolStripMenuItem9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem9.Click
Player.settings.volume = Volume.Value - 2
End Sub

Private Sub ToolStripMenuItem10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem10.Click
Player.settings.volume = Volume.Value - 5
End Sub

Private Sub ToolStripMenuItem11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem11.Click
Player.settings.volume = Volume.Value - 10
End Sub

Private Sub ToolStripMenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem12.Click
Player.settings.volume = Volume.Value - 20
End Sub

Private Sub ToolStripMenuItem13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem13.Click
Player.settings.volume = Volume.Value - 50
End Sub

Private Sub ShuffleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShuffleToolStripMenuItem.Click
Randomize()
' A track in the tracklisting has been double clicked on
PreviouslyPlaying = CurrentPlaying
' Set CurrentPlaying to position of selected track.

' Play the track
Player.URL = files(CurrentPlaying)
updatePlayer()
Player.controls.play()

GUIMode("Random")
updatePlayer()
For i = 0 To CurrentPlaying
CurrentPlaying = Rnd(CurrentPlaying + 1)
updatePlayer()
Next
Player.controls.previous()
Player.controls.play()
End Sub

Private Sub GreenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GreenToolStripMenuItem.Click
Me.BackColor = Color.Green
End Sub

Private Sub YellowToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YellowToolStripMenuItem.Click
Me.BackColor = Color.Yellow
End Sub

Private Sub IndigoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IndigoToolStripMenuItem.Click
Me.BackColor = Color.Indigo
End Sub

Private Sub MaroonToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MaroonToolStripMenuItem.Click
Me.BackColor = Color.Maroon
End Sub

Private Sub PinkToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PinkToolStripMenuItem.Click
Me.BackColor = Color.Pink
End Sub

Private Sub LightBlueToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LightBlueToolStripMenuItem.Click
Me.BackColor = Color.LightBlue
End Sub

Private Sub DefaultToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DefaultToolStripMenuItem.Click
Me.BackColor = Color.Empty
End Sub
End Class




Code2:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms

public class UseMediaPlayer
public Shared Sub Main
Application.Run(New FrmMediaPlayer)
End Sub
End class

Public Class FrmMediaPlayer
Inherits System.Windows.Forms.Form

' action menus
Friend WithEvents applicationMenu As MainMenu
Friend WithEvents fileItem As MenuItem
Friend WithEvents openItem As MenuItem
Friend WithEvents exitItem As MenuItem
Friend WithEvents aboutItem As MenuItem
Friend WithEvents aboutMessageItem As MenuItem

' media player control
Friend WithEvents player As AxMediaPlayer.AxMediaPlayer
Friend WithEvents openMediaFileDialog As OpenFileDialog

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(FrmMediaPlayer))
Me.applicationMenu = New System.Windows.Forms.MainMenu()
Me.fileItem = New System.Windows.Forms.MenuItem()
Me.openItem = New System.Windows.Forms.MenuItem()
Me.exitItem = New System.Windows.Forms.MenuItem()
Me.aboutItem = New System.Windows.Forms.MenuItem()
Me.aboutMessageItem = New System.Windows.Forms.MenuItem()
Me.openMediaFileDialog = New System.Windows.Forms.OpenFileDialog()
Me.player = New AxMediaPlayer.AxMediaPlayer()
CType(Me.player, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'applicationMenu
'
Me.applicationMenu.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.fileItem, Me.aboutItem})
'
'fileItem
'
Me.fileItem.Index = 0
Me.fileItem.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.openItem, Me.exitItem})
Me.fileItem.Text = "File"
'
'openItem
'
Me.openItem.Index = 0
Me.openItem.Text = "Open"
'
'exitItem
'
Me.exitItem.Index = 1
Me.exitItem.Text = "Exit"
'
'aboutItem
'
Me.aboutItem.Index = 1
Me.aboutItem.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.aboutMessageItem})
Me.aboutItem.Text = "About"
'
'aboutMessageItem
'
Me.aboutMessageItem.Index = 0
Me.aboutMessageItem.Text = "About Windows Media Player"
'
'player
'
Me.player.Name = "player"
Me.player.OcxState = CType(resources.GetObject("player.OcxState"), System.Windows.Forms.AxHost.State)
Me.player.Size = New System.Drawing.Size(312, 288)
Me.player.TabIndex = 0
'
'FrmMediaPlayer
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(312, 287)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.player})
Me.Menu = Me.applicationMenu
Me.Name = "FrmMediaPlayer"
Me.Text = "MediaPlayer"
CType(Me.player, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub openItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles openItem.Click

openMediaFileDialog.ShowDialog()

player.FileName = openMediaFileDialog.FileName

player.Size = New Size(player.ImageSourceWidth, player.ImageSourceHeight)

Me.Size = New Size(player.Size.Width + 20,player.Size.Height + 60)
End Sub ' openItem_Click

' exit application
Private Sub exitItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles exitItem.Click

Application.Exit()
End Sub ' exitItem_Click

Private Sub aboutMessageItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles aboutMessageItem.Click

player.AboutBox()
End Sub

End Class

Creation of Media Player Application

How to create media player application in VB.Net Sample
Step 1: Download movie player pro ActiveX setup disk and installed it.
Step 2: Create New Visual Basic Project, select Windows Application.
Step 3: Select Component Tab in Toolbox, Right Click mouse and Select Add/Remove Items...


Step 4: Select Component Tab in Toolbox, Right Click mouse and Select Add/Remove Items...
Step 5: In Customize Toolbox, select COM Components Tab, Select MoviePlayer Pro ActiveX.

.
Step 6: Drag the movie player pro icon into the form.

Step 7: Add 4 buttons into the form and label to Load Video, Play, Pause , Stop.


Step 8: Add 4 buttons into the form and label to Load Video, Play, Pause , Stop.

Step 9: Add following code in buttons click event. You need change the correct path of your video in FileName property.
Private Sub btnloadvideo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnloadvideo.Click
AxMoviePlayer1.FileName = "c:\inputyourvideofile.mpg"
End Sub
Private Sub btnplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnplay.Click
AxMoviePlayer1.Play()
End Sub
Private Sub btnpause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpause.Click
AxMoviePlayer1.Pause()
End Sub
Private Sub btnstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstop.Click
AxMoviePlayer1.Stop()
End Sub

Step 10: Now click load video button, it will load the video file, click play button to playback video.

Rectifiers

Rectifier
Rectifier is an electrical device which converts alternating current into direct current. This process of converting ac to dc is known as rectification
Rectifiers are used as components of power supplies and as detectors of radio signals. Rectifiers may be made of solid state diodes, vacuum tube diodes, and other components.
The circuit which performs the function of converting dc to ac is known as inverter.
Half-wave Rectifier







Types of Full-wave rectifier
• 1)Center-trapped Rectifier
2) Bridge Rectifier


Applications
• The primary application of rectifiers is to derive usable DC power from an AC supply. Virtually all electronics except simple motor circuits such as fans require a DC supply but mains power is AC so rectifiers are used inside the power supply of all electronics.

Semi-Conductors

Semiconductors
Metals which have conductivity less than conductors and more than insulators or resistivity more than conductors and less than insulators are known as semiconductors.
e. g silicon, germanium etc
Types of semiconductors
1)Intrinsic semiconductors
2) Extrinsic semiconductors
Intrinsic semiconductors
When in pure germanium or silicon the amount of impurity level is less than 1 part in10^8, that semiconductor is known as intrinsic semiconductor
Extrinsic Semiconductor
When in pure silicon or germanium, impurity of element is added in very small proportion, it is called extrinsic semiconductor
The process of adding impurity element in pure semiconductor is known as doping
Extrinsic semiconductors may be of two types :-
1)N-type Semiconductor
2)P-type Semiconductor
N-Type Semiconductors
 When in pure germanium or silicon the impurity of the penta valent element like arsenic, antimony or phosphorus is added in very small definite proportion, N-type semiconductor results



Energy band diagram for N-type semiconductor

P-type Semiconductor
 When in pure germanium or silicon, impurity of the trivalent element having three valence electrons is added in small definite proportion, P-type results.
Energy band diagram of P-type semiconductor



Applications
 1)Diodes
 2)I.C
 3)Transistor

Thursday, December 9, 2010

Optical Computers

Optical computer

An optical computer (also called a photonic computer) is a device that uses the photons in visible light or infrared (IR) beams, rather than electric current, to perform digital computations. An electric current flows at only about 10 percent of the speed of light. This limits the rate at which data can be exchanged over long distances, and is one of the factors that led to the evolution of optical fiber. By applying some of the advantages of visible and/or IR networks at the device and component scale, a computer might someday be developed that can perform operations 10 or more times faster than a conventional electronic computer.
Visible-light and IR beams, unlike electric currents, pass through each other without interacting. Several (or many) laser beams can be shone so their paths intersect, but there is no interference among the beams, even when they are confined essentially to two dimensions. Electric currents must be guided around each other, and this makes three-dimensional wiring necessary. Thus, an optical computer, besides being much faster than an electronic one, might also be smaller.

Some engineers think optical computing will someday be common, but most agree that transitions will occur in specialized areas one at a time. Some optical integrated circuits have been designed and manufactured. (At least one complete, although rather large, computer has been built using optical circuits.) Three-dimensional, full-motion video can be transmitted along a bundle of fibers by breaking the image into voxels. Some optical devices can be controlled by electronic currents, even though the impulses carrying the data are visible light or IR.
Optical technology has made its most significant inroads in digital communications, where fiber optic data transmission has become commonplace. The ultimate goal is the so-called photonic network, which uses visible and IR energy exclusively between each source and destination. Optical technology is employed in CD-ROM drives and their relatives, laser printers, and most photocopiers and scanners. However, none of these devices are fully optical; all rely to some extent on conventional electronic circuits and components.

























WORKING:
Optical fibers are small glass wires used to send light pulses. They are basically made up of a center glass core, a cladding that makes sure the light doesn’t escape the core, and a buffer coating which protects the inside fibers. When the light enters the core, it is reflected off the walls, which are mirror-lined so the light continues all the way down the fiber. The process of the light reflecting down the fiber is called total internal reflection.
Because optical fibers transmit light, the transfer speed is extremely fast; a great amount faster than that of the copper wires we use today. Also, when sending information over copper wires, it must put the data in small groups called packets. Copper wires can only send one of these packets at a time because the electrical signals cannot run parallel. Light, on the other hand, has no problem with having other data run parallel with it. This means you can send and receive vast amounts of data at the same time.
Optical Fibers also have other advantages, for example, optical wires are cheaper, thinner (which lets you have a higher carrying capacity than copper wires), more power efficient, have less signal degradation, clearer signals, are optimal for carrying digital signals, lightweight, and flexible. Along with these, optical fibers can also help benefit many occupations such as medical imaging, mechanical imaging, and even in plumbing to examine the sewer lines.



















































COMPARITION:











Smaller, more compact computers are often faster because computation time depends on shorter connections between components. In the search for speed, computer chips have grown ever smaller: it is estimated that the number of transistor switches that can be put onto a chip doubles every 18 months. It is now possible to fit 300 million transistors on a single silicon chip, and some scientists have predicted that in the next few decades computer technology will have reached the atomic level.
Up:Magnification of an Intel i4004 microprocessor chip. Photo copyright: National High Magnetic Field Laboratory, Florida State University.
But more transistors mean the signals have to travel a greater distance on thinner wires. As the switches and connecting wires are squeezed closer together, the resulting crosstalk can inadvertently cause a digital signal to change from a 1 to a 0. Scientists are working on developing newer, better insulators to combat this problem. But optical computers wouldn't need better insulators because they don't experience crosstalk. The thin-films used in electro-optic computers would eliminate many such problems plaguing electronics today.
"The thin-films allow us to transmit information using light. And because we're working with light, we're working with the speed of light without generating as much heat as electrons," says Frazier. "We can move information faster than electronic circuits, and without the need to remove damaging heat."

up: Blue and red lasers reflecting off mirrors. Photo Credit: Department of Energy/Coherent Inc Laser Group.
Multiple frequencies (or different colors) of light can travel through optical components without interference, allowing photonic devices to process multiple streams of data simultaneously. And the optical components permit a much higher data rate for any one of these streams than electrical conductors. Complex programs that take 100 to 1,000 hours to process on modern electronic computers could eventually take an hour or less on photonic computers.











APPLICATION:
 we can use this computer in VIRTUAL REALITY

We can create a 3-D picture using this computer.



 The system uses two computer-controlled infrared lasers to trace its 3-D picture inside a cube of special laminated glass, much as the electron beam from a cathode ray tube traces a 2-D image on a television screen. The energy generated at the point where the invisible laser beams intersect makes a single point of the glass glow with visible light—a precise point like video screen pixel seemingly suspended in space. “This allows you to address a pixel anywhere inside a three-dimensional volume, and then by scanning rapidly, you can draw three-dimensional images.

 It can also be used in MEDICAL SIGNIFICANCE




 This computer also used by ARMY

The computer used in ARMY required very high speed execution because they want quick response from the computer PROCESSOR”. on what ever instruction given by commando. So, in army application we can use this type of computer. They are given idea that “We require this type of operation”. So, the manufactures make that operation related “OPTICAL

















HOLLOW GRAPHIC MEMORY:
When Optical Computers are available, a new type of storage device will be used in the new computers. The new Holographic hard drives will store massive amounts of information in a sugar cube sized area. They will be able to do this by storing data in hologram form. This will be achieved using a precise technique of laser shining, as shown in the diagram to the right. A blue-green argon laser will be shined through a beam splitter. The original beam, which will have been split into a signal beam and a reference beam, will take different paths towards a lithium-niobate crystal. The signal beam will be reflected by a mirror into a spatial light modulator (SLM), which is a liquid crystal display (LCD) that shows pages of raw binary data as clear and dark boxes. The information from the page of binary code is carried by the signal beam around to the light-sensitive crystal. Meanwhile, the reference beam will take another path to the crystal. When the two beams meet, the interference created between them will be stored in a specific area of the crystal, as a hologram.


LIMITATION:

The Limitation is only that it is not still general purpose computer. So it is made for only particular task. Whatever task is given based on this manufacture design the processor. And it will perform that much operation only.

















































CONCLUSION:
Currently, no true optical computers yet exist. The problems of design seem to stem from eliminating the conversion from photons to electrons and back. This conversion is necessary now because we don't have all-optical versions of all the myriad switching devices required by a computer.

In conclusion, technology is always changing, and computer technology will soon take a drastic change too. Optics opens new doors to the computer world that people used to just dream about. From face recognition to artificial intelligence, optics could easily make these practices trouble-free. Optics are already being used around the world for various applications, and the future looks very promising

Bluetooth Hacking

Bluetooth is a wireless technology that enables any electrical device to wirelessly communicate in the 2.5 GHz ISM (license free) frequency band. It allows devices such as mobile phones, headsets, PDA's and portable computers to communicate and send data to each other without the need for wires or cables to link to devices together. It has been specifically designed as a low cost, low power, radio technology, which is particularly suited to the short range Personal Area Network (PAN) application. (It is the design focus on low cost, low size and low power, which distinguishes it from the IEEE 802.11 wireless LAN technology).
The Main Features of Bluetooth:
- Operates in the 2.4GHz frequency band without a license for wireless communication.
- Real-time data transfer usually possible between 10-100m.
- Close proximity not required as with infrared data (IrDA) communication devices as Bluetooth doesn't suffer from interference from obstacles such as walls.
- Supports both point-to-point wireless connections without cables between mobile phones and personal computers, as well as point-to-multipoint connections to enable ad hoc local wireless networks.
- It uses unlicensed ISM (Industrial, Scientific and Medical) band, 2400 - 2483.5 MHz, Modulation - Gaussian frequency shift keying,. Frequency Hopping Spread Spectrum - 1600 hops/sec, amongst 79 channels, spaced at 1 MHz separation.

When and How was it Conceived?
Bluetooth was originally conceived by Ericsson in 1994, when they began a study to examine alternatives to cables that linked mobile phone accessories.
Where did the Name Come From?
Bluetooth was named after Herald Blatand (or Bluetooth), a tenth century Danish Viking king who had united and controlled large parts of Scandinavia which are today Denmark and Norway. The name was chosen to highlight the potential of the technology to unify the telecommunications and computing industries
SIG Membership?
Since its original foundation, the Bluetooth SIG has transitioned into a not-for-profit trade association, Bluetooth SIG, Inc. Membership is open to all companies wishing to develop, market and promote Bluetooth products at two levels - Associate and Adopter Members.
Bluetooth Security
1 The Bluetooth pairing & authentication process
The Bluetooth initialization procedures consist of 3 or 4 steps:
1. Creation of an initialization key (Kinit).
2. Creation of a link key (Kab).
3. Authentication.
After the 3 pairing steps are completed, the devices can derive an encryption key to hide all future communication in an optional fourth step.
Before the pairing process can begin, the PIN code must be entered into both Bluetooth devices. Note that in some devices (like wireless earphones) the PIN is fixed and cannot be changed. In such cases, the fixed PIN is entered into the peer device. If two devices have a fixed PIN, they cannot be paired, and therefore cannot communicate. In the following sections we go into the details of the steps of the pairing process.

1 Creation of Kinit
The Kinit key is created using the E22 algorithm, whose inputs are:
1. a BD_ADDR.
2. the PIN code and its length.
3. a 128 bit random number IN_RAND.
This algorithm outputs a 128-bit word, which is referred to as the initialization key (Kinit).
Figure 1 describes how Kinit is generated using E22. Note that the PIN code is available at both Bluetooth devices, and the 128 bit IN_RAND is transmitted in plaintext. As for the BD_ADDR: if one of the devices has a fixed PIN, they use the BD_ADDR of the peer device. If both have a variable PIN, they use the PIN of the slave device that receives the IN_RAND. In Figure 1, if both devices have a variable PIN, BD_ADDRB shall be used. The Bluetooth device address can be obtained via an inquiry routine by a device. This is usually done before connection establishment begins
This initialization key (Kinit) is used only during the pairing process. Upon the creation of the link key (Kab), the Kinit key is discarded.

Figure 1: Generation of Kinit using E22

2.1.2 Creation of Kab
After creating the initialization key, the devices create the link key Kab. The devices use the initialization key to exchange two new 128 bit random words, known as LK_RANDA and LK_RANDB. Each device selects a random 128 bit word and sends it to the other device after bitwise xoring it with Kinit. Since both devices know Kinit, each device now holds both random numbers LK_RANDA and LK_RANDB. Using the E21 algorithm, both devices create the link key Kab. The inputs of E21 algorithm are:
1. a BD_ADDR.
2. The 128 bit random number LK_RAND.
Note that E21 is used twice is each device, with two sets of inputs. Figure 2 describes how the link key Kab is created.

Figure 2: Generation of Kab using E21

2.1.3 Mutual authentication
Upon creation of the link key Kab, mutual authentication is performed. This process is based on a challenge-response scheme. One of the devices, the verifier, randomizes and sends (in plaintext) a 128 bit word called AU_RANDA. The other device, the claimant, calculates a 32 bit word called SRES using an algorithm E1. The claimant sends the 32 bit SRES word as a reply to the verifier, who verifies (by performing the same calculations) the response word. If the response word is successful, the verifier and the claimant change roles and repeat the entire process. Figure 3 describes the process of mutual authentication. The inputs to E1 are:
1. The random word AU_RANDA.
2. The link key Kab.
3. Its own Bluetooth device address (BD_ADDRB).
Note that as a side effect of the authentication process, both peers calculate a 96 bit word called ACO. This word is optionally used during the creation of the encryption key. The creation of this encryption key exceeds our primary discussion and shall not be described in this paper.

Figure 3: Mutual authentication process using E1

2.2 Bluetooth cryptographic primitives
As we described above, the Bluetooth pairing and authentication process uses three algorithms: E22, E21, E1. All of these algorithms are based on the SAFER+ cipher with some modifications. Here we describe features of SAFER+ that are relevant to our attack.

2.2.1 Description of SAFER+
SAFER+ is a block cipher with a block size of 128 bits and three different key lengths: 128, 192 and 256 bits. Bluetooth uses SAFER+ with 128 bit key length. In this mode, SAFER+ consists of:
1. KSA - A key scheduling algorithm that produces 17 different 128-bit subkeys.
2. 8 identical rounds.
3. An output transformation - which is implemented as a xor between the output of the last round and the last subkey.
Figure 4 describes the inner design of SAFER+, as it is used in Bluetooth.

Figure 4: Inner design of SAFER+
The key scheduling algorithm (KSA)
The key scheduling algorithm used in SAFER+ produces 17 different 128-bit subkeys, denoted K1 to K17. Each SAFER+ round uses 2 subkeys, and the last key is used in the SAFER+ output transformation. The important details for our discussion are that in each step of the KSA, each byte is cyclic-rotated left by 3 bit positions, and 16 bytes (out of 17) are selected for the output subkey. In addition, a 128 bit bias vector, different in each step, is added to the selected output bytes.
The SAFER+ Round
As depicted, SAFER+ consists of 8 identical rounds. Each round calculates a 128 bit word out of two subkeys and a 128 bit input word from the previous round.
3 Bluetooth PIN Cracking


3.1 The Basic Attack:

Table 1: List of messages sent during the pairing and authentication process. ``A'' and ``B'' denote the two Bluetooth devices.
# Src Dst Data Length Notes
1 A B IN_RAND 128 bit plaintext
2 A B LK_RANDA 128 bit XORed with Kinit
3 B A LK_RANDB 128 bit XORed with Kinit
4 A B AU_RANDA 128 bit plaintext
5 B A SRES 32 bit plaintext
6 B A AU_RANDB 128 bit plaintext
7 A B SRES 32 bit plaintext


Assume that the attacker eavesdropped on an entire pairing and authentication process, and saved all the messages (see Table 1). The attacker can now use a brute force algorithm to find the PIN used. The attacker enumerates all possible values of the PIN. Knowing IN_RAND and the BD_ADDR, the attacker runs E22 with those inputs and the guessed PIN, and finds a hypothesis for Kinit. The attacker can now use this hypothesis of the initialization key, to decode messages 2 and 3. Messages 2 and 3 contain enough information to perform the calculation of the link key Kab, giving the attacker a hypothesis of Kab. The attacker now uses the data in the last 4 messages to test the hypothesis: Using Kab and the transmitted AU_RANDA (message 4), the attacker calculates SRES and compares it to the data of message 5. If necessary, the attacker can use the value of messages 6 and 7 to re-verify the hypothesis Kab until the correct PIN is found. Figure 6 describes the entire process of PIN cracking.
Note that the attack, as described, is only fully successful against PIN values of under 64 bits. If the PIN is longer, then with high probability there will be multiple PIN candidates, since the two SRES values only provide 64 bits of data to test against. A 64 bit PIN is equivalent to a 19 decimal digits PIN.


Figure 6: The Basic Attack Structure.


4 The Re-Pairing attack

4.1 Background and motivation
This section describes an additional attack on Bluetooth devices that is useful when used in conjunction with the primary attack described in Section 3. Recall that the primary attack is only applicable if the attacker has eavesdropped on the entire process of pairing and authentication. This is a major limitation since the pairing process is rarely repeated. Once the link key Kab is created, each Bluetooth device stores it for possible future communication with the peer device. If at a later point in time the device initiates communication with the same peer - the stored link key is used and the pairing process is skipped. Our second attack exploits the connection establishment protocol to force the communicating devices to repeat the pairing process. This allows the attacker to record all the messages and crack the PIN using the primary attack described in this paper.

4.2 Attack details
Assume that two Bluetooth devices that have already been paired before now intend to establish communication again. This means that they don't need to create the link key Kab again, since they have already created and stored it before. They proceed directly to the Authentication phase (Recall Figure 3). We describe three different methods that can be used to force the devices to repeat the pairing process. The efficiency of each method depends on the implementation of the Bluetooth core in the device under attack. These methods appear in order of efficiency:
1. Since the devices skipped the pairing process and proceeded directly to the Authentication phase, the master device sends the slave an AU_RAND message, and expects the SRES message in return. Note that Bluetooth specifications allow a Bluetooth device to forget a link key. In such a case, the slave sends an LMP_not_accepted message in return, to let the master know it has forgotten the link key. Therefore, after the master device has sent the AU_RAND message to the slave, the attacker injects a LMP_not_accepted message toward the master. The master will be convinced that the slave has lost the link key and pairing will be restarted. Restarting the pairing procedure causes the master to discard the link key. This assures pairing must be done before devices can authenticate again.
2. At the beginning of the Authentication phase, the master device is supposed to send the AU_RAND to the slave. If before doing so, the attacker injects a IN_RAND message toward the slave, the slave device will be convinced the master has lost the link key and pairing is restarted. This will cause the connection establishment to restart.
3. During the Authentication phase, the master device sends the slave an AU_RAND message, and expects a SRES message in return. If, after the master has sent the AU_RAND message, an attacker injects a random SRES message toward the master, this will cause the Authentication phase to restart, and repeated attempts will be made. At some point, after a certain number of failed authentication attempts, the master device is expected to declare that the authentication procedure has failed (implementation dependent) and initiate pairing.
4. The three methods described above cause one of the devices to discard its link key. This assures the pairing process will occur during the next connection establishment, so the attacker will be able to eavesdrop on the entire process, and use the method described in Section 3 to crack the PIN.
In order to make the attack ``online'', the attacker can save all the messages transferred between the devices after the pairing is complete. After breaking the PIN (0.06-0.3 sec for a 4 digit PIN), the attacker can decode the saved messages, and continue to eavesdrop and decode the communication on the fly. Since Bluetooth supports a bit rate of 1 Megabit per second, a 40KB buffer is more than enough for the common case of a 4 digit PIN.
Notes:
1. The Bluetooth specification does allow devices to forget link keys and to require repeating the pairing process. This fact makes the re-pairing attack applicable.
2. Re-Pairing is an active attack, that requires the attacker to inject a specific message at a precise point in the protocol. This is most likely needs a custom Bluetooth device since off-the-shelf components will be unable to support such behavior.
3. If the slave device verifies that the message it receives is from the correct BD_ADDR, then the attack requires the injected message to have its source BD_ADDR ``spoofed'' - again requiring custom hardware.
4. If the attack is successful, the Bluetooth user will need to enter the PIN again - so a suspicious user may realize that his Bluetooth device is under attack and refuse to enter the PIN.
5 Countermeasures
This section details the countermeasures one should consider when using a Bluetooth device. These countermeasures will reduce the probability of being subjected to both attacks and the vulnerability to these attacks.

1. Since Bluetooth is a wireless technology, it is very difficult to avoid Bluetooth signals from leaking outside the desired boundaries. Therefore, one should follow the recommendation in the Bluetooth standard and refrain from entering the PIN into the Bluetooth device for pairing as much as possible. This reduces the risk of an attacker eavesdropping on the pairing process and finding the PIN used.
Most Bluetooth devices save the link key (Kab) in non-volatile memory for future use. This way, when the same Bluetooth devices wish to communicate again, they use the stored link key. However, there is another mode of work, which requires entering the PIN into both devices every time they wish to communicate, even if they have already been paired before. This mode gives a false sense of security! Starting the pairing process every time increases the probability of an attacker eavesdropping on the messages transferred. We suggest not to use this mode of work.
2. Finally, the PIN length ranges from 8 to 128 bits. Most manufacturers use a 4 digit PIN and supply it with the device. Obviously, customers should demand the ability to use longer PINs.
3.Instead of passing messages in plain text, they should be encoded before transmission.

The Future of Bluetooth
The next version of Bluetooth, currently code named Lisbon, includes a number of features to increase security, usability and value of Bluetooth. The following features are defined:
- Atomic Encryption Change
- Extended Inquiry Response
- Sniff Subrating QoS Improvements
- Simple Pairing
Types of attacks in Bluetooth
The SNARF attack:
It is possible, on some makes of device, to connect to the device without alerting the owner of the target device of the request, and gain access to restricted portions of the stored data therein, including the entire phonebook (and any images or other data associated with the entries), calendar, realtime clock, business card, properties, change log, IMEI (International Mobile Equipment Identity [6], which uniquely identifies the phone to the mobile network, and is used in illegal phone 'cloning'). This is normally only possible if the device is in "discoverable" or "visible" mode, but there are tools available on the Internet that allow even this safety net to be bypassed.
The BACKDOOR attack:
The backdoor attack involves establishing a trust relationship through the "pairing" mechanism, but ensuring that it no longer appears in the target's register of paired devices. In this way, unless the owner is actually observing their device at the precise moment a connection is established. Device grants access to services. This means that not only can data be retrieved from the phone, but other services, such as modems or Internet, WAP and GPRS gateways may be accessed without the owner's knowledge or consent. Indications are that once the backdoor is installed, the above SNARF attack will function on devices that previously denied access, and without the restrictions of a plain SNARF attack, so we strongly suspect that the other services will prove to be available also.
The BLUEBUG attack:
The bluebug attack creates a serial profile connection to the device, thereby giving full access to the AT command set, which can then be exploited using standard off the shelf tools, such as PPP for networking and gnokii for messaging, contact management, diverts and initiating calls. With this facility, it is possible to use the phone to initiate calls to premium rate numbers, send sms messages, read sms messages, connect to data services such as the Internet, and even monitor conversations in the vicinity of the phone. This latter is done via a voice call over the GSM network, so the listening post can be anywhere in the world. Bluetooth access is only required for a few seconds in order to set up the call. Call forwarding diverts can be set up, allowing the owner's incoming calls to be intercepted, either to provide a channel for calls to more expensive destinations, or for identity theft by impersonation of the victim.
Scanning for Bluetooth addresses
The Bluetooth address itself is a unique 48bit device identifier, where the first 3 bytes of the address are assigned to a specific manufacturer by the IEEE (www.ieee.org/), and the last 3 bytes are freely allocated by the manufacturer. For example, the hexadecimal representation of a Sony Ericsson P900 phone's Bluetooth address may look like 00:0A:D9:EB:66:C7, where the first 3 bytes of this address (00:0A:D9) are registered to Sony Ericsson by the IEEE, meaning that all P900 phones will have their Bluetooth address starting with same 3 bytes. The last 3 bytes (EB:66:C7) of the sample address are assigned to this device by Sony Ericsson and should be different for each P900 phone -- but is not always, unfortunately.
In theory, enabling the non-discoverable mode on a Bluetooth device should protect users from unauthorized connections, yet in practice it is still quite possible to find these devices. There are software tools available which allow brute-force discovery of non-discoverable devices. An example of such an application is RedFang by Ollie Whitehouse, a small application which simply tries to connect to a unique Bluetooth address one by one, until finally a hidden device answers the request sent that was sent to that particular address. Author's initial test is a minimum of 6 seconds to achieve a good level of accuracy (it varies from 2.5 to 10 seconds, on average). It is certainly possible to find a hidden device in less than 3 seconds, The address space used by Sony Ericsson has 16,777,216 possible addresses. If we assume 6 seconds are required per device, the total scan would take us 1165 days, meaning we would need more than 3 years to discover all hidden Sony Ericsson phones in a conference room.
Conclusion:
With the advancement of digital convergence on M-commerce, usuage of bluetooth in connecting different devices is going to be significant. But to make communication more secure advancement in the prospect of security must not be neglected.

Wednesday, December 8, 2010

Oracle 11G continue

According to many studies, 40% of application outages are caused by operator or user errors. Part of being human is making mistakes. But these errors are extremely difficult to avoid and can be particularly difficult to recover from without advance planning and the right technology. Such errors can result in "logical" data corruption, or cause downtime of one or more components of the IT infrastructure. While it is relatively simple to rectify the failure of an individual component, detection and repair of logical data corruption, such as accidental deletion of valuable data, is a time consuming operation that causes enormous loss of business productivity. Typical user-errors may include accidental deletion of valuable data, deleting the wrong data, and dropping the wrong table.
Guarding Against Human Errors
The Oracle Database architecture leverages the unique technological advances in the area of database recovery due to human errors. Oracle Flashback Technology provides a set of new features to view and rewind data back and forth in time. The Flashback features offer the capability to query historical data, perform change analysis, and perform self-service repair to recover from logical corruptions while the database is online. With Oracle Flashback Technology, you can indeed undo the past!
Oracle9i introduced Flashback Query to provide a simple, powerful and completely non-disruptive mechanism for recovering from human errors. It allows users to view the state of data at a point in time in the past without requiring any structural changes to the database.
Oracle Database 10g extended the Flashback Technology to provide fast and easy recovery at the database, table, row, and transaction level. Flashback Technology revolutionizes recovery by operating just on the changed data. The time it takes to recover the error is now equal to the same amount of time it took to make the mistake. Oracle 10g Flashback Technologies includes Flashback Database, Flashback Table, Flashback Drop, Flashback Versions Query, and Flashback Transaction Query.
Flashback technology can just as easily be utilized for non-repair purposes, such as historical auditing with Flashback Query and undoing test changes with Flashback Database. Oracle Database 11g introduces an innovative method to manage and query long-term historical data with Flashback Data Archive. This release also provides an easy, one-step transaction backout operation, with the new Flashback Transaction capability.
New Features in Oracle Database 11g
Flashback Data Archive
Flashback Data Archive can be used to automatically track and maintain historical changes to all Oracle data in a highly application transparent, secure and efficient manner. Part of the Oracle Total Recall Option, Flashback Data Archive provides enterprises with a quick, centralized and extremely efficient solution to meet all historical data management needs. Flashback Data Archive automatically tracks every single change made to the data stored inside the database and maintains a secure, efficient and easily accessible archive of historical data. The captured historical data can be retained for as long as the business demands and is easily accessible using Flashback SQL queries. Historical data tracking can be enabled on both existing and new tables instantaneously and more importantly, in a completely application transparent manner.
Flashback Data Archive presents a high-performance, storage optimized solution with a centralized management interface for satisfying data retention and change control requirements for organizations. The primary advantages of using Flashback Data Archive for historical data tracking include:
• Application Transparent: Enabling historical data capture on one or more tables can be done instantaneously with no or minimal application changes. Customers can therefore use this feature to capture historical data for both packaged as well as home grown applications.
• Seamless Access: Historical data can be easily accessed using familiar Flashback SQL constructs. Flashback Data Archive includes support for Flashback Queries. Applications can seamlessly query the history of table data, as it existed in different points in time. No special snapshots need to be taken to take advantage of this feature.
• Security: Historical data, once generated, is immutable to all users. This is enabled out-of-the-box and no special or extra setup is required. Access to the internal history tables is restricted to reads only. No DML operations are allowed to users, including administrators. Applications need not query the internal history tables directly as seamless access is provided through the Flashback Query mechanism.
• Minimal performance overhead: Regular user transactions will see negligible impact. Flashback Data Archive employs a lightweight mechanism to mark DML operations on tracked tables for archiving. The actual history generation and archiving is done asynchronously through a background process as explained later.
• Storage Optimized: The history data is internally partitioned and highly compressed to reduce the storage footprint. Flashback Data Archive employs a highly efficient compression scheme to compress the internal history tables. In addition, it automatically partitions the internal history tables based on a range-partitioning scheme. Both compression and partitioning in flashback data archive are managed automatically and require no special administration.
• Centralized Management: Flashback Data Archive provides a centralized and policy-based management interface to automate a number of ongoing administrative tasks. With Flashback Data Archive, you can easily group tables and set a common retention policy. New tables will automatically inherit the retention parameter from the flashback data archive in which it resides. Oracle will automatically purge aged-out history data for all tracked tables based on the specified retention. This frees up the administrator from the repetitive management of history data and avoids costly errors associated with manual maintenance, such as purging incorrect history data.
Flashback Transaction
Large-scale database applications rely on complex sequences of transactions, to ensure atomicity and consistency of a group of inserts, updates, or deletes. In the event of a ‘bad’ transaction, the administrator must trail back-in-time to see what changes were effected by the transaction and ascertain any dependencies (e.g. transactions that modified the same data after the ‘bad’ transaction), to ensure that undoing the transaction preserves the original, good state of the data and any related data. Performing this type of transaction analysis can be laborious, especially for very complex applications.
With Flashback Transaction, a single transaction, and optionally, all of its dependent transactions, can be flashed back with a single PL/SQL operation or by using an intuitive EM wizard to identify and flashback the problem transactions. Flashback Transaction relies on the availability of undo data and archived redo logs for the given transaction and its dependents, to backout the changes.
New Features in Oracle Database 10g Release 2
Restore Points
When an Oracle database point-in-time recovery operation is required, a DBA must determine a time or SCN to which the data must be rolled back. Oracle Database 10g Release 2 simplifies point in time recovery with restore points. A restore point is a user-defined name that can be substituted for an SCN or clock time when used in conjunction with Flashback Database, Flashback Table, and Recovery Manager (RMAN), and can be created at the command-line with SQL*Plus or RMAN, or through Enterprise Manager. Restore points eliminate the need to investigate the SCN or time of a transaction and provides users with the ability to bookmark a database transaction event. Guaranteed restore points ensure that sufficient flashback logs are always maintained to get back to that restore point. This means that flashback logs will not be deleted by the Flash Recovery Area, unless they are not needed for the current guaranteed restore points. These special restore points can be created before major database changes, such as a database batch job or schema upgrade, and used for flashback if the changes need to be undone.
Flashback Database Through RESETLOGS
Flashback Database through RESETLOGS allows flashback logs created prior to a RESETLOGS operation to be utilized for Flashback Database operations. In Oracle Database 10g Release 2, flashback logs are preserved after opening the database with RESETLOGS. This new feature is useful when a long-standing logical error is not discovered until after RESETLOGS is performed, and a flashback prior to RESETLOGS is needed. In an Oracle Data Guard environment, this capability allows a physical standby database that has been opened read-write to later flashback the changes and be converted back to a physical standby database. If a logical error is discovered after a switchover operation, the primary and standby databases can be flashed back to an SCN or a point in time prior to the switchover operation.
New Features in Oracle Database 10g Release 1
Flashback Database
Flashback Database quickly rewinds an Oracle database to a previous time, to correct any problems caused by logical data corruptions or user errors. Flashback Database is like a 'rewind button' for your database. It provides database point in time recovery without requiring a backup of the database to first be restored. When you eliminate the time it takes to restore a database backup from tape, database point in time recovery is fast
The Flashback Database capability, accessible from both RMAN and SQL*Plus by using the FLASHBACK DATABASE command, is similar to conventional point-in-time recovery in its effects. It allows you to return a database to its state at a time in the recent past. To enable the Flashback Database capability, a DBA configures the Flash Recovery Area. The Flash Recovery Area is a new feature in Oracle Database 10g that provides a unified storage location for all recovery related files and activities in an Oracle database. Besides Flashback Database logs, the recovery area contains archived redo logs and RMAN backups. For more information on the Flash Recovery Area, consult the Oracle Backup and Recovery documentation.
Oracle automatically creates and manages Flashback Logs within the Flash Recovery Area. Since the Flash Recovery Area is configured with a space quota, the Flashback Logs are subject to those disk space restrictions. The size of Flashback Logs can vary considerably, depending on the read/write ratio of database changes during a given flashback-logging interval. A copy of the old block version is written to the Flashback Log. If, over the course of a day, 10% of the database blocks are updated, then the size of Flashback Logs for 24 hours is approximately one-tenth the size of your database. The DBA may change this disk quota dynamically if more disk space is required to recover the database to an earlier time in the past.
Flashback provides Data Guard with an easy-to-use method to correct user errors. Flashback Database can be used on both the primary and standby database to quickly revert the databases to an earlier point in time to back out user errors. If the administrator decides to failover to a standby database, but those user-errors were already applied to the standby database (for example, because Real Time Apply was enabled), the administrator can simply flashback the standby database to a safe point in time.

The performance overhead of enabling Flashback Database is less than 2%. While you may not be willing to sacrifice any performance overhead for your production database, think about the trade-off. If you could recover the database in minutes instead of hours, saving your company millions of dollars in lost revenue, would you then give 2% of the resources to Flashback Database? Enabling Flashback Database functionality provides the following benefits.
• Eliminate the time to restore a backup. When a database is down because it runs into a catastrophic problem, considerable revenue can be lost because the company cannot do business.
• Eliminate standby database redo apply delay. Flashback database is seamlessly integrated with Data Guard. A standby database can now be quickly and easily flashed back to an arbitrary point in time, so a delay in redo apply is not necessary.
• Unanticipated error correction. Flashback Database provides a continuous snapshot of the Oracle database. The database can be rewound back to a SCN or timestamp.
Flashback Table
When a human or application error occurs, you want to be able to restore the state of one or more tables to a point in time before the problem occurred. Flashback Table provides the DBA the ability to recover a table or a set of tables to a specified point in time quickly, easily, and online. Flashback Table restores the tables while automatically maintaining its associated attributes such as - the current indexes, triggers and constraints, not requiring the DBA to find and restore application specific properties. Flashback Table alleviates the need for you to perform more complicated point in time recovery operations. The following command flashes back the ORDERS and ORDER_ITEMS tables to 2:33 PM on July 7.
FLASHBACK TABLE orders, order_items TO TIMESTAMP (JUL-07-2003, 02:33:00);
Like Flashback Query, Flashback Table also relies on the undo data to recover the tables. The undo data, therefore, must be available in order for a Flashback Table to be successful. The Automatic Undo Management feature allows you to specify how long they wish to retain the undo data using the UNDO_RETENTION initialization parameter. By using this parameter and sizing the undo tablespace appropriately, DBAs can control how far back in time a table can be repaired using Flashback Table.
While a DBA can use the Flashback Table feature to quickly recover from human errors, it also serves as a self-service repair tool to recover from accidental modifications or deletions. An application developer can incorporate the Flashback Table functionality into their customized application. This tool provides significant benefits over media recovery in terms of ease of use, availability and faster restoration with point-in-time object based recovery. Flashback Table
• Performs the restore operation online
• Restores all data in a specified table to a previous point in time described by a timestamp or SCN
• Automatically restores all of the table attributes, such as indexes, triggers, and the like that are necessary for an application to function with the flashed back table
• Maintains any remote state in a distributed environment. For example, all of the table modifications required by replication are flashed back.
• Maintains data integrity as specified by constraints. Oracle preserves all dependent objects and the referential integrity.
• Provides the ability to revert it back to its original state even after a flashback operation.
Flashback Drop
Dropping of objects by accident has always been a problem for users and DBAs alike. Users soon realize their mistake but then it's too late and historically there is no easy way to recover those dropped tables, indexes, constraints, triggers, etc. Flashback Drop provides a safety net when dropping objects in Oracle Database 10g. When a user drops a table, Oracle automatically places it into the Recycle Bin.

What is the Recycle Bin?
The Recycle Bin is a virtual container where all dropped objects reside. Underneath the covers, the objects are occupying the same space as when they were created. If table EMP was created in the USERS tablespace, the dropped table EMP remains in the USERS tablespace. Dropped tables and any associated objects such as indexes, constraints, nested tables, and other dependant objects are not moved, they are simply renamed with a prefix of BIN$$. You can continue to access the data in a dropped table or even use Flashback Query against it. Each user has the same rights and privileges on Recycle Bin objects before they were dropped. You can view your dropped tables by querying the new RECYCLEBIN view. Objects in the Recycle Bin will remain in the database until the owner of the dropped objects decides to permanently remove them using the new PURGE command. The Recycle Bin objects are counted against a user's quota. But Flashback Drop is a non-intrusive feature. Objects in the Recycle Bin will be automatically purged by the space reclamation process if
• a user creates a new table or adds data that causes their quota to be exceeded.
• the tablespace needs to extend its file size to accommodate create/insert operations.
Dropped the wrong table? No problem. Just undrop it with Flashback Drop.
Flashback Query
Introduced with Oracle9i, Flashback Query provides the ability to view the data as it existed in the past. By default, operations on the database use the most recent committed data available. If you want to query the database as it was at some time in the past, you can do so with the Flashback Query feature. It lets you specify either a time or a system change number (SCN) and query using the committed data from the corresponding time. The Flashback Query mechanism is most effective when you use Automatic Undo Management.
The Oracle database treats undo as a first class database object. Undo is persistent and can survive database system crash or, shutdown. It also shares the database buffer cache with other database objects for better performance. The Oracle database uses undo beyond transaction commit to provide read consistency for long running queries and also, to recover from logical corruptions.
The Oracle database provides a means of explicitly specifying the amount of undo to retain. The system automatically recycles expired undo to make space for new transactions to generate undo. The choice of undo retention value depends upon the length of the long running queries and the logical corruption recovery requirements. Users can, however, choose not to specify the undo retention and allow the system to provide the best retention for the given undo space. This best retention allows for best possible coverage for the long running queries and also, to recover from logical corruptions. The default undo retention is not guaranteed. The system can use oldest un-expired undo if it runs out of expired undo to use for an ongoing transaction.
New in Oracle Database 10g Release 1 is the ability to query data in the past for more than 5 days if the UNDO_RETENTION is set for greater then 5 days. Oracle will maintain the undo for that period of time as long as the Undo Tablespace datafiles are allocated enough disk space The following describes the steps required to ensure a database is enabled to use the Flashback Query and other flashback features that are dependent upon undo information:
1. Ensure that the database is using an undo tablespace. Setting the UNDO_MANAGEMENT initialization parameter to AUTO specifies this.
2. Set the UNDO_RETENTION initialization parameter to a value that causes undo to be kept for a length of time that allows success of your longest query back in time or to recover from human errors.
3. To guarantee that unexpired undo will not be overwritten, set the RETENTION GUARANTEE clause for the undo tablespace.
The unique feature of Flashback Query allows you to see the data as it was in the past, then choose exactly how to process the information. You might perform an analysis and then undo the changes, or capture changed data for further processing. The Flashback Query mechanism is flexible enough to be used in many situations. You can:
• query data as it existed in the past.
• compare current data with past data. You can compare individual rows or do more complex comparisons such as finding the intersection or union.
• recover deleted or changed data.
Flashback Versions Query
Flashback Versions Query provides a way to audit the rows of a table and retrieve information about the transactions that changed the rows. It retrieves all committed versions of the rows that exist or ever existed between the time the query was issued and a point in time in the past. It accomplishes this by utilizing Automatic Undo Management.
The Flashback Versions Query is an extension to SQL that allows you to retrieve the different versions of rows in a given table that existed in a specific time interval. For any given table, a new row version is created every time the COMMIT statement is executed. The Flashback Versions Query returns a row for each version of the row that existed in the time interval you specify. You invoke the Flashback Versions Query functionality by using the VERSIONS BETWEEN clause of the SELECT statement.
Flashback Versions Query offers new additional columns that provide transaction details on the row data that allows a DBA to pinpoint when and how data is changed in the Oracle database.
• VERSIONS_XID - The transaction id that created this version of the row
• VERSIONS_OPERATION - The action that created this version of the row (such as delete, insert, and update)
• VERSIONS_STARTSCN - The SCN in which this row version first occurred
• VERSIONS_ENDSCN -- The SCN in which this row version was changed.
The Flashback Versions Query is a powerful tool for the DBA to run analysis and answer the question, 'How did this happen?' Not only can the DBA run manual analysis, but this is a powerful tool for the application's developer as well. You can build customized applications for auditing purposes. Now everyone really is accountable for his or her actions.
Flashback Transaction Query
You may discover that somehow data in a table has been inappropriately changed. To research this change, you can use multiple flashback queries to view row data at specific points in time. More efficiently, you can use Flashback Versions Query feature to view all changes to a row over a period of time and the associated transaction id's. This feature allows you to append VERSIONS BETWEEN clause to a SELECT statement that specifies an SCN or timestamp range between which you want to view changes to row values.
Once you identify an erroneous transaction, you can then use the Flashback Transaction Query feature to identify other changes that were done by the transaction, and to request the undo SQL to reverse those changes. The FLASHBACK_TRANSACTION_QUERY view is the means by which you obtain transaction history and undo SQL.
If you need to reverse the effects of the erroneous transaction, the undo SQL statements can be manually executed, allowing easy recovery from user or application errors. Flashback Transaction Query can increase online diagnosability of problems in your database and facilitate analysis and audits of transactions.
Summary
Human errors are one of the predominant causes of system failure. These errors are extremely difficult to avoid and can be particularly difficult to recover without advance planning and the right technology. The 'right' technology is here: Oracle Database 11g. Why should an error that takes seconds to execute take hours or days to recovery from? It shouldn't and now it doesn't. Flashback revolutionizes recovery by operating on just the changed data. A single command surgically repairs corruptions from human errors. Flashback technology removes the complexity of recovery while decreasing the time it takes to recover from unpredictable human errors.




The Oracle 11g ILM assistant
In Oracle 11g, ILM has been enhanced to incorporate Oracle partitioning (and the all-important "exchange partition" syntax), to allow easy data movement at the partition level. As highly-active data "ages out" and becomes low-activity, ILM allows the DBA to easily "move" it away from the high-cost storage onto cheaper media. Oracle says that the basic ILM steps include:
1. Define the Data Classes
2. Create Storage Tiers for the Data Classes
3. Create Data Access and Migration Policies
4. Define and Enforce Compliance Policies
To allow for easy data movement within ILM, Oracle leverages their Automatic Storage Management (ASM) and partitioning features, all within a 11g ILM assistant, a GUI designed to remove the tedium from managing many "layers" of storage. Oracle 11g introduces there features within ILM:
• New Oracle advanced data compression for tables, LOB's and partitions

• New "Interval", "Ref" and "virtual column" partitioning methods

• New 11g partitioning methods (list-list, list-range, list-hash and range-range)
In sum, ILM is more of a collection and integration of existing tools (ASM, partitioning) than a separate product, and the Apex front-end (the ILM assistant) provides an easy interface to the management of multi-tiered data.






Oracle Real Application Clusters (Oracle RAC) is an option to Oracle Database 11g Enterprise Edition and included with Oracle Database 11g Standard Edition (on clusters with a maximum of four sockets). Oracle RAC supports the deployment of a single database across a cluster of servers — providing unbeatable fault tolerance, performance and scalability with no application changes necessary.
Benefits:
24/7 availability — Provide continuous uptime for database applications
On-demand scalability — Expand capacity by simply adding servers to your cluster
Lower computing costs — Use low-cost commodity hardware and reduce cost of downtime
World record performance — Runs faster than the fastest mainframe
Grid computing — Oracle RAC is the foundation for grid computing
What is RAC?
Oracle’s RAC option supports the transparent deployment of a single database across a cluster of servers, providing fault tolerance from hardware failures or planned outages. Oracle RAC running on clusters provides Oracle’s highest level of capability in terms of availability, scalability and low-cost computing. It supports mainstream business applications of all kinds, including OLTP, DSS, and mixed OLTP/DSS environments. This also includes popular packaged products such as SAP, PeopleSoft, Siebel, and Oracle E*Business Suite, as well as custom applications.
Oracle RAC provides a single image installation and management. The DBA has a single point of control to install and manage a RAC cluster from the GUI interface or command line.
Continuous Availability
Oracle RAC provides very high availability for applications by removing the single point of failure with a single server. If a node in the cluster fails, the Oracle Database continues running on the remaining nodes. Individual nodes can be shutdown for
maintenance while application users continue to work.
Fast Application Notification (FAN), enables end-to-end, lights-out recovery of applications and load balancing when a cluster configuration changes. A FAN event is posted and server-side callouts are executed when a state change occurs within the cluster. The application tier can receive the FAN event and react appropriately.
Flexible Scalability
Oracle RAC provides flexibility for scaling applications. To keep costs low, clusters can be built from standardized, commodity-priced processing, storage, and network components. When you need more processing power, simply add another server without taking users offline servers to gain horizontal scalability. Oracle Clusterware and Oracle RAC support up to 100 nodes in the cluster.
Enabling Enterprise Grids
Oracle RAC enables enterprise Grids. Enterprise Grids are built from standardized, commodity-priced processing, storage and network components. Oracle RAC enables the Oracle Database to run on this platform and provides the highest levels of capability
in terms of availability and scalability. Nodes, storage, CPUs, and memory can all be dynamically provisioned while the system remains online. This allows service levels to be easily and efficiently maintained while lowering cost still further through improved utilization.

social media buttons