多年来,Windows上已经进行了许多逆向工程,从而带来了许多未公开的功能,例如使用NtCreateThreadEx在各个会话之间注入线程。

在OSX上,线程注入的主题似乎相对未知。由于操作系统是如此之大,我可以从哪里开始寻找所需的功能?例如,如果有人问我有关Windows的问题,我会期望得到答案我开始进行反向工程CreateRemoteThread或开始研究内核如何创建用户线程并将其指向ntoskrnl.exe

评论

该软件是多余的,因为此处的大多数问题都涉及软件。

似乎也存在大量与硬件相关的问题。如果硬件RE想要使用此站点,如果他/她可以将“软件”放在他们被忽略的标签上,并且没有像我这样的问题,那会不会很好?

硬件RE也可以将硬件添加到他最喜欢的标签中。它会产生类似的效果。不要在这里发表您的意见-> meta.reverseengineering.stackexchange.com/questions/3 / ...

@AshRj公平点。我以后会修复。

#1 楼

诚然,我对OSX甚至Linux都不了解。但我建议您查看GDB源代码。 GDB能够以某种方式附加到正在运行的进程以对其进行调试。我可以想象,这至少可以提供您正在寻找的类似功能,并且可以作为一个不错的起点。

如果您正在寻找系统调用,那么ptrace就是这样GDB可能会这样做。另外,这里还很好地概述了调试器的工作原理。

更新:

实际上,似乎Uninformed撰写了一篇涵盖该主题的文章。在他们讨论的文章中:


很多人似乎已经从Linux或BSD迁移到Mac OS X,因此希望ptrace()syscall很有用。
但是,不幸的是,在Mac OSX上不是这种情况。由于某些
不合理的原因,Apple决定让ptrace()不完整且无法执行
,而不是仅仅尝试一种小的反调试机制
,或者只是一步一步。
。 />

另外,从该文章看来,thread_create_running可能就是您想要的功能。链接到手册页。

评论


不了解情况的文章真的很棒,我认为正确的方法可以使我朝正确的方向开始。谢谢!

–mrduclaw
13年3月31日在2:20

#2 楼

对于OS X注入,我将看一下mach_star项目(mach_override和mach_inject)。 x支持

http://software.intel.com/zh-cn/articles/pin-a-binary-instrumentation-tool-downloads

#3 楼

您可能会发现这很有用-我最近写了一篇有关此的教程,因为正如您所注意到的,该材料的文档总是如此粗略,并且经常过时。

http:// soundly .me / osx-injection-override-tutorial-hello-world /