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逆向apk时Java层和so层该先看哪边 IDA逆向apk时资源目录通常怎么定位
IDA逆向apk时Java层和so层该先看哪边IDA逆向apk时资源目录通常怎么定位,不能只按工具习惯去决定。IDA更适合查看native层,尤其是so文件里的ARM、AArch64、x86这类原生代码;而Android应用本身又包含了Manifest、DEX、资源、assets和native库等多类内容,所以分析顺序要看目标逻辑到底落在哪一层。IDA官方的Android调试文档也说明了,Android native debugging支持ARM32、AArch64、x86和x64这些目标。
2026-06-30
IDA静态分析exe时先看字符串还是函数 IDA静态分析exe时交叉引用通常怎么利用
IDA静态分析exe时先看字符串还是函数IDA静态分析exe时交叉引用通常怎么利用,不能简单地讲一定先看哪一个。exe文件被打开以后,字符串和函数都是比较重要的,但它们起到的作用并不太一样。字符串更像是可以当作线索的东西,用它来比较快地估计程序大概在做什么;函数则更像是逻辑的聚集处,那些真正的条件判断、调用、分支和数据处理,都放在函数里面。比较稳当的次序,是先利用字符串和导入函数去找到方向,然后再走进关键函数做分析,最后才通过交叉引用把调用链连接起来。
2026-06-30
IDA分析dmp文件时模块基址为何总不准 IDA分析dmp文件时基址校准一般怎么做
IDA分析dmp文件时模块基址为何总不准IDA分析dmp文件时基址校准一般怎么做,这是在调试崩溃转储、分析内存转储以及处理异常现场时很容易碰到的一类问题。dmp文件与普通的exe、dll文件并不相同,它所记录的是某一个时刻进程在内存中的状态。文件当中的模块,有可能已经被系统重新定位过,也有可能只保留了部分内存页。如果直接按照文件默认的基址去分析,就很容易出现函数地址、字符串引用以及调用关系全都对不上的情况。表面上看起来似乎是IDA识别出了差错,但实际上,问题往往出在加载基址没有校准好这一点上。
2026-06-30
IDA分析dll文件时导入表值不值得先看 IDA分析dll文件时导出函数通常怎么利用
IDA分析dll文件时导入表值不值得先看IDA分析dll文件时导出函数通常怎么利用,可以这么回答:导入表值得先看,但不能只盯着导入表。dll文件多数时候是被exe或者其他模块加载起来用的,在分析的时候,既要去了解它依赖于哪些外部的API,也要清楚它自己向外提供了哪些函数。IDA的Subviews里面,既包含Exports,也包含Imports,Exports会列出导出符号的名称、地址和序号,Imports则会列出动态链接导入的符号、序号、名称和来源库。
2026-06-30
IDA分析so文件时先抓哪类信息 IDA分析so文件时字符串结果该怎么筛
IDA分析so文件时先抓哪类信息IDA分析so文件时字符串结果该怎么筛,这个问题在进行Android原生库分析、漏洞排查和接口逆向的时候经常遇到。so文件打开以后,里头的函数数量很多,符号也有可能被裁剪过,直接对着反汇编代码去阅读,效率往往会很低,比较稳一些的做法是先去把握文件的一个基本轮廓,再去看它的导入导出情况、字符串内容、JNI接口以及关键的系统调用,先把大的方向确定下来,然后再去判断哪些函数值得深入查看。
2026-06-30
IDA Pro反汇编linux程序时先看哪里 IDA Pro反汇编linux文件时ELF段信息怎么利用
IDA Pro反汇编Linux程序时,应该先看哪些位置,以及反汇编Linux文件时,ELF段信息又该怎么去利用,这两件事的关键,是不能刚打开文件就直接钻进某个sub函数里面去读。Linux程序多数是ELF格式,文件里面不仅有代码,还有入口点、动态链接的信息、字符串、导入函数、全局变量和段权限。先把这些基础信息看明白,再进入具体的函数,分析效率会高出不少,也不容易把普通库函数、初始化逻辑和真正的业务逻辑混在一起。
2026-06-30

通过微信咨询我们

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

读者也喜欢这些内容: