java简单攻击代码 java dos攻击( 三 )


+ this.getClass().getSimpleName() + ":" + this.val + ","
+ p.getClass().getSimpleName() + ":" + p.val);
hitFlag = false;//
defenseFlag = false; //重置标记,下次重用
}
public int defense(Person p) {
if (rand.nextInt(10)chanceDefense) {
defenseFlag = true;//标记防御技能已经发动
return 0;
} else {
return p.fight;
}
}
}
用JAVA编写两个对象战斗他们分别有名字,生命值,防御力,攻击力 然后对象A攻击对象B一下后显示出来package test;
class A{
private int life;
private int aggress;
private int recovery;
public A(int life, int aggress, int recovery) {
super();
this.life = life;
this.aggress = aggress;
this.recovery = recovery;
}
public int getLife() {
return life;
}
public void setLife(int life) {
this.life = life;
}
public int getAggress() {
return aggress;
}
public void setAggress(int aggress) {
this.aggress = aggress;
}
public int getRecovery() {
return recovery;
}
public void setRecovery(int recovery) {
this.recovery = recovery;
}
}
class B{
private int life;//生命
private int aggress;//攻击
private int recovery;//防御
public B(int life, int aggress, int recovery) {
super();
this.life = life;
this.aggress = aggress;
this.recovery = recovery;
}
public int getLife() {
return life;
}
public void setLife(int life) {
this.life = life;
}
public int getAggress() {
return aggress;
}
public void setAggress(int aggress) {
this.aggress = aggress;
}
public int getRecovery() {
return recovery;
}
public void setRecovery(int recovery) {
this.recovery = recovery;
}
}
public class Demo {
public static void main(String[] args) {
A a=new A(100,20,10);
B b=new B(100,30,5);
//都有生命开始攻击
while(a.getLife()0b.getLife()0){
System.out.println("a攻击");
//如果a的攻击小于b的防御生命不变 , 否则修改
if(a.getAggress()=b.getRecovery()){
b.setLife(b.getLife());
}else{
b.setLife(b.getLife()-(a.getAggress()-b.getRecovery()));
}
if(b.getLife()=0){
//b死亡终止,输出a的生命
System.out.println("b死亡");
System.out.println("a的生命"+a.getLife());
break;
}
//ab剩下的生命
System.out.println("a的生命"+a.getLife());
System.out.println("b的生命"+b.getLife());
System.out.println("-------------");
System.out.println("b攻击");
//b破不了防
if(b.getAggress()=a.getRecovery()){
a.setLife(a.getLife());
}else{
a.setLife(a.getLife()-(b.getAggress()-a.getRecovery()));
}
if(a.getLife()=0){
System.out.println("a死亡");
System.out.println("b的生命"+b.getLife());
break;
}
System.out.println("a的生命"+a.getLife());
System.out.println("b的生命"+b.getLife());
}
}
}
写的有点冲忙,应该对你还是有帮助的 , 有问题就问
如何攻击Java反序列化过程反序列化顾名思义就是用二进制的形式来生成文件,由于common-collections.jar几乎在所有项目里都会被用到,所以当这个漏洞被发现并在这个jar包内实现攻击时 , 几乎影响了一大批的项目,weblogic的中枪立刻提升了这个漏洞的等级(对weblogic不熟悉的可以百度) 。
至于如何使用这个漏洞对系统发起攻击 , 举一个简单的例子 , 我通过本地java程序将一个带有后门漏洞的jsp(一般来说这个jsp里的代码会是文件上传和网页版的SHELL)序列化,将序列化后的二进制流发送给有这个漏洞的服务器 , 服务器会自动根据流反序列化的结果生成文件,然后就可以大摇大摆的直接访问这个生成的JSP文件把服务器当后花园了 。

推荐阅读