行业解决方案查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2022-10-15 15: 52: 30
The Lumina server is a "functions metadata" repository.
It is a place where IDA users can push, and pull such metadata, to ease their reverse-engineering work: metadata can be
extracted from existing projects, and re-applied effortlessly to new projects, thereby reducing (sometimes dramatically)
the amount of time needed to analyze binaries.
Lumina server vs Hex-Rays Vault server: what is the difference?
While the workflow with the Hex-Rays Vault server and associated tools (hv, hvui and IDA’s diff/merge modes) are
extremely powerful for working on multiple revisions of the same binaries, the Lumina server in turn eases the replication
of past efforts to new projects.
In effect, the Lumina server offers another "dimension" to collaborative reverse-engineering efforts。
Functions metadata
The Lumina server associates "function metadata" to functions, by means of a (md5) hash of those functions: whenever it
wants to push information to, or pull information from the server, IDA will first have to compute hashes of the functions it
wants to retrieve metadata for, and send those hashes to the Lumina server.
Similarly, when IDA pushes information to the Lumina server, it will first compute hashes for the corresponding functions,
extract the metadata corresponding to those from the .idb file, and send those hash+metadata pairs to the server.
Metadata contents
Metadata about functions can include:
• function name
• function address
• function size
• function prototype
• function [repeatable] comments
• instruction-specific [repeatable] comments
• anterior/posterior (i.e., "extra") comments
• user-defined "stack points" in the function’s frame
• the function frame description and stack variables
• instructions operands representations
Pushing & overriding metadata
When a user pushes metadata about a function whose md5 hash isn’t present in the database, the Lumina server will
simply create a new record for it.
However, when a user pushes metadata about a function whose md5 hash (and associated metadata) is already present
in the database, the Lumina server will attempt to "score" the quality of the old metadata and the quality of the new
metadata. If the score of the new metadata is higher, the new function metadata will override the previous one.
NOTE
When a user asks IDA to push all functions to the Lumina server, IDA will automatically skip some
functions: those that still have a "dummy" name (e.g., sub_XXXX), or that are below a certain size
threshold (i.e., 32 bytes) will be ignored.
Metadata history
The Lumina server retains a history of the metadata associated to functions. Using the lc utility, it is possible to dig into
that history, and view changes (detailed diffs, too.)
File contents
It’s worth pointing out that when pushing metadata to the Lumina server, IDA will not push the binary file itself. Only the
following metadata about the file itself will be sent:
• the name of the input file
• the name of the IDB file
• a md5 hash of the input file
The Lumina server cannot therefore be used as a backup/repository for binary files & IDBs (that would be the role of the
Hex-Rays Vault server)
中文翻译:
Lumina服务器是一个“函数元数据”存储库。
它是一个地方,IDA用户可以将这些元数据推送和拉取到其中,以便简化他们的反汇编工作:元数据可以从现有项目中提取,并轻松地应用于新项目中,从而大大减少了分析二进制文件所需的时间。
Lumina服务器与Hex-Rays Vault服务器的区别:
虽然与Hex-Rays Vault服务器及其相关工具(hv、hvui和IDA的diff/merge模式)的工作流程非常强大,可以用于处理相同二进制文件的多个版本,但Lumina服务器则可以轻松地将以前的工作复制到新项目中。实际上,Lumina服务器为协作反汇编工作提供了另一个“维度”。
函数元数据
Lumina服务器通过函数的(md5)哈希将“函数元数据”与函数关联起来:每当它想要将信息推送到或从服务器上拉取信息时,IDA都需要首先计算要检索元数据的函数的哈希值,并将这些哈希值发送到Lumina服务器。类似地,当IDA将信息推送到Lumina服务器时,它将首先为相应的函数计算哈希值,从.idb文件中提取对应的元数据,并将这些哈希值和元数据对发送到服务器。
元数据内容
有关函数的元数据可能包括:
•函数名称
•函数地址
•函数大小
•函数原型
•函数的[可重复]注释
•指令特定的[可重复]注释
•前/后(即“额外”)注释
•用户定义的函数框架中的“堆栈点”
•函数框架描述和堆栈变量
•指令操作数表示
推送和覆盖元数据当用户推送某个函数的元数据,其md5哈希值不在数据库中时,Lumina服务器将简单地为其创建一个新记录。
然而,当用户推送某个函数的元数据,其md5哈希值(和相关元数据)已经存在于数据库中时,Lumina服务器将尝试“评分”旧元数据和新元数据的质量。如果新元数据的分数更高,则新的函数元数据将覆盖以前的元数据。
注意:当用户要求IDA将所有函数推送到Lumina服务器时,IDA将自动跳过一些函数:那些仍然有“虚拟”名称(例如sub_XXXX)或大小低于某个阈值(即32字节)的函数将被忽略。
元数据历史记录Lumina服务器保留了与函数关联的元数据的历史记录。使用lc实用程序,可以深入挖掘该历史记录,并查看更改(也可以查看详细的差异)。
文件内容值得指出的是,当将元数据推送到Lumina服务器时,IDA不会推送二进制文件本身。仅会发送有关文件本身的以下元数据:
•输入文件的名称
•IDB文件的名称
•输入文件的md5哈希值
因此,Lumina服务器不能用作二进制文件和IDB的备份/存储库(这是Hex-Rays Vault服务器的角色)。
展开阅读全文
︾
读者也喜欢这些内容:
ida lumina是什么?ida lumina的应用场景有哪些?
在软件开发和逆向工程领域,IDA Pro是一个广为人知的工具,用于反编译和分析二进制文件。而IDA Lumina是IDA Pro中的一个新功能,专注于提高反编译和分析的效率。那么,IDA Lumina具体是什么?它有哪些应用场景?本文将详细解答这些问题,并介绍IDA的不同版本。...
阅读全文 >
IDA Pro 2022插件大赛优秀作品:FirmLoader插件
今天我们要分享的是2022年插件大赛优秀选手,一款叫做 FirmLoader 的插件。FirmLoader 是一个 IDA 插件,可自动识别从微控制器中提取的固件映像的内存部分。这简化了理解二进制内容的过程,从而使您能更有效地实现反向目标。FirmLoader 插件类似于内置的 SVD 加载器;不过,它提供了一个更简单的数据结构,可以根据公开文档手动创建。...
阅读全文 >
IDA Pro 键盘快捷键(Shortcut keys)
...
阅读全文 >
程序二进制怎么看 IDA反汇编如何修改程序
在软件安全和逆向工程领域,理解和分析程序的二进制代码是一个重要的技能。此外,使用专业的反汇编工具如IDA Pro,不仅可以使二进制代码更容易理解,还可以使我们能够直接修改程序的行为。...
阅读全文 >