Crack XLS

      Excel算得上是办公最常用的工具软件,用的好,能大大提高工作中重复性事务的效率。中秋节的时候,搞到一个比较知名顾问公司的职位评估系统,把公司的大部分岗位都试了一下,总体上感觉一般般,没什么出彩的地方。从评估指标、评估方式、评估内容上,都是大家常用的,没什么特色。这个评估系统是Excel+VBA做的界面,Excel用来存储标准与结果,但呈现给用户的只有两张表,所以对这个职位评估系统的内部运作方式、评分、计分方式非常感兴趣。中秋节就对这个职位评估系统捣鼓里两天,对Excel表和职位评估系统的内部计算方式有个大概的了解。这个评估系统Excel工作簿是经过加密、工作表保护、VBAProject加密,记录一下打开的过程。
      打开密码
      用Advance Office password recovery这个工具,俄罗斯的这个东东在破解Excel打开密码,简直就是小菜一碟,速度飞快。
      工作表/簿保护密码
      有两种方式:1)还是用上面的Advance Office password recovery这个东东;2)从xls表中寻找。很多xls的vba中会操作工作表,对受保护的工作表会先将其取消保护进行操作,完毕后再进行保护。因此,在VBA中会出现下列代码:
     Sheets("xxx").Unprotect Password:="123456"    //xxx表示操作的工作簿,passw表示保护工作簿的密码
      如果在VBA中找到这段代码,也就知道了工作簿保护的密码。另外,用1)中的破解工具获得的密码,会和这个密码不一样,但是同样可以打开,因为这个工具相当于暴力破解,爆破可以的密码就会停止。
      很多的时候,工作表/簿是加密的,那他的VBA工程也是加密,用2)中的方法不通。

      VBAProject密码
      VBA工程密码,破解的难度比较大。在网上找来很多方法,大多行不通。大家可以在网上搜索,有什么用一段代码破解的,有用工具的,明确告诉大家,这些都不可行,没有用。那个VBA后门,也不行。打开VBA工程的目的就是为了看到代码,有两种方式,不需要密码,同样可以看到VBA代码:
      1)用OpenOffice打开xls表,然后查看/管理宏代码,会看到VBA工程中的全部代码。这里要注意一点,在OpenOffice中,这些代码是无法运行的,可能是有函数不兼容的原因,OOo将VBA代码全部注释。不过没关系,可以将这些代码拷到Excel中,再运行。
      2)用16进制软件,修改xls表中的两个小地方。将xls表中用16进制的文本工具打开,然后在文本(ascii)模式下查找DPB、GC两个字符创,然后将这两个字符串后面的“=”改为“.”,或者将DPB改为CPB,GC改为CC,将文件保存。再用Excel打开,会发现VBA工程已经可以打开,内部模块、窗体均可见,但是这个时候无法双击打开代码,会提示报错。不要紧,右键将这些模块到处即可,到处均为cls扩展名文件,属文本文件,即可查看。
      显示隐藏工作表
      1)普通隐藏,则比较简单,通过工具->选线->视图选项卡中的显示工作表标签,可以将隐藏的工作显示。
      2)VBA隐藏工作表,既然是通过VBA隐藏的,那么通过VBA显示就是最佳的办法。如果VBA工程被加密,这个VBA工程中是无法写入新的VBA模块,据必须使用上面2)中的方法,将VBA工程的加密破坏掉,然后写入VBA代码。这里需要注意一个问题,xls工作簿/表被保护时,是无法通过VBA代码来显示隐藏的工作的,所以,应该先去掉工作簿/表保护。以上环节搞定后,在VBA工程中插入新模块,然后copy以下代码,并用F5运行:
      Sub ShowAllSheets()
            Dim ws As Worksheet
            For Each ws In Sheets
                  ws.Visible = True
            Next ws
      End Sub

      以上代码的意思是遍历工作簿中所有的工作表,然后将工作表的visible属性设置为true(可见)。ok后就可以看到所有隐藏的工作表。
      这个职位评估系统的计分方式比较有意思,因为涉及到顾问公司的技术秘密,就不公布了。

Comments

Comments are closed.

Go back to top