如何反汇编系统调用?
我怎样才能反汇编系统调用,以便我可以获得其中涉及的汇编指令
How could I disassemble system call, so that i could get the assembly instructions involved in it
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
嗯,你可以做这样的事情。假设我想获得“dup”的程序集转储:
写下:
编译它:
转储它:
查看“main”我看到:
所以查看“dup@plt”我看到:
所以它正在调用“全局”偏移表”,我假设它包含所有系统调用向量。就像另一篇文章所说,有关详细信息,请参阅内核源代码(或标准库源代码?)。
Well, you could do something like this. Say I wanted to get an assembly dump of "dup":
Write this:
Compile it:
Dump it:
Looking in "main" I see:
So looking at "dup@plt" I see:
So it's making a call into a "global offset table", which I would assume has all the syscall vectors. Like the other post said, see the kernel source (or standard library sources?) for details on that.
我认为你不想这样做。系统调用处理很复杂(请参阅 http://www.ibm.com /developerworks/linux/library/l-system-calls/)。由于您已经用“linux”标记了这个问题,因此您可以从 kernel.org 下载源代码(这将比比汇编代码更容易理解且信息丰富)。
I don't think you want to do this. System call handling is complex (see http://www.ibm.com/developerworks/linux/library/l-system-calls/). Since you have tagged this question with "linux", you can just download the source from kernel.org (which will be far more understandable and informative than the assembly code).
要了解 Linux 系统调用,请浏览代码。
重要文件有:
注意:系统调用表只能从 system.map 中寻址。
For understanding linux system call, browse through the code.
Important files are:
Note: system call table can be addressed only from system.map only.