[反汇编分析]调用函数传入参数不一致时可能寄存器传入参数

Posted onetrainee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[反汇编分析]调用函数传入参数不一致时可能寄存器传入参数相关的知识,希望对你有一定的参考价值。

在逆向内核时,发现了这么一个问题,传入参数明显不一致。

通过函数末尾 @16,明显需要四个函数,这里只是传入三个函数。

技术图片

 

查看WRK源码,发现其确实需要四个参数。

技术图片

 

排除IDA分析错误的前提下,则存在寄存器传入。

 

这种情况一般IDA会自动给出注释,可以根据注释判断是哪个寄存器传入。

 

但是,我们可以手动推测是哪个传入的:

 

  1. 该函数上面紧跟一个发送消息函数,该函数可能有返回值eax。

  2. 正好有一个 MsgStatus函数,则该可能是寄存器。

  3. 进入函数验证:

    技术图片

    看,eax进入函数之后没任何赋值直接使用判断,则肯定说明eax作为存储参数使用。

 

以上是关于[反汇编分析]调用函数传入参数不一致时可能寄存器传入参数的主要内容,如果未能解决你的问题,请参考以下文章

GDB 反汇编使用不一致的寄存器命名

汇编笔记

结构体作为参数的反汇编

自制反汇编工具使用实例 其一

《逆向分析实战》1.1

超详细 函数栈帧(利用反汇编窥探底层原理)+ 建议收藏