什么是 .sdb 文件?

逆向工程 聚乙烯 雷达2 pe32
2021-06-12 09:34:02

概括地说,我只是想知道 SDB 文件的作用以及它扮演的角色。我看到Radare2 正在使用它们。. 这是我在 下的一些 SDB 文件./libr/bin/d/dll/,它们有什么作用?

./libr/bin/d/dll/csmfpapi.sdb
./libr/bin/d/dll/atl.sdb
./libr/bin/d/dll/msvbvm60.sdb
./libr/bin/d/dll/msi.sdb
./libr/bin/d/dll/mfc90u.sdb
./libr/bin/d/dll/msvbvm50.sdb
./libr/bin/d/dll/dsound.sdb
./libr/bin/d/dll/mfc71.sdb
./libr/bin/d/dll/olepro32.sdb
1个回答

深发展表示小号特林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”文章。