gpt4 book ai didi

Android 调试(重新设计的 APK 和 waitForDebugger)

转载 作者:行者123 更新时间:2023-11-30 04:03:12 26 4
gpt4 key购买 nike

我正在尝试找出使用 APKTOOL、Smali 等工具以及 Eclipse 和 NetBeans 等 IDE 对 APK 进行黑盒测试的方法。我拥有我需要的大部分东西 - 我可以反编译/调试仪器/重新编译/签名/对齐并在设备上运行。

我遇到的问题是在附加调试器后设置断点(断点在 Smali 代码中设置)。断点似乎没有提交给 Dalvik,或者 Dalvik 没有遵守断点。无论哪种方式,当程序遇到断点时,调试器都不会捕捉。一些研究表明我可能需要 Debug.waitForDebugger。 (http://stackoverflow.com/questions/3107587/android-with-jdb-confusion-using-waitfordebugger)。

假设 waitForDebugger 是下一个障碍,我可以使用带有 invoke-static {}, Landroid/os/Debug;->waitForDebugger()V 的 Smali 语法插入它调整本地堆栈后。

我的问题是,我在哪里插入对 waitForDebugger 的调用?我应该在静态构造函数 (clinit)、实例构造函数 (init)、onCreate< 中选择 MainActivity(来自 list )/,或其他地方? Eclipse、NetBeans 等 IDE 如何在其调试构建中执行此操作?

最佳答案

上述问题的简短答案是将其放在 MainActivity.onCreate 中。

Dima 在 APKTOOL 错误报告中提供的长答案指出 Debug.waitForDebugger 不可靠,我们应该等待调试器附加:

boolean debuggerAttached = false;
while(!debuggerAttached ) { ; }

在此错误报告中引用他的回答:NetBeans/Smali Debugging is Broken (SmaliDebugging Page) .

关于Android 调试(重新设计的 APK 和 waitForDebugger),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com