From f5286ff2e8521331e58aaa8123989e14420595a3 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" <SND\kernelnet_cp@9b283d60-5439-405e-af05-b73fd8c4d996> Date: Thu, 12 Aug 2010 12:35:35 +0000 Subject: [PATCH] [!] bug fixed: issue #6862 ( loadUnicodeString for x64 target does not work ) git-svn-id: https://pykd.svn.codeplex.com/svn@53990 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/dbgmem.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp index 35a0525..5cf5856 100644 --- a/pykd/dbgmem.cpp +++ b/pykd/dbgmem.cpp @@ -177,11 +177,13 @@ loadUnicodeStr( ULONG64 address ) if ( !loadMemory( address, &maximumLength, sizeof( maximumLength ) ) ) break; - - address += sizeof( maximumLength ); + + address += sizeof( maximumLength ); if ( is64bitSystem() ) { + address += address % 8 ? ( 8 - address % 8 ) : 0 ; // ������������ �� 8 ���� + if ( !loadMemory( address, &buffer, 8 ) ) break; @@ -189,6 +191,8 @@ loadUnicodeStr( ULONG64 address ) } else { + address += address % 4 ? ( 4 - address % 4 ) : 0 ; // ������������ �� 8 ���� + if ( !loadMemory( address, &buffer, 4 ) ) break; @@ -253,6 +257,8 @@ loadAnsiStr( ULONG64 address ) if ( is64bitSystem() ) { + address += address % 8 ? ( 8 - address % 8 ) : 0; // ������������ �� 8 ���� + if ( !loadMemory( address, &buffer, 8 ) ) break; @@ -260,6 +266,8 @@ loadAnsiStr( ULONG64 address ) } else { + address += address % 4 ? ( 4 - address % 4 ) : 0; // ������������ �� 8 ���� + if ( !loadMemory( address, &buffer, 4 ) ) break;