跳至主要内容

DuplexPipe二三事(四)——网络连接方式随心换

DuplexPipe二三事(四)——网络连接方式随心换

redraiment, 2009-09-04

连接方式





  在《DuplexPipe二三事(一)》中提到建立连接有两种方式:监听本地端口,等待其他程序来连接(以下简称“监听方式”);或者主动连接其他程序(以下简称“连接方式”)。排列组合一下,会得到三种结果:监听-连接、监听-监听、连接-连接。其中只有“监听-连接”方式能正确地建立连接,《DuplexPipe二三事(三)》中介绍的 FPipe 只是在其中添加了一节“监听-连接-监听-连接”,其中粗体部分就是 FPipe 的工作。
  那有没有办法让“监听-监听”、“连接-连接”这两种方式也能通信呢?或者说,有没有办法在不修改程序的前提下转换它的连接方式?这就是 DuplexPipe 提供的功能!

DuplexPipe简介

  DuplexPipe FPipe 类似,也是命令行下的转发工具,但它允许你自己选择连接方式,因此比 FPipe 更加灵活!DuplexPipe 目前还只有 Java 实现方式,开放源代码,目前还不支持 UDP 模式。欢迎有兴趣的同学一起参与开发和维护!项目主页:http://code.google.com/p/duplexpipe。下面来介绍一下它的选项和用法:
用法: java -jar DuplexPipe [-vh] model model
选项:
        -v              输出一些提示信息
        -h              显示本帮助文档
模式:
        -l port         监听本地端口
        -c host port    连接远程端口
示例:
        java pipe.DuplexPipe -c 192.168.1.100 3389 -l 1234
        将本地 1234 号端口上的信息转发给 192.168.1.100 的 3389 端口,这样的用法类似 FPipe。
  由上述可知,执行“java -jar DuplexPipe -c host1 port1 -c host2 port2”就能让“监听-监听”方式的两个程序通信;执行“java -jar DuplexPipe -l port1 -l port2”可以让“连接-连接”方式的两个程序交流。

总结

  从功能上来说,DuplexPipe FPipe 有部分重合,不过这并不是 DuplexPipe 的亮点。思索一下你会发现它能做很多事情!你不想知道我是如何用它将“Windows 远程桌面”改造成反弹式连接的吗?你不想看看怎么让这些小工具配合来创造一个后门?请看《DuplexPipe二三事(五)》。

评论

此博客中的热门博文

AutoHotKey 新手入门教程

AutoHotKey 真是一个好玩的工具!短短几行代码就是先了“窗口置顶”、“窗口透明”等功能,之前我还特意为此装了好几个小工具,现在都可以卸掉了。闲来无事,就把 Quick Start 翻译了一下,我没有逐字逐句地翻译,有时候我嫌原文罗嗦就用自己的话概括地描述了一下。 原文地址:http://www.autohotkey.com/docs/Tutorial.htm 教程目录 创建脚本 启动程序 模拟鼠标键盘 操纵窗口 输入 变量与剪切板 循环 操纵文件 其他特性 创建脚本 每个脚本都是一个纯文本文件,由一些能被 AutoHotKey.exe 执行的命令组成。一个脚本可能还包含 热键 和 热字符串 。如果没有热键和热字符串,脚本在启动的时候就会从头依次执行到尾。 创建一个新的脚本: 下载 并安装 AutoHotkey。 右击鼠标,选择 新建 -> 文本文档 。 输入文件名并确保以 .ahk 结尾。例如:Test.ahk。 右击文件,选择 编辑脚本 。 输入以下内容:#space::Run www.google.com 上一行的第一个字符 "#" 代表键盘上的 Windows 键;所以 #space 表示在按住 Windows 键后再按空格键。"::" 后面的命令会在热键激活后执行,在本例中则会打开谷歌主页。继续按下面步骤操作,来执行这个脚本: 保存并关闭该文件。 双击该文件来启动它。在系统托盘里会出现一个新图标。 按下 Windows 和空格键,网页会在默认的浏览器里打开。 右击系统托盘里的绿色图标可以退出或编辑当前脚本。 注意: 可以同时启动多个脚本,并且在系统托盘里都会有一个相应的图标。 每个脚本都能定义多个 热键 和 热字符串 。 想让某个脚本开机即启动,可以将它的 快捷方式放到开始菜单的启动目录里 。 启动程序 命令 Run 可以运行程序、打开文档、网页链接或快捷键。请参看以下示例: Run Notepad Run C:\My Documents\Address List.doc Run C:\My Documents\My Shortcut.lnk Run www.yahoo.com Run mailto:someone@somedoma

DAO层测试

<dependency> <groupId>com.wix</groupId> <artifactId>wix-embedded-mysql</artifactId> <version>2.1.4</version> <scope>test</scope> </dependency> 利用 wix-embedded-mysql 把MySQL嵌入到进程中,作为内存型的MySQL来做单元测试。 脚本: resources/migrations/mysql/<database>/<timestamp>_<action>.sql 但多个项目需要共享数据库脚本,可能可以用 git submodule 共享。

Shell中同时读多个文件

Shell中同时读多个文件 redraiment, 2009-08-23 一个文件分割成多个文件   有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件 data,有三列信息:姓名、学号、班级。 redraiment 0612800134 0601 christine 0612800136 0601 zb 0612800229 0602   现在需要这个文件的第一列和第二列信息分别存到文件 f1 和 f2 中,可以用 awk 提取,也可以用下面这个简单 shell 程序: #!/bin/sh while read f1 f2 f3 do      echo $f1 >> f1      echo $f2 >> f2 done 多个文件合并成一个文件   如果想把多个文件重新合并成一个多列文件,而不是追加到文件尾处。例如把上列中生成的 f1 和 f2 重新组成 join.txt 。这时需要同时操作多个文件,就像 C 语言中用 fopen 同时打开多个文件,在 shell 里也是类似的。只是在 shell 里叫做“文件描述符”,用“0-9”十个数字表示。其中 0、1、2 分别是系统的标准输入、输出、错误。“3-9”则由用户只有使用。我们就可以任选两个来重定向输入。脚本如下: #!/bin/sh exec 3< f1 exec 4< f2 while read f1 < & 3 && read f2 < & 4 do      echo $f1 $f2 >> join.txt done