Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds

Saturday, October 02, 2010

Income Tax Return Forms 2010

So, September came and went away. The time to file your Income Tax (IT) returns has been extended till 15th October. Traditionally, you download return forms (and wealth statement form as well, if applicable); fill them by hand and submit in person to IT office. However, eFiling has been made possible by Federal Board of Revenue (FBR) for the last few years.

The FBR portal is not bad (considering the overall deteriorating situation of almost everything in Pakistan). The portal allows you to export/ import your data for offline filing via MS Excel; except for one minor problem: several sections of the sheet are protected by a password! Yes, you read it correct. I repeat: the Excel sheets which you have to fill for your Income Tax returns are password protected!

A few weeks ago, there was a letter to the editor on precisely the same topic in Dawn.

If you are using Excel 2007, the menu option to "unprotect" or unlock your sheet is Review -> Changes -> Unprotect Sheet. It will ask you for a password but FBR's website gives you no clue as to what the password is. Fortunately for us, cracking Excel passwords is not hard. There can be many password which can unlock one sheet. In the case of FBR's eFiling Excel sheets, one such password is AABABBABABBW.

A macro to crack Excel passwords in general is provided below (author unknown):

Sub PasswordBreaker()
    'Author unknown
    'Breaks worksheet password protection.
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
        Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
        Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    If ActiveSheet.ProtectContents = False Then
        MsgBox "One usable password is " & Chr(i) & Chr(j) & _
            Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
            Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
         Exit Sub
    End If
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
End Sub

Happy filing!