Apk常用调试方法

来源:互联网 发布:markov chain python 编辑:程序博客网 时间:2024/06/05 17:40
第一查看日志方法:
adb logcat>c:\deubg.txt
第二种插入代码法:
在smali文件添加

    const-string v0, "I\'m here!"

    const/4 v1, 0x1

    invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

这个是编程常用打印定位调试法,当然还可以打印要查看寄存器(参考)值。

   move v0 , vX //输入要查寄存器

    invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

最后再送上字串符突破:
字符提示:
\res\values-zh-rCN\strings.xml
values-zh-rCN这个简体中文,当然黑认为values一般都为英文
<string name="hello">你好!</string>
smali文件16进制对照表文件:
\res\values\public.xml
<public type="string" name="hell" id="0x7f0600a1" />
利用编辑器在smali目录,搜索 0x7f0600a1 这样就可以快速定位在某个.smali文件如:“hello.smali”
之后可以直接修改,或用dex2jar之类工具转换后再反译打开相同文件的.class如“hello.class”看半成品java代码分析破解流程。