工作繁忙,不忘开源事业

34 views
Skip to first unread message

solo wing

unread,
Nov 25, 2013, 6:57:00 AM11/25/13
to swjtu_op...@googlegroups.com
有好的想法了,招募小伙伴中。背景:传统远程控制软件(俗称木马)都是以被动方式来连接,即宿主机装好服务端,然后以一定频率连接到向主控端发起连接。如果主控端并没有公网ip环境,那么就只好用花生壳这样的地址解析软件,或者在网关有权限,通过设置端口映射来实现,总之都非常麻烦。我有个想法,搭建一个web服务器,服务端只用向中间服务器发起连接,然后控制人登录到web服务器即可远程管理自己的客户机。这样便省去地址解析或者端口映射的麻烦,同时也不必开发客户端软件。无聊没事干感兴趣的人可以来讨论一下。

solo wing

unread,
Nov 28, 2013, 1:30:33 AM11/28/13
to swjtu_op...@googlegroups.com
小伙伴在哪里?看见没人响应,实在伤心,看来得要我先拿出一点实际东西出来才行了。如果说要做出来,那么用到的最主要的技术就是RMI了,同时同时要保证有转发技术,如果可以的话,可以先做一个C/S模式的,控制方用JApplet实现,服务器只用于转发请求,服务端自动连接至服务器,在保持连接的情况下,用户以Applet连接至服务器,再远程控制上线的服务端。单就RMI或者请求转发服务器来说,技术实现都不是很难,但是二者结合起来就很有挑战了,同时也是比较新颖的地方。

在 2013年11月25日星期一UTC+8下午7时57分00秒,solo wing写道:

solo wing

unread,
Nov 29, 2013, 12:55:53 AM11/29/13
to swjtu_op...@googlegroups.com

事情一步一步的做,我先给个想法雏形,用RMI实现,可以执行远端PC的cmd命令,但是由于是java做的,所以很多命令执行起来很费力,经测试可以执行taskkill、ping、netstat等命令,还可以直接启动windows自带的一些程序,比如记事本notepad、winmine之类的。但是不能执行cd命令,原因是当前jvm只能获取当前class所在目录,而不能切换目录,dir和echo还是可以执行的,但是由于没有单独的脚本程序,所以执行的时候要在前面加上cmd /c。比如要在本程序所在目录新建一个txt,就可以写:cmd /c echo hello,world.>1.txt。顺便说一下,这里我只给了源代码,大家可以直接在eclipse中修改,至于打包成jar之后用dir和echo会发生什么我也不能保证,因为打包成jar之后,jvm如何解析本程序路径我也不清楚,也没详细测试。linux环境下也没有测试,有兴趣的同学可以测试一下,毕竟linux命令丰富得多。我希望可以有朋友可以一起来做,一起学习探讨,先让这个能够远程执行命令的程序更好的运行起来。(ps:关于cd命令,我觉得可以换个思路,不用操作系统本身提供的,而用jvm自身的文件系统来表示,这样就可以完整的构建一个远程命令行环境了,再加上上传下载,是不是就是一个优秀的远程管理工具了呢?以后再深入再加上图形界面是不是更加强大了呢?)

在 2013年11月25日星期一UTC+8下午7时57分00秒,solo wing写道:
Message has been deleted

solo wing

unread,
Nov 29, 2013, 1:10:45 AM11/29/13
to swjtu_op...@googlegroups.com
Client.java
RemoteInstance.java
Root.java
Server.java
Reply all
Reply to author
Forward
0 new messages