Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何反汇编系统调用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我怎么能反汇编系统调用,以便可以获得其中涉及的汇编指令 好吧,你可以做这样的事情.说我想得到一个“dup”的汇编转储: 写这个: #include <stdio.h> #include <sys/file.h> int main() { return dup(0) } 编译它: gcc -o systest -g3 -O0 systest.c 转储它: objdump -d s
我怎么能反汇编系统调用,以便可以获得其中涉及的汇编指令

解决方法

好吧,你可以做这样的事情.说我想得到一个“dup”的汇编转储:

写这个:

#include <stdio.h>
#include <sys/file.h>
int main() {
        return dup(0)
}

编译它:

gcc  -o systest -g3 -O0 systest.c

转储它:

objdump -d systest

看着“主要”我看到:

400478:       55                      push   %rbp
  400479:       48 89 e5                mov    %rsp,%rbp
  40047c:       bf 00 00 00 00          mov    $0x0,%edi
  400481:       b8 00 00 00 00          mov    $0x0,%eax
  400486:       e8 1d ff ff ff          callq  4003a8 <dup@plt>
  40048b:       c9                      leaveq
  40048c:       c3                      retq
  40048d:       90                      nop
  40048e:       90                      nop
  40048f:       90                      nop

所以看看“dup @ plt”,我看到:

00000000004003a8 <dup@plt>:
  4003a8:       ff 25 7a 04 20 00       jmpq   *2098298(%rip)        # 600828 <_GLOBAL_OFFSET_TABLE_+0x20>
  4003ae:       68 01 00 00 00          pushq  $0x1
  4003b3:       e9 d0 ff ff ff          jmpq   400388 <_init+0x18>

所以它正在调用一个“全局偏移表”,我假设它具有所有的系统调用向量.就像其他帖子所说,请参阅内核源代码(或标准库源代码?)以@L_607_16@相关详细信息.

大佬总结

以上是大佬教程为你收集整理的linux – 如何反汇编系统调用?全部内容,希望文章能够帮你解决linux – 如何反汇编系统调用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。