VB6 เกี่ยวกับ WriteProcessMemory, ชี้แนะด้วยครับ
คือผมมีปัญหาเกี่ยวกับการ WriteProcessMemory
Code ของ WriteProcessMemory นั้นผมสามารถเขียนได้ครับ และลองกับบางโปรแกรมก็สามารถแก้ค่า HEX ได้ แต่มีปัญหาที่ว่าบางโปรแกรมนั้นมันไม่สามารถแก้ค่าได้อะครับ แบบว่า AllocationProtect นั้นมันให้ Read Only เท่านั้น ทั้งๆ ที่ใช้โปรแกรมแก้ Memory นั้นสามารถแก้ได้ แต่คำสั่งของ VB ผมไม่รู้ว่าคำสั่งไหนที่ทำให้มันแก้ HEX ได้ ไม่ทราบว่าใครรู้จักสคริปตัวที่ทำให้แก้ Memory ที่ Protect ไว้อยู่บ้างครับ นี่คือสคริปที่ผมเขียนครับ
==================================== Private Declare Function FindWindow Lib \"user32.dll\" Alias \"FindWindowA\" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib \"user32.dll\" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function OpenProcess Lib \"kernel32.dll\" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib \"kernel32.dll\" (ByVal hObject As Long) As Long Private Declare Sub OutputDebugString Lib \"kernel32.dll\" Alias \"OutputDebugStringA\" (ByVal lpOutputString As String)
Private Declare Function WriteProcessMemory Lib \"kernel32\" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
Private Sub form_load() GetSeDebugPrivelege End Sub
Private Sub cmdon_Click() Dim phwnd As Long Dim pid As Long Dim phandle As Long Dim byteswritten(0)
phwnd = FindWindow(vbNullString, \"XXX\")
GetWindowThreadProcessId phwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
WriteProcessMemory phandle, &HFFFFFFFF, &HFF, 1, byteswritten(0)
CloseHandle phandle End Sub
|