【发布时间】:2016-02-22 23:17:16
【问题描述】:
在 Eldad Eilam 的名为 Reversing 的书中,在第 11 章:打破保护中,有一个名为 Defender 的破解者。它是为 Windows 编写的,在执行开始时,用户模式操作系统组件通过搜索ntdll.dll 被复制到随机内存地址。在通过此复制的代码访问该操作系统之后,使用内核模式切换。这样,在调试时,任何用户模式 API 上的断点都不会被命中。
我想知道这是否可以在 Linux 上完成。我有一个简单的 Hello World 汇编代码:
section .data
msg db "hello, world!"
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 60
mov rdi, 0
syscall
如果我在gdb 中加载相应的可执行文件,发出catch syscall write 并运行程序,将检测到write 系统调用。是否可以像在 Windows 上使用的一样,从 gdb 隐藏 write 操作?
【问题讨论】:
标签: linux gdb reverse-engineering