re学习笔记(98)攻防世界 mobile进阶区 ill-intentions
推荐肉丝r0ysue课程(包含安卓逆向与js逆向):
题目描述:Do you have have ill intentions?
打开查看MainActivity,仅仅注册了一个广播接收者
而这个广播接收者也没什么代码,仅仅是接受到不同的信息跳转到不同的Acitivity
三个Activity各有一个native函数
三个类逻辑差不多相同,只是调用的native方法不同,关系如下
DefinitelyNotThisOne:definitelyNotThis
sThisTheRealOne:perhapsThis
ThisIsTheRealOne:orThat
安装apk打开,只有MainAcitvity一个TextView,没有什么其他的东西,AndroidManifest.xml中,三个类均是未导出的状态
由于没有让用户输入,所以flag应该是某个阶段生成的,关键应该就在那三个native函数上,且根据名字只有一个是真的。
于是可以在java层hook intent.putExtra()
方法来获得结果 和三个native方法得到参数
为了练习一下native hook,我hook了native层
function main() {function getjstring(jstr) {return Java.vm.getEnv().getStringUtfChars(jstr, null).readCString();}Java.perform(function () {var so_addr = Module.findBaseAddress("libhello-jni.so");var perhapsThis_addr = Module.findExportByName("libhello-jni.so", "Java_com_example_application_IsThisTheRealOne_perhapsThis");console.log("perhapsThis_addr", perhapsThis_addr);Interceptor.attach(perhapsThis_addr, {onEnter: function (args) {console.log("perhapsThis_args:[1]", getjstring(args[2]), "\n [2]", getjstring(args[3]), "\n [3]", getjstring(args[4]), "\n");},onLeave: function (retval) {console.log("perhapsThis_result:", getjstring(retval));},});Interceptor.attach(Module.findExportByName("libhello-jni.so", "Java_com_example_application_ThisIsTheRealOne_orThat"), {onEnter: function (args) {console.log("orThat_args:[1]", getjstring(args[2]), "\n [2]", getjstring(args[3]), "\n [3]", getjstring(args[4]), "\n");},onLeave: function (retval) {console.log("orThat_result:", getjstring(retval));},});Interceptor.attach(Module.findExportByName("libhello-jni.so", "Java_com_example_application_DefinitelyNotThisOne_definitelyNotThis"), {onEnter: function (args) {console.log("definitelyNotThis_args:[1]", getjstring(args[2]), "\n [2]", getjstring(args[3]), "\n");},onLeave: function (retval) {console.log("definitelyNotThis_result:", getjstring(retval));},});});
}
setImmediate(main);
由于我没有修改apk文件,所以比较麻烦。需要开两个终端,先用objection android intent
跳转到相应的activity,然后frida附加进程,在点击相应按钮获得hook输出。
或者采用重打包apk,给activity添加exported属性然后使用am命令来跳转到相应的Activity,修改入口也可以。
最终我们得到输出
orThat_args:[1] IIjsWa}iyYSmks
[2] ODBkNTNhZjRmMGZmMWYtMzhhMDIzMmMwYjcwNzlhMTUwMDczOWNlYjhjMhUWYWYeMzYiZDFkMTY?
[3] MhMhMGJhMTUhOGYWZThlZDQaYWJkYzkWZTktMTQhMjYhOTgiOTZkODgaNWRkZmFiZTciOGNlNDI?
orThat_result: KeepTryingThisIsNotTheActivityYouAreLookingForButHereHaveSomeInternetPoints!
perhapsThis_args:[1] TRytfrgooq|F{i-JovFBungFk\VlphgQbwvjHuDgaeTzuSt.@Lex^
[2] ZGFkNGIwYzIWYjEzMTUWNjVjNTVlNjZhOGJkNhYtODIyOGEaMTMWNmQaOTVjZjkhMzRjYmUzZGE?
[3] MzQxZTZmZjAxMmIiMWUzNjUxMmRiYjIxNDUwYTUxMWItZGQzNWUtMzkyOWYyMmQeYjZmMzEaNDQ?
perhapsThis_result: Congratulation!YouFoundTheRightActivityHereYouGo-CTF{IDontHaveABadjokeSorry}
definitelyNotThis_args:[1] YjYwYWZjMjRkMhVhZTQhZDIwZGFkNWJhMGZmZGYiYmQaMmFkMjBiMTEhNDAtMzMzMjdlZmEWNzU?
[2] MzYwNjMeNjgxNWZkNGQeOTFhOTIhNDkiMDVhNDBkYTAyNWQtYhYxNWYwOTUxMzZiMTlmMzciMjM?
definitelyNotThis_result: Told you so!
得到最终的flag为CTF{IDontHaveABadjokeSorry}
re学习笔记(98)攻防世界 mobile进阶区 ill-intentions相关推荐
- re学习笔记(93)攻防世界 - mobile进阶区 - Illusion
推荐肉丝r0ysue课程(包含安卓逆向与js逆向): jeb载入查看MainActivity 可以发现是将用户输入,与encflag传入了native方法中去,native方法的返回值就是显示结果 而 ...
- 攻防世界web进阶区Web_python_block_chain详解
攻防世界web进阶区Web_python_block_chain详解 题目 详解 51% 双花攻击 题目 详解 我们整理一下 Announcement: The server has been res ...
- 攻防世界高手进阶区 ——Mary_Morton
攻防世界高手进阶区 --Mary_Morton 不容易呀,这都已经是第七题了,继续加油! 一,老规矩,先分析一下文件 checksec一下 发现开启了栈溢出,可能这个题就是学习栈溢出漏洞绕过的. 运行 ...
- 攻防世界MISC进阶区刷题记录
文章目录 攻防世界MISC进阶区刷题记录 Ditf 运用stegextract进行分离 glance-50 gif图片分离组合脚本 hit-the-core Test-flag-please-igno ...
- 攻防世界 pwn进阶区----No.012 babyfengshui 解题思路
攻防世界 pwn进阶区----No.012 babyfengshui 解题思路 1.本题解题思路 1.先期工作 1.运行程序查看基本逻辑 创建用户 展示用户 更新用户 删除用户 到这里就可以猜测这题有 ...
- 攻防世界高手进阶区——dice_game
攻防世界高手进阶区--dice_game 题目里面啥都没有. 一.分析文件 checksec 只有栈溢出保护关闭了,其他都是开着的. 运行 可以看出是要猜数字,猜对50次. ida逆向 __int64 ...
- 攻防世界高手进阶区 ——forgot
攻防世界高手进阶区 --forgot 看了半天,啥也没看懂,做出来了才发现啥也不是. 一,分析文件 checksec 还好,只开启了堆栈不可执行. 运行一下 翻译了一下,应该是判断邮箱是否合乎规矩. ...
- 攻防世界web进阶区Web_php_wrong_nginx_config详解
攻防世界web进阶区Web_php_wrong_nginx_config详解 题目 详解 题目 打开发现无论我们输入什么他都会弹出网站建设不完全 那么我们使用御剑进行扫描,扫描到了admin和robo ...
- 攻防世界高手进阶区 ——反应釜开关控制
攻防世界高手进阶区 --反应釜开关控制 题目没什么信息.在这里插入图片描述 1.分析文件 运行一下,可能为栈溢出的题. checkse 无栈溢出保护,无地址随机化,只有堆栈不可执行. 栈溢出可能性大. ...
最新文章
- oracle的存储过程 替换,为什么在存储过程中,变量替换无法使用索引?
- rateLimiter令牌桶限流算法
- c语言EOF0x99,C语言选择题99道.doc
- ajax获取cpu的占用率,JavaScript获取当前cpu使用率的方法
- Class.forName()方法抛出异常
- 设置文件为源文件(和src一样)
- mac下多个php版本切换(可操作版)
- java JVM常见的四大异常及处理方案
- patch补丁文件格式
- 龙卷风路径_和平精英龙卷风在哪里 龙卷风位置介绍
- 计算机专业保研面试备考:操作系统
- php 时辰,生辰八字时辰查询表对应的时间
- LVM 的自定义报告(pvs vgs lvs各参数详解)
- 开发测试环境 k8s node节点磁盘不足运维
- 刚刚!腾讯荣升Linux基金会白金会员
- 麒麟鲲鹏升腾鸿蒙巴龙,华为四大芯片 麒麟、巴龙、昇腾和鲲鹏“四大天王”...
- (总结)密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解(附:120G彩虹表下载)
- Elastic Job入门示例
- 【翻译】非常详细易懂的法线贴图(Normal Mapping)
- 百趣代谢组学解读,从蛋白组学和代谢组学角度,浅析白番石榴成熟过程