如何反编译特定的内核函数?
例如,kernen 函数 system_call
反编译为:
push %eax
...
call * 0xc03094c0(,%eax,,4)
How's this did in linux?
For example ,kernen function system_call
decompiles to:
push %eax
...
call * 0xc03094c0(,%eax,,4)
How's this done in linux?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为它可能像这样简单:
使用调试符号编译内核,或者如果您使用发行版的版本,则获取其调试包。然后运行
gdb vmlinux
并输入disas
如果您想查看 C 函数。只是system_call
不是 C 函数,因此 GDB 不会以同样的方式查找它。但你仍然可以拆解:I think it could be as simple as this:
Compile your kernel with debugging symbols, or if you're using your distro's version, grab its debug package. Then run
gdb vmlinux
and typedisas <function name>
if you want to look at a C function. Except thatsystem_call
isn't a C function, so GDB won't look it up the same way. But you can still disassemble:因为它是linux,所以你实际上不需要反编译任何东西。你直接看源码就可以了。一个好的源代码浏览器是 LXR。如果您需要帮助,请加入内核邮件列表,他们都是非常好的人。
You wouldn't really need to decompile anything since its linux. You can just look at the source. A good source browser is LXR. Join the kernel mailing list if you need help, they are very nice people.