Adaptive Server Anywhere数据库具有大型数据库的特点,有完善的管理工具支持(Sybase Central)、触发器、存贮过程的支持、用户权限管理等,安装、移植比较方便,它的数据库只有两个文件:一个DB文件,用于保存对象定义以及数据;一个LOG文件,用于保存日志。
        但是,如果不注意,它存在安全隐患,正是由于数据库采用单独的一个文件进行维护的,所以超级用户的口令等信息业保存在这个数据库文件中,所以采用如下方法很容易将超级用户的口令修改成缺省的“SQL”。(注意:创建时全库加密,就没能用本文方法啦)

         用UltraEdit等二进制编辑工具打开这个文件,通过查找“DBA”(二进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“dbo”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。记录下“SYS”之前四个空字符“00 00 00 00”之前到“44 42 21”之间的所有二进制数据,这些数据就代表口令“SQL”。如图1所示,图中蓝色部分就是缺省口令“SQL”的存储区域。

图1

         打开要破解口令的数据库的DB文件,例如“Testnew.db”文件,同样通过查找定位到“DBA”口令存储区域,如图2所示。将图2中的口令存放区域的数据改成图1中相应的数据,这样就轻松破解了ASA的DBA口令了

图2

 

 via.https://blog.csdn.net/lijianhe043/article/details/7178574

 

SYBASE SQL ANYWHERE数据库DB文件忘记密码的处理方法

一个老的Sybase SQL Anywhere数据库 db 文件忘记DBA密码,登陆时总是提示: invalid user id or password, 怎么都不能打开,google狂搜,得到一个替换密码的解决方案:

使用UltraEdit、WinHex等二进制编辑工具打开数据库文件,通过查找“DBA”(16进制使用“44  42  41”),定位到第一个位置,注意观察这个区域,前面一般有“dbo”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符 “00  00  00  00”之前到“44  42  21”之间的所有16进制数据,替换为如下16进制数(代表SQL):

                        24 36 3B DF 7D B5 77 B2
82 45 67 6D C2 DB D6 E7 F2 64 28 C3 55 22 97 F5
6C F5 8C 0F 8C C5 71 BA 15 C9 5E BC 43 01 59 01
59 01 59 01 4E 01 4E 01 4E 17 00 00

替换后,DBA密码就是“SQL”了。重新运行输入密码,可以正常打开库使用

 

via.http://www.sunnyu.com/?p=252 

最后修改:2023 年 04 月 12 日 06 : 20 AM