-
-
[求助]问几个基于got表hook的问题
-
发表于:
2015-1-21 15:30
13558
-
最近研究so hook,之前以为只会有几个问题,但发帖问了下后才发现,原来自己是错的,自己根本就是个渣。于是就决定慢慢来,从最简单的开始。于是就先自己写了个demo来试着基于got表的hook,但还是被虐了
,所以只好又回来问问题了
1.安装后程序加载的so库的路径是什么啊?是data/data/程序/lib 里的? 还是在/proc/pid/maps中看到的/data/app-lib/xxxxx/ 里的?
2.如果问题1确定后,我是用dlopen+dlsym找到了so库中想要hook的函数的地址,假设地址为A。然后我遍历so的头部,找到.got段的位置,进入.got再进行遍历,每次获得的地址假设是B。
然后比较A和B是否相等,相等的话就修改。这样的思路正确吗?但为什么我遍历完后都没有没试过A和B相等啊?
其实就是根据http://blog.csdn.net/eqera/article/details/38022045 和 http://bbs.pediy.com/showthread.php?t=157419 来尝试hook 我自己写的demo中的so
但是结果如下:
old_method = 0x73d9ec31
got_item = 73d9f7d0
got_item = 73d9f7d8
got_item = 73d9f7e0
got_item = 4005da95
got_item = 73da02d8
got_item = 73da01d0
got_item = 0
got_item = 0
got_item = 0
got_item = 0
got_item = 40073399
got_item = 4007348d
got_item = 4005da95
got_item = 4006b758
got_item = 4006c000
got_item = 0
got_item = 0
old_method 是我用dlopen+dlsym得到的,自己demo中的so中的,想要hook的函数地址
got_item是跑got表得到的地址,但没有相等的 。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)