secure v2

This commit is contained in:
vietdungdev
2026-03-21 11:51:59 +07:00
parent 28062d1c04
commit 8173a628b2
3 changed files with 308 additions and 74 deletions

View File

@@ -36,7 +36,7 @@ func NewProcess() (*Process, error) {
return nil, err
}
h, err := windows.OpenProcess(0x0010, false, module.ProcessID)
h, err := ntOpenProcess(module.ProcessID, 0x0010)
if err != nil {
return nil, err
}
@@ -55,7 +55,7 @@ func NewProcessForPID(pid uint32) (*Process, error) {
return nil, errors.New("no module found for the specified PID")
}
h, err := windows.OpenProcess(0x0010, false, module.ProcessID)
h, err := ntOpenProcess(module.ProcessID, 0x0010)
if err != nil {
return nil, err
}
@@ -69,7 +69,7 @@ func NewProcessForPID(pid uint32) (*Process, error) {
}
func (p *Process) Close() error {
return windows.CloseHandle(p.handler)
return ntCloseHandle(p.handler)
}
// ModuleBaseAddress returns the base address of the D2R module.
@@ -138,7 +138,7 @@ func ReadMemoryChunked(handle windows.Handle, baseAddress uintptr, size uint32)
}
// Try to read, but don't fail if it's protected
err := windows.ReadProcessMemory(handle, address, &data[offset], chunkSize, nil)
err := ntReadProcessMemory(handle, address, data[offset:offset+chunkSize])
if err != nil {
failedReads++
// Fill with zeros and continue (pattern matching will fail gracefully)
@@ -155,7 +155,7 @@ func ReadMemoryChunked(handle windows.Handle, baseAddress uintptr, size uint32)
func (p *Process) ReadBytesFromMemory(address uintptr, size uint) []byte {
var data = make([]byte, size)
windows.ReadProcessMemory(p.handler, address, &data[0], uintptr(size), nil)
_ = ntReadProcessMemory(p.handler, address, data)
return data
}
@@ -275,11 +275,11 @@ type ModuleInfo struct {
}
func GetProcessModules(processID uint32) ([]ModuleInfo, error) {
hProcess, err := windows.OpenProcess(windows.PROCESS_QUERY_INFORMATION|windows.PROCESS_VM_READ, false, processID)
hProcess, err := ntOpenProcess(processID, windows.PROCESS_QUERY_INFORMATION|windows.PROCESS_VM_READ)
if err != nil {
return nil, err
}
defer windows.CloseHandle(hProcess)
defer ntCloseHandle(hProcess)
var modules [1024]windows.Handle
var needed uint32
@@ -323,7 +323,7 @@ func (p *Process) ReadPointer(address uintptr, size int) (uintptr, error) {
}
func (p *Process) ReadIntoBuffer(address uintptr, buffer []byte) error {
return windows.ReadProcessMemory(p.handler, address, &buffer[0], uintptr(len(buffer)), nil)
return ntReadProcessMemory(p.handler, address, buffer)
}
// ReadWidgetContainer reads the WidgetContainer structure.