Oracle BBED工具介绍(三)
--------------------------------------
20a20000 09000001 99210700 00000204 6f7f0000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 04000000 ffffffff 00000000 03000000 08000000
01000100 00000000 00000000 00000000 05000000 03000000 e577224b e577224b
00000000 00000000 00000000 00000000 0a000001 00000000 00000000 08000000
08000000 11000001 00000000 00000000 00000000 05000000 00000000 01000000
12b90000 00000000 00000000 09000001 08000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 11155555 00000000 00000000 00000000 00000000
… …
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 02209921
<32 bytes per line>
BBED>
Offsets: 0 to 8191 1024 * 8 = 8192个字节,正好8K。在这段数字中,有一个就是我们插入的数字. 可以通过一下方式查看。
SQL> select * from dave;
NAME
--------------------
Dmm
SQL> select dump('d',1016) from dual;
DUMP('D',1016)
--------------------------------------
Typ=96 Len=1 CharacterSet=AL32UTF8: 64
SQL> select dump('m',1016) from dual;
DUMP('M',1016)
--------------------------------------
Typ=96 Len=1 CharacterSet=AL32UTF8: 6d
SQL> select dump(‘dmm’,1016) from dual;
DUMP('DUMP',1016)
-----------------------------------------------
Typ=96 Len=4 CharacterSet=AL32UTF8: 64,75,6d,70
字符串’DMM’对应的16进制编码是64,75,6d,70。如果数据量大的话,可以用find命令查找
BBED> help find
FIND[/x|d|u|o|c] numeric/character string [ TOP | CURR ]
BBED> set file 4
FILE# 4
BBED> set block 17
BLOCK# 17
BBED> find 75 curr
File: /export/home/oradata/orcl/users01.dbf (4)
Block: 17 Offsets: 123 to 8191 Dba:0x01000011
------------------------------------------------------------------------
4bd68222 4b000000 00000000 00000000 00000000 00120000 01000000 00000000
00080000 00080000 00190000 01000000 00000000 00000000 00050000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000220ed 35
在find之前先设置想要查找的 file 和 block,默认是十进制的ascii编码,/x 表示16进制,find的结果显示出offset,即字符出现的位置。
我们将刚才查出来的偏移量进行修改:
BBED> help modify
MODIFY[/x|d|u|o|c] numeric/character string
[ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
BBED> modify 98 file 4 block 17 offset 123
Warning: contents of previous BIFILE will be lost. Proceed (Y/N) y
File: /export/home/oradata/orcl/users01.dbf (4)
Block: 17 Offsets: 123 to 634 Dba:0x01000011
------------------------------------------------------------------------
62d68222 4b000000 00000000 00000000 00000000 00120000 01000000 00000000
00080000 00080000 00190000 01000000 00000000 00000000 00050000 00000000
00010000 001ab900 00000000 00000000 00110000 01080000