-
-
[原创]smali修改+log动态插桩在Android题目的应用
-
2023-10-24 11:57
7413
-
[原创]smali修改+log动态插桩在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:"
|
分享结束~!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课