吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3429|回复: 81

[经验资料] IO重定向简单分析

  [复制链接] 出处:吾爱破解
ShareKing 发表于 2022-2-5 01:33 | 显示全部楼层 |阅读模式

0x0 引言

  • X:svc跟syscall的区别是啥

  • Y:xxxx唧唧哇哇oooo

  • X:怎么bypass 内存搜索还是ptrace

  • Y:va用的内存搜索+inline的(目前所看到的源码),隔壁珍惜大佬用的ptrace的

  • Y:大佬们要不要关注下我,突然灵机一动,想写个openat,syscall,svc,和va io svcbypass处理的文章[皱眉]
    以上纯属是个玩笑。当然了,本文要表述的这部分内容比较基础,大佬级别手下留情,给小菜花留点活路,感激涕零

0x1 系统调用相关概念
我先去cv一点概念性的东西
181427oeii9989909t8t1z.png    
用户态是怎么进入到内核态呢?这着实让人头疼。实际上常见的 kill方法 就会进入到内核态,而沟通内核态的方法就是sys_call方法。
181615z0qmkxqdxp4mx0k3.png





0x2 跟踪openat源码
咱们这里以android8.0 arm64为例: http://androidxref.com/8.0.0_r4
181704zmtmph4m646lmwbm.png

可以看到,open和openat的实现都是__openat,那就去__openat看下
181750kfi5f2ix2zroik1m.png
svc出现了

0x3 跟踪syscall源码
使用方式:pid_t pid = syscall(__NR_getpid);
181833gfo7kctltaauw25z.png
源码:svc 出现了

0x4 io重定向
va:https://github.com/asLody/VirtualApp
ratel:https://github.com/virjarRatel/ratel-core
io重定向都是上述两个产品的核心功能之一,并且它俩的逻辑差不多哈,因为ratel是新开源的,所以直接拿ratel来看
(ps:io重定向可以干的事很多哈,如va的多开原理,ratel的一机多号原理,bypass文件检测等场景中,io重定向都起到了至关重要的作用)
181909pv6utuvq5qtzq155.png
函数hook
181949f9zwwe54f341f0d1.png
内存扫描 + hook
182024trs2wrhg002s2e1h.png
182056ugefbffbaf2icpc7.png
这部分优雅的写法主要是IORelocator.h中几个宏决定的,大家可以好好读读源码,然后学习和cv一波
frida方式见我的另一篇文章:https://mp.weixin.qq.com/s/TYwmqIE0jZ0BYWpunQ7TZw
0x5 总结
  • int fd = openat(dirfd, "output.log", O_CREAT|O_RDWR|O_TRUNC, 0777);
  • long fd = syscall(__NR_openat, dirfd, "output.log", O_CREAT|O_RDWR|O_TRUNC, 0777);
以 上述日常读文件方式 和 android8.0源码arm模式 为例:

  • 都要由用户态进入内核态

  • 进入内核态的逻辑由汇编实现(准备寄存器参数,然后swi/svc)

  • 32位下是swi指令,64位下是svc指令

  • openat -> __openat -> __openat.S -> 准备系统调用号,然后swi/svc(这里可以理解写死调用号形式的汇编实现)

  • syscall -> syscall.S -> 准备系统调用号,然后swi/svc(这里可以理解为传参形式的汇编实现)

  • io重定向的应用场景很多

  • ratel hook了

    • 以__openat为代表的文件操作相关函数

    • 以__openat.S为代表的具体的文件操作方式的swi/svc逻辑(写死调用号形式的汇编实现)

    • app so自实现的具体的文件操作方式的swi/svc逻辑(写死调用号形式的汇编实现)(ps:目前hook时机在dlopen后,目标自实现svc汇编写法要和__openat.S中写法类似,才会生效。哈哈,这部分逻辑我提的pr,cv大法好。当然了,hook的时机、汇编特征、更多调用号的适配都可以继续优化)

  • ratel 未hook

    • syscall这个函数

    • syscall.S的汇编实现

  • va,ratel,fakexposed....等项目中有很多可以学习和cv的地方,*发了个人理解的方案流/算法流技术晋级路线

  • 感谢上述的各位巨巨

评分

参与人数 22HB +18 THX +7 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
一路走来不容易 + 1
消逝的过去 + 1
459121520 + 1
agan8888 + 1
yexing + 1
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
徐闯 + 1
车太震 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
szukodf + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
BigCarp + 1
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
davidhee + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
yhfyhf + 1
1072560919 + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
brswbx201610 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
king51999 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
自行车067 发表于 2022-2-5 01:39 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tULZD 发表于 2022-2-5 01:42 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
抽屉29605 发表于 2022-2-5 02:00 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
XeTI3 发表于 2022-2-5 03:20 | 显示全部楼层

我觉得楼主这帖很强!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tkmOD6 发表于 2022-2-5 06:03 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
泥猴桃082 发表于 2022-2-5 06:41 | 显示全部楼层

Thanks~ 向楼主致敬!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
heCJlyuDEv 发表于 2022-2-5 06:47 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
afxKhM081 发表于 2022-2-5 07:52 | 显示全部楼层

火前留名!我相信一定会火!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
KhnfGoBV 发表于 2022-2-5 07:52 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表