- Сообщения
- 7,790
- Репутация
- 2,322
Если у кого-нибудь есть возможность проверить следующий код в Windows 7x64 и в Windows 8.1x64, то проверьте, пожалуйста, что вернет функция.
Код:
Opt('MustDeclareVars', 1)
ConsoleWrite(_MyTestFunc() & @LF)
Func _MyTestFunc()
Local $v_Str = '0x6D61646D61736C6573D9EBDC5E3BF8C3916F6C342FCBDA5C3CF1901E284D950253339124A4C03F8C225C459E265F27FA4D89C05531C057565383EC088B4C241C8B7C2420C70100000000C74104000000008844' & _
'010883C0013D0001000075F28D910001000031DB8954240489C831D2891C2489CEEB32C704240100000031ED0FB648080FB61C2F8D2C198D5415000FB6D20FB66C160889EB88580883C001884C16083B442404' & _
'74128B0C24394C24247EC58B2C2483042401EBC583C4085B5E5F5DC2100089DB5557565383EC088B5424248B44241C8B6C242085D28B188B48047E5B31D2895C2404892C248B5C240483C30181E3FF00000089' & _
'5C24040FB67418088B6C24048D0C0E0FB6C90FB67C080889FB885C280889F38D343781E6FF000000885C08080FB67430088B3C2489F3301C1783C2013B54242475B089EB891889480483C4085B5E5F5DC21000', _
$a_Res, $p_Buffer, $t_Buffer, $t_Res, $a_Control[11][2] = [[10],[3148972506],[3651784029],[1573982460],[3894650271],[2509431867],[1824359067],[2543896107],[2083769154],[3978250416],[2895760431]]
Do
$a_Res = DllCall('kernel32.dll', 'ptr', 'VirtualAlloc', 'ptr', 0, 'ulong_ptr', 604, 'dword', 0x00001000, 'dword', 0x00000040);$MEM_COMMIT = 0x00001000, $PAGE_EXECUTE_READWRITE = 0x00000040
If (@error) Or (Not $a_Res[0]) Then ExitLoop
$p_Buffer = $a_Res[0]
$t_Buffer = DllStructCreate('byte[604]', $p_Buffer)
If @error Then ExitLoop
DllStructSetData($t_Buffer, 1, Binary($v_Str))
If @error Then ExitLoop
$v_Str = 0
$a_Res = DllCall('user32.dll', 'lresult', 'CallWindowProc', 'ptr', $p_Buffer + 49, 'hwnd', $p_Buffer + 332, 'uint', $p_Buffer, 'wparam', 9, 'lparam', 0)
If (@error) Or (Not $a_Res[0]) Then ExitLoop
$a_Res = DllCall('user32.dll', 'lresult', 'CallWindowProc', 'ptr', $p_Buffer + 196, 'hwnd', $p_Buffer + 332, 'uint', $p_Buffer + 9, 'wparam', 40, 'lparam', 0)
If (@error) Or (Not $a_Res[0]) Then ExitLoop
$t_Res = DllStructCreate('dword[10]', $p_Buffer + 9)
For $i = 1 To $a_Control[0][0]
$a_Control[$i][1] = DllStructGetData($t_Res, 1, $i)
Next
Until 1
If $p_Buffer Then DllCall('kernel32.dll', 'int', 'VirtualFree', 'ptr', $p_Buffer, 'ulong_ptr', 0, 'dword', 0x00008000);$MEM_RELEASE = 0x00008000
For $i = 1 To $a_Control[0][0]
If $a_Control[$i][0] <> $a_Control[$i][1] Then Return False
Next
Return True
EndFunc ;==>_MyTestFunc