黑客 samba - 如何从 struct fd_handle 获取目录
我正在破解一些 samba 内部结构,我想记录 read_file 和 write_file 中写入的内容,确切地说我想获取文件名、目录以及写入的字节数。
在struct files_struct中,定义了文件名(char * fsp_name),我可以计算写入的字节数,但在files_struct中没有目录字段。
有什么办法,如何确定 samba guts 中打开文件的目录吗?
i'm hacking some samba internals, and I want to log, what's written in read_file and write_file, exactly I want to get file name, directory, and how much bytes are written.
in struct files_struct, there is defined file name (char* fsp_name), and I can count number of written bytes, but in files_struct there is no field with directory.
Is there any way, how to determine opened file's directory in samba guts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设 char* fsp_name 包含完整文件(而不是相对名称),您可以使用 strpbrk () (man 3 strpbrk) 吗? 循环搜索“/”,直到返回
NULL
。 那么你的目录就是从fsp_name到它上次返回的指针。Assuming that the
char* fsp_name
contains the full file (and not the relative name), could you usestrpbrk ()
(man 3 strpbrk)? Loop searching for "/", until it returnsNULL
. Then your directory is from fsp_name to the pointer it returned the last time.好的,那么 - 解决方案:
files_struct 包含“conn”字段,其中包含“char * origpath” - 包含当前文件的目录。
OK, so - solution:
files_struct contains 'conn' field, which has 'char * origpath' - which contains current file's directory.