博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

飞翔,嵌入式linux

linux嵌入式系统必将大行于天下。专注于linux嵌入式系统的搭键,专注于高效稳定软件的开发,专注底层程序调试技术。
  feixiang.cublog.cn

关于作者
姓名:飞翔
Email:loughsky@sina.com
职业:IT
年龄:32
位置:北京
个性介绍:专注在嵌入式操作系统,以及高效程序调试
|| << >> ||
我的分类


关于突破glibc中 injectso的限制
在前面的文章提到了,glibc为了防止injectso,做了一些补丁,来判断调用的地址必须来自libdl。采用injectso的方法,如果调用glibc的函数是可以,前面已经做过运行mtrace的例子。但是这样的用处不大。
 
只有能够自己形成so文件,并且调用,这样才能做很多事情。
有两个想法:
1  有的程序编译过程中直接包含了libdl库,那么我们争取使用调用dl_open的方法,来启动so库。那么我们必须找到libdl的源码,来查看它是如何传参数的。
 
2  如果上面的方法成功,那么对于没有包含libdl的库,我们可以通过修改elf文件的方式,使之具有libdl库,将没有用的sectiion header修改成libdl。然后再运行该程序。之后便可以使用1所提到的方法。待实际检验。

发表于: 2007-04-22,修改于: 2007-04-22 23:20,已浏览853次,有评论0条 推荐 投诉


网友评论
 发表评论