Using Dec(x,1) will send an empty packet to the server, so I would assume something is wrong there rather than the _Reverse_Bytes.
Did anyone else experience the same problem? Or could anyone tell me what -exactly- changed in Hex() and Dec()?
I have been working on updating my scripts to be compitable with the last autoit update with some success, any support is very much appreciated.
Func _Send_Packet($PACKET_DATA) $PROCESS_HANDLE = DllCall("kernel32.dll", "HANDLE", "OpenProcess", "DWORD", 0x1F0FFF, "BOOL", 1, "DWORD", $PROCESS_IDENTIFIER) $CODE_ADDRESS = DllCall("kernel32.dll", "ULONG_PTR", "VirtualAllocEx", "HANDLE", $PROCESS_HANDLE[0], "ptr", 0, "ULONG_PTR", 0x46, "DWORD", 0x1000, "DWORD", 0x40) $DATA_ADDRESS = DllCall("kernel32.dll", "ULONG_PTR", "VirtualAllocEx", "HANDLE", $PROCESS_HANDLE[0], "ptr", 0, "ULONG_PTR", StringLen($PACKET_DATA) / 2, "DWORD", 0x1000, "DWORD", 0x40) $OPCODE = "60" ; pushad $OPCODE &= "B8" & _Reverse_Bytes($SEND_PACKET_ADDRESS) ; mov eax, Send Packet Address $OPCODE &= "8B0D" & _Reverse_Bytes($REAL_BASE_ADDRESS) ; mov ecx, dword ptr [Real Base Address] $OPCODE &= "8B4920" ; mov ecx, dword ptr [ecx+20] $OPCODE &= "BF" & _Reverse_Bytes($DATA_ADDRESS[0]) ; mov edi, Packet Address $OPCODE &= "6A" & _Reverse_Bytes(StringLen($PACKET_DATA) / 2, 2) ; push Packet Size $OPCODE &= "57" ; push edi $OPCODE &= "FFD0" ; call eax $OPCODE &= "61" ; popad $OPCODE &= "C3" ; ret $OPCODE_BUFFER = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]") For $i = 1 To DllStructGetSize($OPCODE_BUFFER) DllStructSetData($OPCODE_BUFFER, 1, Dec(StringMid($OPCODE, ($i - 1) * 2 + 1, 2)), $i) Next $PACKET_BUFFER = DllStructCreate("byte[" & StringLen($PACKET_DATA) / 2 & "]") For $i = 1 To DllStructGetSize($PACKET_BUFFER) DllStructSetData($PACKET_BUFFER, 1, Dec(StringMid($PACKET_DATA, ($i - 1) * 2 + 1, 2)), $i) Next ; No AutoIt conversion for LPCVOID and SIZE_T * - Int will do. DllCall("kernel32.dll", "BOOL", "WriteProcessMemory", "HANDLE", $PROCESS_HANDLE[0], "ptr", $CODE_ADDRESS[0], "struct*", $OPCODE_BUFFER, "ULONG_PTR", DllStructGetSize($OPCODE_BUFFER), "int", 0) DllCall("kernel32.dll", "BOOL", "WriteProcessMemory", "HANDLE", $PROCESS_HANDLE[0], "ptr", $DATA_ADDRESS[0], "struct*", $PACKET_BUFFER, "ULONG_PTR", DllStructGetSize($PACKET_BUFFER), "int", 0) ; LPSECURITY_ATTRIBUTES is a pointer ; No AutoIt conversion for LPSECURITY_ATTRIBUTES, LPTHREAD_START_ROUTINE, and LPDWORD - Int will do. $REMOTE_THREAD = DllCall("kernel32.dll", "HANDLE", "CreateRemoteThread", "HANDLE", $PROCESS_HANDLE[0], "int", 0, "ULONG_PTR", 0, "int", $CODE_ADDRESS[0], "ptr", 0, "DWORD", 0, "int", 0) Do $RET = DllCall("kernel32.dll", "DWORD", "WaitForSingleObject", "HANDLE", $REMOTE_THREAD[0], "DWORD", 50) Until $RET[0] <> 258 DllCall("kernel32.dll", "BOOL", "VirtualFreeEx", "HANDLE", $PROCESS_HANDLE[0], "ptr", $CODE_ADDRESS[0], "ULONG_PTR", 0, "DWORD", 0x8000) DllCall("kernel32.dll", "BOOL", "VirtualFreeEx", "HANDLE", $PROCESS_HANDLE[0], "ptr", $DATA_ADDRESS[0], "ULONG_PTR", 0, "DWORD", 0x8000) DllCall("kernel32.dll", "BOOL", "CloseHandle", "HANDLE", $REMOTE_THREAD[0]) DllCall("kernel32.dll", "BOOL", "CloseHandle", "HANDLE", $PROCESS_HANDLE[0]) EndFunc ;==>_Send_Packet Func _Reverse_Bytes($Value, $Size = 8) Local $tmp1, $tmp2, $i $tmp1 = StringRight("000000000" & Hex($Value), $Size) For $i = 0 To StringLen($tmp1) / 2 - 1 $tmp2 = $tmp2 & StringMid($tmp1, StringLen($tmp1) - 1 - 2 * $i, 2) Next Return $tmp2 EndFunc ;==>_Reverse_Bytes
Edit:
What happens internally is that it simply does not send any thing, and I am calling _Send_Packet("030000")
[0065057E] Packet: 80 00 E5 E8 40 12 [0064CE9E] Packet: 02 00 B4 3A 10 80 [01D80019] Packet: ################################################################<-------------- [0064D5CB] Packet: 27 00 01 01 00 [0064D7BC] Packet: 31 00 03 00 00 00 07 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 08 00 00 [0064E361] Packet: 79 00 00 00 [0064E55B] Packet: 7F 00 03 11 00 00 00 0D 62 42 00 00 00 00 [0064E55B] Packet: 7F 00 FF 10 00 00 00 0D 62 42 00 00 00 00 [0065057E] Packet: 80 00 17 7C 41 12 [0064E55B] Packet: 7F 00 01 11 00 00 00 0D 62 42 04 4F B4 83 AE 4F B4 83 AF 4F B4 83 B0 4F B4 83 B1 00 00 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 09 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 0C 00 00 [0064CE9E] Packet: 02 00 B4 3A 10 80 [01D80019] Packet: ################################################################<-------------- [0064D5CB] Packet: 27 00 01 01 00 [0064D7BC] Packet: 31 00 03 00 00 00 07 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 08 00 00 [0064E361] Packet: 79 00 00 00 [0064E55B] Packet: 7F 00 03 11 00 00 00 0D 62 42 00 00 00 00 [0064E55B] Packet: 7F 00 FF 10 00 00 00 0D 62 42 00 00 00 00 [0065057E] Packet: 80 00 BB 12 42 12 [0064D7BC] Packet: 31 00 03 00 00 00 09 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 0C 00 00 [0064E55B] Packet: 7F 00 01 11 00 00 00 0D 62 42 04 4F B4 83 AE 4F B4 83 AF 4F B4 83 B0 4F B4 83 B1 00 00 00 00 [0064CE9E] Packet: 02 00 86 3A 10 80 [0064CE9E] Packet: 02 00 B7 3A 10 80 [01D80019] Packet: ################################################################<-------------- [0064D5CB] Packet: 27 00 01 01 00 [0064D7BC] Packet: 31 00 03 00 00 00 07 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 08 00 00 [0064E361] Packet: 79 00 00 00 [0064E55B] Packet: 7F 00 03 11 00 00 00 0D 62 42 00 00 00 00 [0064E55B] Packet: 7F 00 FF 10 00 00 00 0D 62 42 00 00 00 00 [0065057E] Packet: 80 00 5C C2 42 12 [0064D7BC] Packet: 31 00 03 00 00 00 09 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 0C 00 00 [0064E55B] Packet: 7F 00 01 11 00 00 00 0D 62 42 04 4F B4 83 AE 4F B4 83 AF 4F B4 83 B0 4F B4 83 B1 00 00 00 00 [01D80019] Packet: ################################################################<-------------- [0064D5CB] Packet: 27 00 01 01 00 [0064D7BC] Packet: 31 00 03 00 00 00 07 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 08 00 00 [0064E361] Packet: 79 00 00 00 [0064E55B] Packet: 7F 00 03 11 00 00 00 0D 62 42 00 00 00 00 [0064E55B] Packet: 7F 00 FF 10 00 00 00 0D 62 42 00 00 00 00 [0065057E] Packet: 80 00 50 49 43 12 [0064D7BC] Packet: 31 00 03 00 00 00 09 00 00 [0064D7BC] Packet: 31 00 03 00 00 00 0C 00 00 [0064E55B] Packet: 7F 00 01 11 00 00 00 0D 62 42 04 4F B4 83 AE 4F B4 83 AF 4F B4 83 B0 4F B4 83 B1 00 00 00 00 [01D80019] Packet: ################################################################<--------------
Edited by Slang, 18 May 2012 - 03:13 AM.





