Код (Text): .386 .model flat,stdcall option casemap:none include \masm32\include\w2k\ntdll.inc include \masm32\include\w2k\ntstatus.inc include \masm32\include\w2k\ntddk.inc include \masm32\Macros\Strings.mac includelib \masm32\lib\ntdll.lib .const CCOUNTED_UNICODE_STRING ""\\Registry\\Machine\\Software\\Мy Key ", g_usMachineKeyName, 4 .data? .data WndProc pro local oa:OBJECT_ATTRIBUTES local dwDisposition:DWORD local hKey:HANDLE lea ecx, oa InitializeObjectAttributes ecx,addr g_usMachineKeyName , OBJ_CASE_INSENSITIVE, NULL, NULL invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition invoke ZwClose, hKey WndProc endp Код (Text): .386 .model flat,stdcall option casemap:none include \masm32\include\w2k\ntdll.inc include \masm32\include\w2k\ntstatus.inc include \masm32\include\w2k\ntddk.inc include \masm32\Macros\Strings.mac includelib \masm32\lib\ntdll.lib .const .data? .data szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0 WndProc pro local oa:OBJECT_ATTRIBUTES local dwDisposition:DWORD local hKey:HANDLE local as:ANSI_STRING local us:UNICODE_STRING invoke RtlInitAnsiString ,addr as ,addr szKeyName invoke RtlAnsiStringToUnicodeString,addr us,addr as,TRUE lea ecx, oa InitializeObjectAttributes ecx, addr us, OBJ_CASE_INSENSITIVE,0, NULL invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition invoke ZwClose, hKey WndProc endp Это 2 кода создания одного и того же ключа HKLM\Software\Мy Key Но в первом примере ключ создаётся,а во втором нет В чем здесь разница не пойму ,и почему не создается ключ во втором примере??? Подскажите пожалуйста ЗАРАНЕЕ БЛАГОДАРЕН
разница в том, что в первом случае юникод строка формируется макросом, а во втором - не макросом. почему в первом случае, работает, а во втором - нет хз. у вас проверок на ошибки с отладочным выводом нет. в йадре даж выравнивание иногда играет не последнюю роль
Мож не правильно описан ключ в szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0 почему он получается с "\\\ Подскажите если кто знает, ну очень нужно ,и именно этим способом СПАСИБО
yuri Замени Код (Text): ... ;;szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0 szKeyName db "\Registry\Machine\Software\Мy Key ",0 ...