深发展表示小号特林d ATA b酶。
sdb
是一个基于cdb磁盘存储的简单字符串键/值数据库,支持 JSON 和数组自省。
您可以看到与命令一起列出的 SDB 命令k
,
|Usage: k[s] [key[=value]]Sdb Query
| k foo=bar set value
| k foo show value
| k list keys
| ko [file.sdb] [ns] open file into namespace
| kd [file.sdb] [ns] dump namespace to disk
| ks [ns] enter the sdb query shell
| k anal/meta/* ist kv from anal > meta namespaces
| k anal/** list namespaces under anal
| k anal/meta/meta.0x80404 get value for meta.0x80404 key
在radare2 博客中有一篇关于它的完整帖子,请在此处查看。
您可以在radare2 存储库中的此链接中阅读有关它的更多信息。在 r2book 中
还有一个简短的、不太详细的章节。
编辑:您添加了另一个问题,因此我将相应地扩展我的答案。
这些sdb
文件包含函数名(DLL的出口)及其等价物序号为每个dll
在./libr/bin/d/dll/。每个文件都包含以下格式的键值行:
ordinal_num=export_name
another_ordinal_num=another_export_name
因此,如果我们msi.dll
从您提到的列表中获取,其sdb
文件将如下所示:
...
232=Migrate10CachedPackagesW
1=MsiAdvertiseProductA
223=MsiAdvertiseProductExA
224=MsiAdvertiseProductExW
2=MsiAdvertiseProductW
...
然后这些文件由MakeFile
. 要sdb
为 DLL添加文件,您可以遵循radare2 文档中的“sdb_ordinal.md”文章。