免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5360 | 回复: 2
打印 上一主题 下一主题

[高级应用] 关于捕获AIX系统调用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-27 14:23 |只看该作者 |倒序浏览
本帖最后由 EncoreDeng 于 2014-05-27 14:25 编辑

大家好,关于AIX系统调用的捕获(教程在http://www.ibm.com/developerwork ... ceptcall/index.html),
我做了部分测试,发现如下问题, 希望大神们能够有所指点,谢谢.

首先简单的C代码如下
int main(void)
{
        void *pAddr = (void *)chmod;
        int *pInt = (int *)pAddr;
        printf("%X %X\n", pInt[0], pInt[1]);
        chmod("./testchmod.c", S_IRUSR|S_IWUSR|S_IXUSR);
        int n = open("./testchmod.c", O_RDONLY);
        return 0;
}

打印输出: 3700 138

正如文章所讲, 伪函数描述符的第一个双字(double-word)包含系统调用入口点的地址(0x3700),而第二个双字包含 chmod 的 svc 编号(0x138)


但当我尝试把系统调用从chmod换到open时,打印输出就完全不是那回事,

int main(void)
{
        void *pAddr = (void *)open;//chmod
        int *pInt = (int *)pAddr;
        printf("%X %X\n", pInt[0], pInt[1]);
        chmod("./testchmod.c", S_IRUSR|S_IWUSR|S_IXUSR);
        int n = open("./testchmod.c", O_RDONLY);
        return 0;
}

打印输出:D0119AE0 F1A724A0

当我尝试用dbx进行,尝试查看open的汇编指令,发现情况也跟chmod有很大区别.

(dbx) listi open
0xd0119ae0 (open)      7c0802a6        mflr   r0
0xd0119ae4 (open+0x4)  93e1fffc         stw   r31,-4(r1)
0xd0119ae8 (open+0x8)  93c1fff8         stw   r30,-8(r1)
0xd0119aec (open+0xc)  93a1fff4         stw   r29,-12(r1)
0xd0119af0 (open+0x10) 9381fff0         stw   r28,-16(r1)
0xd0119af4 (open+0x14) 9361ffec         stw   r27,-20(r1)
0xd0119af8 (open+0x18) 83e206d8         lwz   r31,0x6d8(r2)
0xd0119afc (open+0x1c) 90010008         stw   r0,0x8(r1)
0xd0119b00 (open+0x20) 8002000c         lwz   r0,0xc(r2)
0xd0119b04 (open+0x24) 9421ffa0        stwu   r1,-96(r1)



另外我尝试查看其他多个系统调用,发现也不能用教程里的办法,取为函数描述符的前两个双字来获得系统调用的入口地址和相应的svc.

希望各位大虾能够解答小弟的小小疑问.
小弟就此拜谢!

论坛徽章:
0
2 [报告]
发表于 2014-06-09 13:08 |只看该作者
原文说的不是固定位置,要看dbx输出去“猜”的。你再好好看几遍。

论坛徽章:
62
洛杉矶湖人
日期:2015-02-10 09:56:11黑曼巴
日期:2016-06-28 17:41:282015-2016NBA季后赛纪念章
日期:2016-06-28 17:41:282016猴年福章徽章
日期:2016-02-18 15:30:34圣安东尼奥马刺
日期:2015-05-04 22:46:00菠菜神灯
日期:2015-05-04 22:35:07新奥尔良黄蜂
日期:2015-03-17 13:54:52明尼苏达森林狼
日期:2015-03-16 21:51:15萨克拉门托国王
日期:2015-03-02 16:10:58华盛顿奇才
日期:2015-03-02 16:10:58迈阿密热火
日期:2015-03-02 16:10:582016科比退役纪念章
日期:2016-06-28 17:41:28
3 [报告]
发表于 2014-06-13 11:21 |只看该作者
学习下。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP