虚拟主机行业最新资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:站长资讯>-> 网站运营-> 网站运营
开发手记(四)——运用VB实战破解ACCESS密码-.NET教程,评论及其它
作者:网友供稿 点击:46
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
access与excel都是office套件产品,但他们的加密方式完全不同。excel利用的是des加密技术,而access只是简单运用异或运算修改头文件中的若干位来达到加密的目的。

     异或运算特性:一数经两次异或可以回到原值,特性举例:(a)xor(b)=(c)同时(c)xor(b)=(a),同理可以推出(c)xor(a)=(b)。a代表access头文件中的若干位,b代表用户密码,c为经过加密的头文件的若干位的值。我们可以用ultraedit或vc以二进制方式打开原始access,记录下相关头文件的值,再打开加密后的access记录下相关头文件的值,两者再异或结果就是access的密码了。明白了原理后破解access的密码就很容易了。access在不同的版本中它的加密位也是不同的:access97的最大密码长度为13位,加密位是从头文件的67位开始至79位结束,未加密的这13位十六进制值为"86,fb,ec,37,5d,44,9c,fa,c6,5e,28,e6,13";access2000的最大密码长度为20位,加密位也是从头文件的67位开始至106位结束,未加密的这40位十六进制值为“20 6d ec 37 fb d2 9c fa 60 c8 28 e6 b5 20 8a 60 f2 02 7b 36 53 e4 df b1 d1 62 13 43 69 39 b1 33 92 f7 79 5b 34 23 7c 2a ”,access2000采用的是40位中的低字节,如前两位二进制值为‘20 7d’,那么它的加密位为‘20’位。

  解密最直接的方法是用原始头文件的相关位覆盖加密文件的相关位;也可以得用国外有名的免费软件acckey,它只有361kb;但我们更愿意自己编写一个破解程序达到目的,这样更有成就感。

‘*****showpassword.vbp----破解access密码*****

‘************(c)mi6236,2005,vb6.0  win2k*************

option explicit

private sub showpassword_click()

    dim password as string

    dim temp as byte

    dim source97(12) as byte

    dim source2000(39) as byte

    dim i as integer

    **********************************************************

    将未加密accsee97中的67-79位的值并赋给数组source97()

    **********************************************************

    source97(0) = &h86

    source97(1) = &hfb

    source97(2) = &hec

    source97(3) = &h37

    source97(4) = &h5d

    source97(5) = &h44

    source97(6) = &h9c

    source97(7) = &hfa

    source97(8) = &hc6

    source97(9) = &h5e

    source97(10) = &h28

    source97(11) = &he6

    source97(12) = &h13

    **********************************************************

    将未加密accsee2000中的67-106位的值并赋给数组source2000()

    **********************************************************

    source2000(0) = &h20

    source2000(1) = &h6d

    source2000(2) = &hec

    source2000(3) = &h37

    source2000(4) = &hfb

    source2000(5) = &hd2

    source2000(6) = &h9c

    source2000(7) = &hfa

    source2000(8) = &h60

    source2000(9) = &hc8

    source2000(10) = &h28

    source2000(11) = &he6

    source2000(12) = &hb5

    source2000(13) = &h20

    source2000(14) = &h8a

    source2000(15) = &h60

    source2000(16) = &hf2

    source2000(17) = &h2

    source2000(18) = &h7b

    source2000(19) = &h36

    source2000(20) = &h53

    source2000(21) = &he4

    source2000(22) = &hdf

    source2000(23) = &hb1

    source2000(24) = &hd1

    source2000(25) = &h62

    source2000(26) = &h13

    source2000(27) = &h43

    source2000(28) = &h69

    source2000(29) = &h39

    source2000(30) = &hb1

    source2000(31) = &h33

    source2000(32) = &h92

    source2000(33) = &hf7

    source2000(34) = &h79

    source2000(35) = &h5b

    source2000(36) = &h34

    source2000(37) = &h23

    source2000(38) = &h7c

    source2000(39) = &h2a

    读取命令对话框中所选的文件

    commondialog1.showopen

    commondialog1.dialogtitle = "打开access数据库文件"

    if (commondialog1.filename = "" or mid(commondialog1.filename, len(commondialog1.filename) - 2, 3) <> "mdb") then

       i = msgbox("您未选择文件或选择的文件不是access数据库文件", vbokonly + vbcritical, "注意")

       exit sub

    end if

    open commondialog1.filename for binary as #1

    get #1, 21, temp

    if temp = &h0 then‘判断access数据库的版本号

        for i = 0 to 12

            get #1, 67 + i, temp 逐次读取头文件中67-79位放入temp中,并与source97中各元素异或返回密码

            if temp = source97(i) then exit for 加密位读取完毕

            password = password & chr((temp xor source97(i)))

        next

        close #1

        if len(password) = 0 then

            text1.text = "该数据库没有加密!"

        else

            text1.text = "该数据库的密码为:" + password

        end if

    else

        if temp = &h1 then

            for i = 0 to 39 step 2

            get #1, 67 + i, temp 逐次读取头文件中67-79位放入temp中,并与source2000中各元素异或返回密码

            if temp = source2000(i) then exit for 加密位读取完毕

            password = password & chr((temp xor source2000(i)))

            next

            close #1

            if len(password) = 0 then

                text1.text = "该数据库没有加密!"

            else

                text1.text = "该数据库的密码为:" + password

            end if

        end if

    end if

