首页   注册   登录
 gleport 最近的时间轴更新

gleport

V2EX 第 38454 号会员,加入于 2013-05-04 14:00:38 +08:00
日常跳板机技巧总结
服务器  •  gleport  •  210 天前  •  最后回复来自 blueskit
1
一种实现 HTTPS 抓包的方法
奇思妙想  •  gleport  •  2018-08-07 13:43:35 PM  •  最后回复来自 sola97
14
一种把指定程序的 TCP 流量重定向到代理的方法
  •  3   
    分享创造  •  gleport  •  2018-08-08 16:01:57 PM  •  最后回复来自 mjikop1231
    28
    湖边偶记
    职场话题  •  gleport  •  2018-03-12 20:26:15 PM  •  最后回复来自 gleport
    13
    躺在床上控制床外电脑播放音乐的一种方法
    奇思妙想  •  gleport  •  2017-08-24 16:31:43 PM  •  最后回复来自 fucker
    42
    微信小程序支持后台运行么
  •  1   
    微信  •  gleport  •  2016-10-17 00:26:28 AM  •  最后回复来自 xiqingongzi
    3
    简单的网络文件系统, 支持 Linux 挂载 Windows 的目录
    分享创造  •  gleport  •  2015-09-12 20:58:09 PM  •  最后回复来自 line
    6
    发布一个玩具:在软件上模拟 led 风扇
  •  1   
    分享创造  •  gleport  •  2015-03-31 22:18:10 PM  •  最后回复来自 gleport
    8
    gleport 最近回复了
    57 天前
    回复了 namek 创建的主题 问与答 请问 v2 的大佬 我这眼睛是怎么回事啊啊啊
    楼主是否有趴着桌子午睡的习惯,眼球可能收到了物理挤压?
    graftcp
    2018-08-06 23:37:56 +08:00
    回复了 gleport 创建的主题 奇思妙想 一种实现 HTTPS 抓包的方法
    楼上列举的部分工具,它们的原理基本一致,有些是和 Charles 一样都是闭源收费软件,基本都需要代理全局流量来达到效果。而这种方式是仅仅影响到需要分析的程序的。我仅仅是提出一种想法,没有这方面需求的话也就没有必要继续了。
    2018-08-06 09:57:15 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @lyztonny tsocks 功能类似,但无法实现重定向静态链接程序的 TCP 流量功能,graftcp 对这点做了改进。
    2018-08-05 19:32:37 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    2018-08-04 12:10:38 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @qf0129 可以的,graftcp-local 启动后,graftcp ssh [email protected] 就可以了。或者:
    graftcp bash
    在这个新 Shell 里面 ssh [email protected]
    2018-08-04 12:08:19 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @lemonda 如果是 PHP 未运行前,可以通过 graftcp 启动一个 Shell, 如: `graftcp bash`,然后在这个新 Shell 内启动 PHP。
    如果是已经运行的 PHP,那么 graftcp 目前没有实现对正在运行的进程 attach 进行跟踪。
    Linux 里 ptrace 可以跟踪一个没有血缘关系的运行时进程,但需要以 root 权限修改默认的 /proc/sys/kernel/yama/ptrace_scope 值为 0:

    sudo su
    echo "0" > /proc/sys/kernel/yama/ptrace_scope

    需要这个功能的话,可以提一个 issue,我有时间实现一下,有人能 PR 就更好了~
    2018-08-04 10:34:30 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @codehz 这里没看明白,是用 Unix domain socket 代替处理 TCP connect 的监听服务吗?
    前面应该是我没有说清楚开端口的原因:因为不能通过修改 write buffer 往里面加入更多的数据(否则我们可以直接把 connect 重定向到 proxy, 每次 write/send 之前改写里面的 buffer, 把发送数据转换为 SOCKS5 协议的数据就可以了,不需要连接到现在 graftcp-local 这个中转处理数据的这一步。我之前踩了这个坑:),以为可以通过共享内存的方式为被跟踪的 app 新增一片更大的可读写内存,查了 execve 的手册才知道所有的共享内存在 execve 之前都被解除了),所以需要有一个 TCP server 来处理 app 的 connect 请求,这就是 graftcp-local
    开了 2233 这个端口监听的原因。

    正如 @1423 提到,graftcp-local 这部分的功能可以合并进 graftcp,如果这样实现的话,为了避免同时运行多个 graftcp 出现端口冲突的情况,每个 graftcp 监听的端口得不相同。这种做法带来的好处很明显,不需要 graftcp-local 了。后期有时间的话,我可能会把 graftcp-local 这部分的功能合并进 graftcp。有好的想法或实现的话,欢迎 PR 哦。

    考虑到调用 ptrace 和实现 SOCKS5 客户端的方便性,以及程序体积等因素,用 Rust 实现也许是个不错的选择。
    2018-08-03 17:37:08 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @dbw9580 被跟踪的进程再 fork 子进程,子进程也会被跟踪。里面的例子:
    ./graftcp bash 开一个 shell, 然后在这个 shell 里面运行所有命令产生的 connect 都会被重定向了。因为 ptrace 设置跟踪时加了 PTRACE_O_TRACECLONE 和 PTRACE_O_TRACEFORK、PTRACE_O_TRACEVFORK 标志位。
    2018-08-03 17:32:51 +08:00
    回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
    @1423
    1. 可以把它们合在同一个程序,但这个程序需要同时能使用 ptrace 及实现 SOCKS5 的客户端功能,而用 C 实现 SOCKS5 客户端的话比较折腾。还有一个原因是要处理 connect() 请求,它必须是一个监听并处理连接请求的 TCP 服务端。如果都嵌入同一个程序的话,就得每一个实例都新开一个新的端口进行监听,否则运行多个 graftcp 端口就冲突了。而每打开一个就新开一个监听端口的话,好像比较奇怪。当然这是可以实现的,这方面可以改进。
    2. 只处理 connect, epoll 不需要处理。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3474 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 04:16 · PVG 12:16 · LAX 21:16 · JFK 00:16
    ♥ Do have faith in what you're doing.