首页
社区
课程
招聘
[原创]安卓日记_修改smali代码打印函数调用顺序
2022-10-19 14:22 590

[原创]安卓日记_修改smali代码打印函数调用顺序

2022-10-19 14:22
590

前言

纯兴趣更新!

项目地址

可自动向apk插入smali代码从而达到打印函数调用顺序的目的。

1
https://github.com/encoderlee/android_tools

演示

这里用的攻防世界的一道题目(逻辑比较简单)

 

将apk首先进行解包

1
>apktool d easy_app.apk

 

然后运行inject_log.py脚本将InjectLog.smali放入解包的easy_app\smali\com\hook\tools目录下面(也可以手动)

1
2
>python3 inject_log.py -c easy_app
create InjectLog.smali ok: easy_app\smali\com/hook/tools/InjectLog.smali

 

然后运行inject_log.py将循环遍历smali目录(这里仅选择了com\example\myapplication包)下的所以smali文件注入InjectLog.PrintCaller()函数。

 

 

然后这时我们打开个smali文件就可以发现成功注入。

 

 

然后这时我们再将apk进行打包

1
2
3
4
5
6
7
8
9
10
>apktool b easy_app -o easy_app_unsigned.apk
I: Using Apktool 2.6.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...

 

然后再将其进行签名,这里直接用的是AK进行的签名。

 

然后使用jeb打开签名后的apk,发现成功注入打印log的日志

 


然后安装它,点击check按钮

 

 

即可发现成功可以看到函数的调用流程(只能看应用层的函数,因为只往应用层的smali代码进行的日志打印注入)


[培训]《安卓高级研修班(网课)》月薪三万计划

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回