第一查看日志方法: 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代码分析破解流程。 |
Apk常用调试方法
最新推荐文章于 2024-06-26 20:28:50 发布