我想针对 Android
应用程序中的某些特定代码行跟踪系统调用,并使用 strace
或 系统调用 Hook
,我可以得到针对 APK
的系统调用列表。
我想知道是否有任何函数调用或其他任何我们已经知道确切数量的系统调用的东西,以便我可以将其放在我感兴趣的代码行之前和之后?
最佳答案
您尝试做的事情的麻烦在于您的一步通过Java VM与底层系统分离。它可以在你的脚下做各种与系统调用相关的事情,而你的应用程序无法控制。
在非 Android 世界中,最常用的系统调用是“gettimeofday”,因为它永远不会被库函数缓存,并且很容易看到发生的情况。然而,正如您在上一个问题中指出的那样,这要困难得多,因为虚拟机正在自行进行 gettimoufday 调用(很可能是出于会计目的)。因此,您需要选择一个会导致系统调用但不太可能被虚拟机正常调用的 android 函数。通过 API 查看的一些候选人包括:
祝你好运。
关于android - 是否有任何 Android 函数调用只进行一两个特定的系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314335/