菜鸟教程小白 发表于 2022-12-12 12:11:31

iphone - GDB IOS 中未定义函数


                                            <p><p>我开发了一个简单的 IOS 应用程序,它只验证 pin/code 值,如果为 true,则打印 <em>"isvalidated"</em>,如果为 false,则打印 <em>"is notvalidate"</em>。 </p>

<p>我做了什么然后我选择了 <em>product->archive</em> 应用程序并将其作为“myapp.app”并将其上传到我的 IOS 手机中,之后我使用 GDB 尝试将应用程序破解为(PoC),但是当我尝试将断点设置如下:</p>

<blockquote>
<p><em>#(gdb) break -</em></p>

<p><em>Function &#34;-&#34; not defined.</em></p>

<p><em>Make breakpoint pending on future shared library load? (y or )</em></p>
</blockquote>

<p>这个错误背后的原因是什么?在使用应用程序之前 - 在 XCode 中的存档步骤期间,我们是否需要指定任何首选项。</p>

<blockquote>
<p><em>Reading symbols for shared libraries . done</em></p>

<p><em>Reading symbols for shared libraries ........... done</em></p>

<p><em>Reading symbols for shared libraries + done</em></p>

<p>*0x3b442eb4 in mach_msg_trap ()*</p>
</blockquote></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>当您归档产品时,它会在“发布”模式下构建,其中调试符号被去除。 <code>lldb</code> 或 <code>gdb</code> 不利用 <code>__OBJC</code> 段中的信息来尝试获取方法名称,它们仅依赖于调试符号。
您需要做的是在特定地址中断,即在 gdb 中: <code>b *0x12345</code> 其中 <code>0x12345</code> 是 <code>-</code>。
要检索该地址,您可以查看 xcode 生成的程序集。或者更现实地说,就像你对“未知”二进制文件所做的那样;您可以使用 <code>otool</code> 或 <code>class-dump</code> 实用程序等工具(查看 <code>-A</code> 和 <code>-H</code>选项)</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - GDB IOS 中未定义函数,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17470808/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17470808/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - GDB IOS 中未定义函数