AG真人亚游娱乐平台
使用弗里达
因此,AG真人亚游娱乐平台 安装在机器上,服务器正在智能手机上运行(不要在服务器运行时关闭终端)。现在我们需要检查一切是否正常。为此,请使用 AG真人亚游娱乐平台-ps 命令:
该命令应该列出智能手机上运行的所有进程(-U 标志表示 USB,没有它 AG真人亚游娱乐平台 将列出本地机器上的进程)。如果你看到这个列表,那么一切都很好,你可以继续做更有趣的事情。
首先,让我们尝试跟踪系统调用。AG真人亚游娱乐平台 允许您跟踪对任何本机函数的调用,包括 Linux 内核系统调用。例如,让我们以 open() 系统调用为例,它用于打开文件以进行读取和/或写入。让我们开始 Telegram 跟踪:
拿起你的手机,轻轻戳一下 Telegram 界面。屏幕上应出现如下消息:
此行表示 Telegram 已在其私有目录的 shared_prefs 目录中打开了 userconfig.xml 文件。Android中的shared_prefs目录是用来存放设置的,所以很容易猜到userconfig.xml文件中包含了应用设置。还有一行:
这里更容易。Telegram 积极缓存下载的数据,因此它从缓存中取出数据来显示图像。
shared_prefs 目录中的另一个文件。显然,一些使用情况统计。
看起来很奇怪,不是吗?事实上,一切都很简单。/dev/ashmem 文件是虚拟的,用于使用 Binder IPC 机制在进程和系统之间交换数据。简单来说,这条线意味着 Telegram 转向 Android 来执行一些系统功能或获取信息。可以安全地跳过这些行。
我们编写代码
我们可以拦截对任何其他系统调用的调用,例如用于连接远程主机的 connect():
但是这种情况下的输出不会提供很多信息:
原因是 connect() 系统调用的第二个参数是一个指向 sockaddr 结构的指针。AG真人亚游娱乐平台 不知道如何解析它,因此显示了存储该结构的内存区域的地址。但!我们可以更改 AG真人亚游娱乐平台 在捕获系统调用或函数时执行的代码。这意味着我们可以自己解析 sockaddr!
当您运行 AG真人亚游娱乐平台-trace 命令时,您可能会注意到类似以下行的内容:
这是测试主体调用指定函数时AG真人亚游娱乐平台执行的自动生成的钩子代码。是他负责我们看到的那些无信息行的输出。默认情况下,代码如下所示:
可以看出,该钩子只是按原样输出第二个参数。但是我们知道 connect() 系统调用的第二个参数是一个指向 sockaddr 结构的指针,它只是一个内存地址。sockaddr 结构本身如下所示:
- 上一篇:星辉娱乐代理注册
- 下一篇:对于我们需要的 AF_亚游娱乐平台地址 类型的套接