汇编代码翻译为abs函数的调用

以下是一段汇编代码:

cpp 复制代码
  mov     eax, esi
  sub     eax, ecx
  mov     edx, eax
  sar     edx, 1Fh
  xor     eax, edx

IDA把上述代码准确地翻译为:

abs(a1 - a3)

即是计算(a1 - a3)的绝对值。

以下是另一段代码:

cpp 复制代码
  mov     eax, [ebx+4]
  sub     eax, [ecx+4]
  mov     edx, eax
  sar     edx, 1Fh
  xor     eax, edx

但是,IDA把它翻译为:

cpp 复制代码
  v5 = *(_DWORD *)(a1 + 4) - *(_DWORD *)(a2 + 4);
  x6 = (signed int)((HIDWORD(v5) ^ v5) - HIDWORD(v5);

上述代码实际也是计算2个变量之差的绝对值。

根据上下文,a1与a2是2个有相同结构类型的指针,因此要翻译为:

abs(a1->_4 - a3->_4)

相关推荐
西杭3 个月前
MAC打开IDA Pro意外退出
macos·ida
Karle_3 个月前
【逆向日记】1.关于YOLO视觉Ai软件逆向分析
yolo·逆向分析·逆向笔记
muyiGin4 个月前
南京大学计算机基础(四)踩坑笔记
ida·gdb·计组·南京大学
怜渠客5 个月前
记一次源码部分丢失后补救过程
ida·逆向·freebasic
剁椒排骨6 个月前
BUUCTF靶场 [reverse]easyre、reverse1、reverse2
网络安全·数据分析·ida·逆向·ctf·reverse·反汇编
JICEY7 个月前
JS解混淆
渗透测试·逆向分析
杨如画.8 个月前
x-zse-96安卓端纯算,魔改AES还原
ida·安卓逆向·arm汇编·x-zse-96·unidbg·白盒aes·魔改aes
dvlinker1 年前
Relocations for this machine are not implemented,IDA版本过低导致生成汇编代码失败
汇编·ida·arm64·汇编代码上下文·ida版本过低·.so动态库文件·c++源码
dvlinker1 年前
哪些软件分析工具需要使用到pdb符号文件?
windbg·pdb符号文件·ida·processexplorer·process monitor·函数调用堆栈·函数变量符号