mirror of
https://github.com/rapid7/metasploit-payloads
synced 2025-03-24 18:16:24 +01:00
fix java/android meterpreter ls of 4gb files
This commit is contained in:
parent
2386ce2ca9
commit
cad9382bea
java/meterpreter
meterpreter/src/main/java/com/metasploit/meterpreter
stdapi/src/main/java/com/metasploit/meterpreter/stdapi
@ -81,7 +81,7 @@ public interface TLVType {
|
|||||||
public static final int TLV_TYPE_FILE_PATH = TLVPacket.TLV_META_TYPE_STRING | 1202;
|
public static final int TLV_TYPE_FILE_PATH = TLVPacket.TLV_META_TYPE_STRING | 1202;
|
||||||
public static final int TLV_TYPE_FILE_MODE = TLVPacket.TLV_META_TYPE_STRING | 1203;
|
public static final int TLV_TYPE_FILE_MODE = TLVPacket.TLV_META_TYPE_STRING | 1203;
|
||||||
public static final int TLV_TYPE_FILE_HASH = TLVPacket.TLV_META_TYPE_RAW | 1206;
|
public static final int TLV_TYPE_FILE_HASH = TLVPacket.TLV_META_TYPE_RAW | 1206;
|
||||||
public static final int TLV_TYPE_STAT_BUF = TLVPacket.TLV_META_TYPE_COMPLEX | 1220;
|
public static final int TLV_TYPE_STAT_BUF = TLVPacket.TLV_META_TYPE_COMPLEX | 1221;
|
||||||
|
|
||||||
// Net
|
// Net
|
||||||
public static final int TLV_TYPE_HOST_NAME = TLVPacket.TLV_META_TYPE_STRING | 1400;
|
public static final int TLV_TYPE_HOST_NAME = TLVPacket.TLV_META_TYPE_STRING | 1400;
|
||||||
|
@ -4,6 +4,8 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.ByteOrder;
|
||||||
|
|
||||||
import com.metasploit.meterpreter.Meterpreter;
|
import com.metasploit.meterpreter.Meterpreter;
|
||||||
import com.metasploit.meterpreter.TLVPacket;
|
import com.metasploit.meterpreter.TLVPacket;
|
||||||
@ -56,7 +58,7 @@ public class stdapi_fs_stat implements Command {
|
|||||||
dos.writeShort(short_le(65535)); // gid
|
dos.writeShort(short_le(65535)); // gid
|
||||||
dos.writeShort(short_le(0)); // padding
|
dos.writeShort(short_le(0)); // padding
|
||||||
dos.writeInt(le(0)); // rdev
|
dos.writeInt(le(0)); // rdev
|
||||||
dos.writeInt(le((int) length)); // size
|
dos.writeLong(long_le(length)); // size
|
||||||
int mtime = (int) (lastModified / 1000);
|
int mtime = (int) (lastModified / 1000);
|
||||||
dos.writeInt(le(mtime)); // atime
|
dos.writeInt(le(mtime)); // atime
|
||||||
dos.writeInt(le(mtime)); // mtime
|
dos.writeInt(le(mtime)); // mtime
|
||||||
@ -86,4 +88,15 @@ public class stdapi_fs_stat implements Command {
|
|||||||
private static int short_le(int value) {
|
private static int short_le(int value) {
|
||||||
return ((value & 0xff) << 8) | ((value & 0xff00) >> 8);
|
return ((value & 0xff) << 8) | ((value & 0xff00) >> 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a long to little endian.
|
||||||
|
*/
|
||||||
|
private static long long_le(long value) {
|
||||||
|
ByteBuffer buf = ByteBuffer.allocate(8);
|
||||||
|
buf.order(ByteOrder.BIG_ENDIAN);
|
||||||
|
buf.putLong(value);
|
||||||
|
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||||
|
return buf.getLong(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user