文档章节

proxychains-ng 工作原理分析

邪云子
 邪云子
发布于 2016/05/04 00:03
字数 184
阅读 398
收藏 2

概要

  • linux 中使用 LD_PRELOAD
  • mac osx 中使用 DYLD_INSERT_LIBRARIESDYLD_FORCE_FLAT_NAMESPACE=1 环境下

对网络相关的 API(sys/socket.h, 见 src/libproxychains.c) 进行 hook 实现代理的功能

细节

src/libprocychains.c

// hook socket 相关的函数
static void setup_hooks(void) {
	SETUP_SYM(connect);
	SETUP_SYM(sendto);
	SETUP_SYM(gethostbyname);
	SETUP_SYM(getaddrinfo);
	SETUP_SYM(freeaddrinfo);
	SETUP_SYM(gethostbyaddr);
	SETUP_SYM(getnameinfo);
	SETUP_SYM(close);
}

src/main.c

// 主要逻辑如下,加载动态链接库,然后执行后面的程序,由于是同一个进程仅仅更换执行的代码所以动态链接的网络库使用的是修改过的不会变
// proxychains4 curl http://ipecho.net/plain; echo
int main(int argc, char *argv[]) {
	int start_argv = 1;

	putenv("LD_PRELOAD=/usr/local/lib/libproxychains4.dylib");
	execvp(argv[start_argv], &argv[start_argv]);
}

待续

references

© 著作权归作者所有

邪云子
粉丝 18
博文 120
码字总数 24684
作品 0
朝阳
程序员
私信 提问
加载中

评论(2)

邪云子
邪云子 博主

引用来自“kingyang”的评论

哈哈,前一段也研究了一番
哈哈,你怎么没总结一下我也好参考
kingyang
kingyang
哈哈,前一段也研究了一番
使用proxychains-ng代理转发终端命令

常见的VPN程序大部分默认代理浏览器的http流量,好多场景不是一个浏览器能解决问题的。linux用户大部分都是重度命令用户,如果要让终端下的命令被代理转发,这时我们就要用上proxychains-ng这...

Linux就该这么学
2018/10/04
138
0
macbook通ssh代理来访问受限的git服务

先安装proxychains-ng: brew install proxychains-ng 然后将公钥上传服务器, 并在~/.ssh下建立authorizedkeys文件,进行免登陆处理 cat idrsa.pub >> authorizedkeys 本地编辑 vim ~/.ssh/c......

purely
2015/08/12
51
0
proxychains 给 yum 做代理

参看这篇文章 ubuntu等linux下自定义设置程序代理工具proxychains简介 在linux下,有时候我们想给一个程序设置代理,但是程序自身却不具备设置代理的配置选项,这时候并不是无法给程序设置代...

sincoder
2013/04/20
1K
1
Ubuntu下用ProxyChains穿墙安装Dropbox

优秀的云存储服务Dropbox被华丽丽的和谐了~Windows底下直接可以下到客户端,Ubuntu底下还要去网络上获取安装资源,这就碰到一个问题,给任意本地程序添加代理功能。当然,这里的任意可能有些...

鉴客
2010/07/27
2.2K
1
DropBox 1.0 发布,新增选择性同步功能

知名云存储服务 DropBox 发布了 1.0 新版客户端,新版本最主要的改善是: 同步引擎经过了重新设计,在响应时间及资源消耗方面都有所改善,据说降低了 50% 的内存使用率。 在用户体验方面也有...

红薯
2010/12/18
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Java Web 中对 ServletRequest 的一些非常规操作解决方案

1. 前言 ServletRequest 是我们搞 Java Web 经常接触的 Servlet Api 。有些时候我们要经常对其进行一些操作。这里列举一些经常的难点操作。 2. 提取 body 中的数据 前后端交互我们会在 body...

码农小胖哥
39分钟前
2
0
《Dual Encoding U-Net for Retinal Vessel Segmentation》阅读笔记-MICCAI2019

作者:Bo Wang1,2, Shuang Qiu2, and Huiguang He1,2,3 目的:Retinal Vessel Segmentation is an essential step for the early diagnosis of eye-related diseases, such as diabetes and ......

JungleKing
41分钟前
2
0
一次看懂 Https 证书认证

TLS > 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图,TLS...

极客收藏夹
56分钟前
5
0
https证书买哪家好?有哪些供应商

在选购https证书前除了要了解类型外,还需要了解https证书供应商,毕竟不同的供应商,提供的产品质量与服务也是有差异的。今天小编就为大家讲讲https证书供应商方面的内容,希望各位会喜欢。...

安信证书
57分钟前
6
0
Zuul 配置

概述:zuul底层是基于servlet,是由一系列的filter链构成。 1、路由配置 a、单例serverId映射 zuul: routes: client-a: path: /client/** serviceId: client-a 意思是...

java框架开发者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部