memmod: fix import loading function usage
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
c9fabbd5bf
commit
b6303091fc
5 changed files with 10 additions and 32 deletions
|
|
@ -40,31 +40,11 @@ func errnoErr(e syscall.Errno) error {
|
|||
var (
|
||||
modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
|
||||
|
||||
procGetProcAddress = modkernel32.NewProc("GetProcAddress")
|
||||
procIsBadReadPtr = modkernel32.NewProc("IsBadReadPtr")
|
||||
procLoadLibraryA = modkernel32.NewProc("LoadLibraryA")
|
||||
procIsBadReadPtr = modkernel32.NewProc("IsBadReadPtr")
|
||||
)
|
||||
|
||||
func getProcAddress(module windows.Handle, procName *byte) (addr uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procName)), 0)
|
||||
addr = uintptr(r0)
|
||||
if addr == 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func isBadReadPtr(addr uintptr, ucb uintptr) (ret bool) {
|
||||
r0, _, _ := syscall.Syscall(procIsBadReadPtr.Addr(), 2, uintptr(addr), uintptr(ucb), 0)
|
||||
ret = r0 != 0
|
||||
return
|
||||
}
|
||||
|
||||
func loadLibraryA(libFileName *byte) (module windows.Handle, err error) {
|
||||
r0, _, e1 := syscall.Syscall(procLoadLibraryA.Addr(), 1, uintptr(unsafe.Pointer(libFileName)), 0, 0)
|
||||
module = windows.Handle(r0)
|
||||
if module == 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue