|
@@ -10,7 +10,9 @@ import android.preference.PreferenceManager;
|
|
|
import de.tudarmstadt.informatik.hostage.Hostage;
|
|
|
import de.tudarmstadt.informatik.hostage.R;
|
|
|
import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
|
|
|
+import de.tudarmstadt.informatik.hostage.protocol.smbutils.NBDSType;
|
|
|
import de.tudarmstadt.informatik.hostage.protocol.smbutils.NBNS;
|
|
|
+import de.tudarmstadt.informatik.hostage.protocol.smbutils.NBNSType;
|
|
|
import de.tudarmstadt.informatik.hostage.protocol.smbutils.NMB;
|
|
|
import de.tudarmstadt.informatik.hostage.protocol.smbutils.SMBPacket;
|
|
|
import de.tudarmstadt.informatik.hostage.wrapper.Packet;
|
|
@@ -129,11 +131,28 @@ public class SMB implements Protocol {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ //just for debugging purpose
|
|
|
+ final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
|
|
|
+ public static String bytesToHex(byte[] bytes) {
|
|
|
+ char[] hexChars = new char[bytes.length * 2];
|
|
|
+ for ( int j = 0; j < bytes.length; j++ ) {
|
|
|
+ int v = bytes[j] & 0xFF;
|
|
|
+ hexChars[j * 2] = hexArray[v >>> 4];
|
|
|
+ hexChars[j * 2 + 1] = hexArray[v & 0x0F];
|
|
|
+ }
|
|
|
+ return new String(hexChars);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<Packet> processMessage(Packet requestPacket) {
|
|
|
- if (requestPacket != null)
|
|
|
- lastMessage = requestPacket.getBytes();
|
|
|
- smbPacket.prepareNextResponse(lastMessage);
|
|
|
+ if (requestPacket != null && requestPacket.getBytes().length != 0){
|
|
|
+ lastMessage = requestPacket.getBytes();
|
|
|
+ System.out.println("request packet " + bytesToHex(lastMessage));
|
|
|
+ smbPacket.prepareNextResponse(lastMessage);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ smbPacket.prepareNextResponse(NBDSType.LOCAL_MASTER_ANNOUNCEMENT_ALL);
|
|
|
+ }
|
|
|
byte smbCommand = smbPacket.getSmbCommand();
|
|
|
byte[] response;
|
|
|
List<Packet> responsePackets = new ArrayList<Packet>();
|