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

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

2023-10-24 11:57
8928

本次题目来自NSSCTF-2nd,题目附件会打包上传
比赛的时候采用了frida-hook的方法来解题,近期在复现总结基础

想到了可以用smali修改来做,顺带记录了一下(两种方法)

app自己开了debug
图片描述
使用aapt获得启动包名
图片描述
smali修改,调用目标函数直接传参数
图片描述
图片描述
我的Android killer有点小问题,只能结合jdax来进行定位分析
图片描述
Android killer上手修改
图片描述

改为相反条件即可
图片描述
将v5赋值为对应的值
图片描述
Android killer 保存编译
图片描述
flag:
NSSCTF{1a74ee530fafa690dcddd0ce38260755}

前面的准备工作都是一样的

(动态插桩的做法在这道题,显得比较鸡肋,但是顺带练习一下哈哈哈)

在某些题目,动态插桩的做法会输出很多重要的值,帮助我们来进行分析
前面的修改不要动
图片描述

图片描述
动态插桩的模板:
(注意:v0在原samli中可能会被用到,此时v0要替换为任意一个非重要寄存器,本题的v0在后面用到了,因此我替换为v4)

不报错的动态插桩smali代码

然后在logcat里面查看输出

图片描述

分享结束~!

if-ne  v1,v2  ;v1!=v2则跳转
if-eq  v1,v2  ;v1==v2则跳转
if-ne  v1,v2  ;v1!=v2则跳转
if-eq  v1,v2  ;v1==v2则跳转
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  #调用即可
move-result-object v6   #v6是某个重要的值,需要我们来输出的值
     

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 2
支持
分享
最新回复 (2)
雪    币: 3573
活跃值: (31026)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-10-26 16:41
1
雪    币: 6221
活跃值: (5660)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2023-10-26 18:43
0
游客
登录 | 注册 方可回帖
返回
//