end sub

是不是access真的这么脆弱呢,其实你完全可以在数据库头文件的其他固定位与已存储的固定数据位上做文章,如何做这个丰富的想象空间就留给朋友们了!



文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:[1] 
相关主题
  • 开发手记(九)——在文件菜单中记录最近使用过的文件-.NET教程,组件控件开发
  • 开发手记(八)——ActiveBar控件中的利器(1)-.NET教程,组件控件开发
  • 开发手记(七)——实现图标首窗体的启动滞留-.NET教程,评论及其它
  • 开发手记(六)——共享软件注册程序编写实例(3)-.NET教程,评论及其它
  • 开发手记(六)——共享软件注册程序编写实例(2)-.NET教程,评论及其它
  • Google

    热门文章
    ·ASP.NET的安装与运行环境-.NET教程,Asp.Net开发
    ·运用.NET+SQL Server2005构建多层网站(3)-.NET教程,数据库应用
    ·JAVA写的四则混合运算-JSP教程,Java技巧及代码
    ·获取高精度的时间差,可以用来分析页面运行时间的长短-.NET教程,Asp.Net开发
    ·基于.Net平台应用程序唯一运行实例C#代码实现-.NET教程,C#语言
    ·Alexa 世界网站排名研究(下)-网站运营,搜索引擎推广
    ·运用.NET+SQL Server2005构建多层网站(1)-.NET教程,数据库应用
    ·优化系统让Photoshop运行更流畅-网页设计,Photoshop
    ·ASP.NET 2.0运行时简要分析-.NET教程,Asp.Net开发
    ·手工打造运算符重载过程-.NET教程,C#语言

    最新文章
    ·MySQL服务器内部安全数据目录访问
    ·MySQL和SQL Server,到底选择谁?
    ·五种推广模式的优劣的比较
    ·基于.Net平台应用程序唯一运行实例C#代码实现-.NET教程,C#语言
    ·运用反射给实体赋值-.NET教程,Asp.Net开发
    ·大数运算(一)-.NET教程,评论及其它
    ·虚拟主机上asp.net运行权限不足问题及解决-.NET教程,Asp.Net开发
    ·ASP.NET底层架构探索之进入.NET运行时-.NET教程,Asp.Net开发
    ·基于.Net平台应用程序唯一运行实例实现-.NET教程,.NET Framework
    ·ASP.NET 2.0运行时简要分析-.NET教程,Asp.Net开发

    相关主题
  • 开发手记(九)——在文件菜单中记录最近使用过的文件-.NET教程,组件控件开发
  • 开发手记(八)——ActiveBar控件中的利器(1)-.NET教程,组件控件开发
  • 开发手记(七)——实现图标首窗体的启动滞留-.NET教程,评论及其它
  • 开发手记(六)——共享软件注册程序编写实例(3)-.NET教程,评论及其它
  • 开发手记(六)——共享软件注册程序编写实例(2)-.NET教程,评论及其它



  • 友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 一班在线
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机


    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
      打印  刷新  关闭


    联系我们  |  广告服务  |  免责声明  |  友情连接
    Copyright ?2005 - 2006 All Rights Reserved
    蜀ICP备05000045号