首页
社区
课程
招聘
[原创]smali修改+log动态插桩在Android题目的应用
2023-10-24 11:57 7413

[原创]smali修改+log动态插桩在Android题目的应用

2023-10-24 11:57
7413

本次题目来自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   #v6是某个重要的值,需要我们来输出的值
     
const-string v0,"自定义:"  #v0自定义标签值,方便我们观察
     
invoke-static {v0,v6}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #传入对应的值(string类型)
     
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:"

图片描述

分享结束~!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞2
打赏
分享
最新回复 (2)
雪    币: 19410
活跃值: (29069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-10-26 16:41
2
1
感谢分享
雪    币: 5102
活跃值: (4414)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
gamehack 2023-10-26 18:43
3
0
感谢分享
游客
登录 | 注册 方可回帖
返回