为什么 lldb 似乎不会停在断点处?

逆向工程 断点 数据库
2021-06-17 03:16:30

在远程对 iPhone 应用程序进行逆向工程时,我为某些功能的地址设置了断点。

这些地址来自使用 Hopper 分析的反汇编二进制文件,看起来它们必须由应用程序调用。user_click_on_blue_buton,或等价物。

我检查了断点设置是否正确:

  • 没有一个处于待处理状态,
  • 都将标志解析为 true: resolved = 1,
  • 这些地址的反汇编代码与使用 Hopper 静态分析的二进制代码相同。

但是,当我单击蓝色按钮时,lldb 不会在断点处停止。该过程继续进行,就像没有断点一样。确切地说,有些是有效的,但只是少数,而不是全部。

lldb 是否有可能错过断点?还是因为应用程序在欺骗我而没有调用这些功能?

显然,该应用程序是从应用程序商店发布的 iOS 应用程序。所以绝对不能编译调试。是这个原因吗?

1个回答

因为这些函数从未被调用过。

该应用程序确实欺骗了我。不是因为函数被命名user_click_on_blue_button,当用户点击蓝色按钮时它会被调用。取而代之的是另一个名称不太明显的函数。

找不到我以前的帐户,因此使用新帐户。