逆向学习-IDA学习

Posted whitehawk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆向学习-IDA学习相关的知识,希望对你有一定的参考价值。

GetFunctionFlags(ea)它可以用来检索关于函数的信息。

 

技术图片

FUNC_NORET

  这个标志表示某个函数是否有返回值,它本身的值是 1,下面是一个没有返回值的函数,注意它没有函数的最后并不是 ret 或者 leave 指令。

FUNC_FAR

  这个标志非常少的出现,标志程序是否使用分段内存,它的值为 2。

FUNC_USERFAR

  这个标志也非常少见,也很少有文档,HexRays 把它描述为“user has specified far-nessof the function”,它的值是 32.

FUNC_LIB

  这个表示用于寻找库函数的代码。识别库函数代码是非常有必要的,因为我们在分析的时候一般将其跳过,它的值是 4。

  技术图片

FUNC_STATIC

  这个标志作用在于识别该函数在编译的是否是一个静态函数。在 c 语言中静态函数被默认为是全局的。如果作者把这个函数定义为静态函数,那么这个函数在只能被本文件中的函数访问。利用静态函数的判定我们可以更好的理解源代码的结构。

FUNC_FRAME

  这个标志表示函数是否使用了 ebp 寄存器(帧指针),使用 ebp 寄存器的函数通常有如下的语法设定,目的是为了保存栈帧。  

  技术图片

FUNC_BOTTOMBP

  和 FUNC_FRAME 一样,该标志用于跟踪帧指针(ebp)。它作用是识别函数中帧指针是否等于堆栈指针(esp)。

FUNC_HIDDEN

  带有 FUNC_HIDDEN 标志的函数意味着它们是隐藏的,这个函数需要展开才能查看。如果我们跳转到一个标记为 HIDDEN 的地址的话,它会自动的展开。

FUNC_THUNK

  表示这个函数是否是一个 thunk 函数,thunk 函数表示的是一个简单的跳转函数。

 

以上是关于逆向学习-IDA学习的主要内容,如果未能解决你的问题,请参考以下文章

《有趣的二进制:软件安全与逆向分析》读书笔记:通过逆向工程学习如何读懂二进制代码

《有趣的二进制:软件安全与逆向分析》读书笔记:通过逆向工程学习如何读懂二进制代码

《有趣的二进制:软件安全与逆向分析》读书笔记:通过逆向工程学习如何读懂二进制代码

逆向学习入门-优秀的汇编调试工具OllyDbg

02-从零开始用IDA做逆向-进制的基础知识搜索功能的使用

radare2逆向笔记