IDA Pro > IDA Pro教程 > 技术问题 > IDA Pro3.2.1.什么是Lumina服务器(3.2.1.What is the Lumina server)

IDA Pro3.2.1.什么是Lumina服务器(3.2.1.What is the Lumina server)

发布时间: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服务器的角色)。

展开阅读全文

︾

标签:

读者也访问过这里:
邀请您进入交流群 点击扫码
400-8765-888 kefu@makeding.com

专业销售为您服务

欢迎添加好友,了解更多IDA优惠信息,领逆向工程学习资料礼包1份!
热门文章
exe反编译工具哪个好?反编译能力强的工具盘点
随着软件技术的发展,exe(可执行文件)已经成为了电脑、手机等多个平台上的主要软件运行格式,而对于exe文件的反编译也成为了逆向工程中不可缺少的一个步骤。本文将介绍一些常用的exe反编译工具,并评价其优缺点,帮助读者选择合适的工具。
2023-04-12
idapro怎么改为中文
IDA Pro是一款功能强大的反汇编和反编译工具,广泛应用于逆向工程和软件开发领域。在使用IDA Pro时,如果我们不习惯英文界面,可以将其改为中文界面。本文将介绍IDA Pro怎么改为中文界面。IDA Pro界面改成中文主要有两种方法,下面是详细介绍。
2023-04-19
c++反编译工具有哪些
反编译C++代码的工具一般是针对可执行文件和库文件的反汇编和逆向分析工具。本文将给大家介绍c++反编译工具有哪些的内容。市面说的c++反编译工具有很多,下面介绍几款使用认识较多的软件。
2023-04-23
ida怎么查找字符串 ida字符串窗口快捷键
在数字化时代,逆向工程作为解密软件和分析程序的关键技术,正日益受到广泛关注。在逆向分析的过程中,IDA(Interactive DisAssembler)是一款备受推崇的工具,它为逆向工程师们提供了强大的功能和灵活的操作。本文将带您深入探讨如何在IDA中查找字符串,优化字符串窗口的使用,并探讨IDA如何将变量转换成字符串,帮助您更加熟练地驾驭这一工具,为逆向分析的世界增添一抹精彩。
2023-09-27
ida如何转伪代码 ida伪代码怎么看
IDA Pro是一款常用的反汇编和反编译工具,可以帮助我们分析二进制文件的实现细节和执行过程,以便更好地理解程序的执行过程和逻辑。在进行逆向工程的过程中,我们经常需要将反汇编结果转换为伪代码,以便更好地进行分析和修改。本文将介绍如何使用IDA Pro转换为伪代码,并简单讲解ida伪代码怎么看。
2023-04-14
最新文章
IDA Pro怎么进行逆向分析 IDA Pro逆向分析过程中无法定位函数如何处理
在软件分析和程序调试过程中,IDA Pro经常用于查看二进制文件内部结构,通过反汇编、函数识别以及交叉引用等方式了解程序执行逻辑。实际进行逆向分析时,并不是所有程序都能够直接显示清晰的函数关系。尤其是经过优化、裁剪或者保护处理后的程序,可能出现函数名称缺失、入口位置无法识别、调用关系不完整等情况。遇到无法定位函数的问题时,需要结合文件信息、汇编代码以及分析结果逐步判断原因。本文介绍IDA Pro进行逆向分析的方法,并说明分析过程中函数无法定位时的处理方式。
2026-09-08
IDA Pro怎么恢复反汇编代码 IDA Pro反汇编代码还原效果不好如何优化
程序经过编译后,源码中的变量名称、注释以及部分结构信息通常不会完整保留。使用IDA Pro分析程序时,软件需要根据机器码、函数调用关系和数据引用进行推断,因此生成的反汇编结果和原始代码之间可能存在差异。实际分析过程中,经常会遇到函数边界判断错误、代码区域识别异常、伪代码难以阅读等情况。通过重新分析、修正代码区域、补充类型信息等方式,可以逐步改善反汇编结果。本文介绍IDA Pro恢复反汇编代码的方法,并整理反汇编还原效果较差时的优化思路。
2026-09-08
IDA Pro怎么进行Linux反汇编 IDA Pro Linux程序分析失败如何解决
Linux程序分析过程中,反汇编主要用于查看程序内部结构、函数调用关系以及指令执行逻辑。实际使用IDA Pro处理Linux程序时,遇到的问题往往集中在文件加载和分析识别阶段,例如ELF文件信息不完整、程序架构判断错误、符号被移除等。尤其是一些经过编译优化或者发布处理后的程序,自动分析结果可能和预期存在差异。本文介绍IDA Pro进行Linux反汇编的基本方法,并整理Linux程序分析失败时的排查方式。
2026-09-08
IDA Pro怎么进行ARM反汇编 IDA Pro ARM反汇编结果错误如何修正
ARM程序分析过程中,反汇编是查看程序指令结构、函数关系以及执行流程的重要环节。实际使用IDA Pro分析ARM文件时,文件来源和格式差异会带来不少问题,例如固件镜像缺少完整加载信息、ARM与Thumb指令混用、函数入口识别不准确等。如果前期设置没有处理好,后面的反汇编窗口中可能出现大量异常指令,函数划分也会受到影响。本文介绍IDA Pro进行ARM反汇编的基本流程,并整理反汇编结果错误时的检查和修正方法。
2026-09-08
IDA Pro怎么分析DLL文件 IDA Pro分析DLL文件时符号信息缺失如何处理
DLL文件分析是程序逆向和软件调试过程中经常遇到的任务。相比普通EXE文件,DLL通常作为功能模块被其他程序调用,自身可能没有明显的启动入口,分析时需要关注导出函数、调用关系以及内部代码结构。实际使用IDA Pro打开DLL文件时,经常会遇到函数名称丢失、变量信息缺少、导出函数无法对应等情况。这些问题通常和编译方式、符号文件是否保留以及加载设置有关。本文介绍IDA Pro分析DLL文件的基本流程,并整理符号信息缺失时的检查和处理方法。
2026-09-08
IDA Pro怎么进行程序分析 IDA Pro程序分析结果异常如何检查
IDA Pro是逆向分析中常用的静态分析工具,可以帮助分析人员从二进制文件中还原程序结构,查看函数关系、代码流程以及关键数据引用。但实际分析过程中,IDA自动生成的结果并不一定完全准确,尤其是在面对优化编译、特殊架构程序或者经过保护处理的文件时,经常会出现函数识别错误、代码区域判断异常、交叉引用缺失等情况。掌握正确的分析流程,并了解结果异常时的判断方法,可以让后续逆向工作更加顺畅。
2026-09-07

通过微信咨询我们

欢迎添加好友,了解更多IDA优惠信息,领取逆向工程学习资料礼包1份!

读者也喜欢这些内容: