大家好,又见面了,我是你们的朋友全栈君。
如果仅仅用 Smali 来分析代码,效果其实不如用 dex2jar 和 jd-gui 更直观,毕竟看反编译的 java 代码要更容易一些。
但 Smali 强大之处就是可以随心所欲的进行插桩操作。何为插桩,引用一下 wiki 的解释:
插桩时注意:不要影响程序上下文,即插入的代码中,不能影响下面代码中使用的寄存器或者变量。
安卓从开发到逆向(四),smali 插桩:https://blog.csdn.net/wy450120127/article/details/101280797
以 ” 好搜小说大全.apk ” 为例:
下载地址:https://download.csdn.net/download/freeking101/12380255
打开 好搜小说大全.apk
定位当前界面:cmd —> adb shell dumpsys activity top
可以看到当前界面是 MainActivity ,
下面开始分析过程。。。
首先使用 “查壳工具” 检测下 app 有没有加壳,如图:
可以看到 好搜小说大全.apk 没有加壳, 没加壳好办,直接使用 AK 打开 “好搜小说大全.apk”,找到 对应 smali 代码(如果加壳,需要先脱壳,然后再反编译分析,这里不涉及脱壳。)
通过上面找到的 MainActivity ,进入对应的目录( smali —> com —> reader —> activity —> MainActivity )
在 activity 目录中找到 MainActivity :
插入 log 代码:
中文 转 Unicode 编码:
替换完成后,一定要保存,然后编译,生成 修改后的 apk
安装 apk
打开 DDMS 或者 monitor,然后根据包名进行 log 过滤,
使用 DDMS 过滤 log,运行程序即可看到 log 输出。
使用 monitor 查看效果一样:
插入 弹窗 道理一样。
保存,编译,运行
也可以自己写 smali 代码,引入自定义的 smali 包,强制弹出窗口等操作。。。
更多看视频教程。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192868.html原文链接:https://javaforall.cn