Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

AMF Colheita-Feliz


vittoroliveira
 Compartilhar

Posts Recomendados

packageorg.revx.happyfarm;

 

import flex.messaging.io.SerializationContext;

import flex.messaging.io.amf.ASObject;

import flex.messaging.io.amf.ActionContext;

import flex.messaging.io.amf.ActionMessage;

import flex.messaging.io.amf.AmfMessageDeserializer;

import flex.messaging.io.amf.AmfMessageSerializer;

import flex.messaging.io.amf.MessageBody;

import flex.messaging.io.amf.MessageHeader;

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintStream;

import java.nio.ByteBuffer;

import java.util.Iterator;

import java.util.Map.Entry;

import java.util.Set;

import java.util.zip.GZIPInputStream;

import org.revx.bypass.HTTPHeader;

import org.revx.bypass.HTTPHeaders;

 

public class AMFProcessor

{

private SerializationContext serializationContext;

private ActionContext actionContext;

 

public AMFProcessor()

throws Exception

{

this.serializationContext = new SerializationContext();

this.actionContext = new ActionContext();

}

 

public static boolean isGZIP(HTTPHeaders headers) {

HTTPHeader encoding = headers.get("Content-Encoding");

return (encoding != null) && (encoding.getValue().trim().equals("gzip"));

}

 

public ActionMessage parse(ByteBuffer buffer, HTTPHeaders headers) {

return parse(new ByteArrayInputStream(buffer.array(), buffer.arrayOffset(), buffer.limit() + buffer.arrayOffset()), headers);

}

 

public ActionMessage parse(InputStream in, HTTPHeaders headers)

{

return parse(in, isGZIP(headers));

}

 

public ActionMessage parse(InputStream in, boolean gzip) {

try {

AmfMessageDeserializer amf = new AmfMessageDeserializer();

 

if (gzip) {

in = new GZIPInputStream(in);

}

amf.initialize(this.serializationContext, in, null);

 

ActionMessage msg = new ActionMessage();

 

amf.readMessage(msg, this.actionContext);

 

return msg;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

 

public byte[] encode(ActionMessage m) {

try {

AmfMessageSerializer amf = new AmfMessageSerializer();

 

StringBuilder b = new StringBuilder();

OutputStream out = new OutputStream(b)

{

public void write(int r) throws IOException

{

this.val$b.append((char)r);

}

};

amf.initialize(this.serializationContext, out, null);

 

amf.writeMessage(m);

 

byte[] ret = new byte[b.length()];

for (int i = 0; i < ret.length; ++i) {

ret = (byte)b.charAt(i);

}

return ret;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

 

public static void dump(ActionMessage msg) {

System.out.println("HEADERS:");

for (int i = 0; i < msg.getHeaderCount(); ++i) {

MessageHeader msgHeader = msg.getHeader(i);

dumpObject(msgHeader, "\t", false);

}

System.out.println("BODY:");

for (int i = 0; i < msg.getBodyCount(); ++i) {

MessageBody body = msg.getBody(i);

dumpObject(body, "\t", false);

}

}

 

public static void dump(Object obj) {

dumpObject(obj, "", false);

}

 

public static void dumpObject(Object obj, String tab, boolean inline) {

if (obj instanceof MessageHeader) {

MessageHeader msgHeader = (MessageHeader)obj;

printWTab("Name: " + msgHeader.getName(), tab, inline, true);

printWTab("\tMustUnderstand: " + msgHeader.getMustUnderstand(), tab, false, true);

dumpObject(msgHeader.getData(), tab + "\t\t", false);

} else if (obj instanceof MessageBody) {

MessageBody body = (MessageBody)obj;

printWTab("TargetURI: " + body.getTargetURI(), tab, inline, true);

printWTab("\tResponseURI: " + body.getResponseURI(), tab, false, true);

printWTab("\tReplyMethod: " + body.getReplyMethod(), tab, false, true);

dumpObject(body.getData(), tab + "\t\t", false);

} else if (obj instanceof Object[]) {

Object[] objs = (Object[])(Object[])obj;

printWTab("Object[" + objs.length + "]:", tab, inline, true);

inline = false;

tab = tab + "\t";

for (int i = 0; i < objs.length; ++i)

dumpObject(objs, tab, false);

} else if (obj instanceof ASObject) {

ASObject as = (ASObject)obj;

printWTab("ASObject: Type=" + as.getType(), tab, inline, true);

inline = false;

Set entrySet = as.entrySet();

Iterator it = entrySet.iterator();

while (it.hasNext()) {

Map.Entry entry = (Map.Entry)it.next();

printWTab(entry.getKey() + ": ", tab + "\t", inline, false);

dumpObject(entry.getValue(), tab + "\t\t", true);

}

} else if (obj instanceof String) {

printWTab(obj.toString(), tab, inline, true);

} else if (obj == null) {

printWTab("NULL", tab, inline, true);

} else {

printWTab("[" + obj.getClass().getCanonicalName() + "]:", tab, inline, false);

printWTab("\t" + obj, tab, inline, true);

}

}

 

private static void printWTab(String msg, String tab, boolean inline, boolean ln) {

if (!inline)

System.out.print(tab);

System.out.print(msg);

if (ln)

System.out.println();

}

}

Link para o comentário
Compartilhar em outros sites

se adaptar ? então tu deve ta usando outro ?

mas onde tu acho isso, tu nao explico bem no topico. :)

 

Se eu explicar melhor eu teria que colocar figurinhas pra voce entender -.-

 

  • Referencia da Source: Primeira Source do CF BOT

 

Sobre como eu achei ai é outra história.

 

E não é a source do CFBOT é só a parte do AMF

Link para o comentário
Compartilhar em outros sites

  • 3 semanas atrás...
  • 2 semanas atrás...
  • 3 semanas atrás...

É necessário se cadastrar para acessar o conteúdo.

 

Oliveira, esse e o Colheita+Facil, e so mudar o UID dentro do arquivo FarmKey.cfg, ele e o novo CfBots.

 

Se voce conseguir decodificar para alterar por favor me ensine.

 

 

Obr,

Lucas

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.