From: thefed Date: 2007-11-29T07:38:07+09:00 Subject: Custom Protocol I understand that I've asked a similar question that of custom packets. But this is different. This is __protocol__. Has anyone constructed a custom protocol, such as UDT, in Ruby? What would one use to construct a custom protocol? Right now, I'm using code from metasploit 3.0 (written in Ruby :-), and the CStruct2 library included. Some sample stuff I have... UDT_CTRL_PKT = Rex::Struct2::CStructTemplate.new( [ 'uint1v', 'PktType', 0 ], [ 'uint8v', 'Type', 0 ], [ 'uint16v', 'ExtType', 0 ], [ 'uint1', 'X', 0 ], [ 'uint30v', 'SubSeqNum', 0 ], [ 'uint32v', 'TimeStamp', 0 ] ) UDT_DATA_PKT = Rex::Struct2::CStructTemplate.new( [ 'uint1v', 'PktType', 0 ], [ 'uint30v', 'SeqNum', 0 ], [ 'uint2v', 'FF', 0 ], [ 'uint1v', 'O', 0 ], [ 'uint28v', 'MsgNum', 0 ], [ 'uint32v', 'TimeStamp', 0 ] ) What I'm intending to do - what you're **supposed** to do - with the CStruct2 lib is to create a binary string out of it and write that to a raw socket. What are some techniques someone would use to accomplish the goal of a new protocol? Thanks, Ari Brown