【Android安全-smali修改+log动态插桩在Android题目的应用】此文章归类为:Android安全。
本次题目来自NSSCTF-2nd,题目附件会打包上传
比赛的时候采用了frida-hook的方法来解题,近期在复现总结基础
想到了可以用smali修改来做,顺带记录了一下(两种方法)
1、samli修改跳转+赋值
app自己开了debug
使用aapt获得启动包名
smali修改,调用目标函数直接传参数
我的Android killer有点小问题,只能结合jdax来进行定位分析
Android killer上手修改
1
2
|
if
-
ne v1,v2 ;v1!
=
v2则跳转
if
-
eq v1,v2 ;v1
=
=
v2则跳转
|
改为相反条件即可
将v5赋值为对应的值
Android killer 保存编译
flag:
NSSCTF{1a74ee530fafa690dcddd0ce38260755}
2、smali动态插桩
前面的准备工作都是一样的
(动态插桩的做法在这道题,显得比较鸡肋,但是顺带练习一下哈哈哈)
在某些题目,动态插桩的做法会输出很多重要的值,帮助我们来进行分析
前面的修改不要动
动态插桩的模板:
(注意:v0在原samli中可能会被用到,此时v0要替换为任意一个非重要寄存器,本题的v0在后面用到了,因此我替换为v4)
1
2
3
4
5
6
7
|
move
-
result
-
object
v6
const
-
string v0,
"自定义:"
invoke
-
static {v0,v6}, Landroid
/
util
/
Log;
-
>d(Ljava
/
lang
/
String;Ljava
/
lang
/
String;)I
move
-
result v0
|
不报错的动态插桩smali代码
1
2
3
4
5
|
const
-
string v4,
"myobject_soso:"
invoke
-
static {v4,v3}, Landroid
/
util
/
Log;
-
>d(Ljava
/
lang
/
String;Ljava
/
lang
/
String;)I
move
-
result v4
|
然后在logcat里面查看输出
1
|
adb logcat | find
"myobject_soso:"
|
分享结束~!
更多【Android安全-smali修改+log动态插桩在Android题目的应用】相关视频教程:www.yxfzedu.com