我正在编写一个枚举进程基地址的函数。这是通过一些Windows API调用完成的,但是,我相信是我对const input = '{!! json_encode ($airlines) !!}';
//Parse the data with JSON.parse(), and the data becomes a JavaScript object.
var obj = JSON.parse(input);
console.log(obj);
的调用导致了错误。
还应注意,并非每个进程都会出现此错误。
我已经尝试过将一些uint32更改为uint64,反之亦然,以及创建<?php
$yourEmail = "*********";
$yourEmailPassword = "*******";
$mailbox = imap_open("{imap.gmail.com:993/ssl}INBOX", $yourEmail, $yourEmailPassword);
$mail = imap_search($mailbox, "ALL");
$mail_headers = imap_headerinfo($mailbox, $mail[0]);
$subject = $mail_headers->subject;
$from = $mail_headers->fromaddress;
imap_setflag_full($mailbox, $mail[0], "\\Seen \\Flagged");
imap_close($mailbox);
?>
数组的不同方法,但是我什么也做不了。
这只是我正在创建的应用程序中的一个功能,用于检索和扫描另一个进程的内存。
这是我的函数的源代码:
print("Let's find the prime between the interval given...")
start = int(input("\n Enter the Start Point : "))
end = int(input("\n Enter the end Point : "))
for i in range(start, end + 1):
if i > 1:
for j in range(2, i):
if i % j == 0:
break
# j = j + 1
else:
print(i)
# start = start + 1
print("Done with checking...")
答案 0 :(得分:1)
EnumProcessModules
的第二个参数不能为空指针(0),即使您只是试图确定所需的条目数。
答案 1 :(得分:0)
我发现了问题。我与EnumProcessModules
的互动不正确。这是一个工作功能:
func getBaseAddress(handle uintptr) int64 {
// GetProcessImageFileNameA
var imageFileName [200]byte
var fileSize uint32 = 200
var fileName string
ret, _, _ := procGetProcessImageFileNameA.Call(handle, uintptr(unsafe.Pointer(&imageFileName)), uintptr(fileSize))
for _, char := range imageFileName {
if char == 0 {
break
}
fileName += string(char)
}
fileName = fileName[24:]
// EnumProcessModules
moduleHandles := make([]uintptr, 1024)
var needed int32
const handleSize = unsafe.Sizeof(moduleHandles[0])
ret, _, _ = procEnumProcessModules.Call(uintptr(handle), uintptr(unsafe.Pointer(&moduleHandles[0])), handleSize*uintptr(len(moduleHandles)), uintptr(unsafe.Pointer(&needed)))
// GetModuleFileNameExA
var finalModuleHandle uintptr
for _, moduleHandle := range moduleHandles {
if moduleHandle > 0 {
var moduleFileName [200]byte
var moduleSize uint32 = 200
var moduleName string
ret, _, _ = procGetModuleFileNameExA.Call(handle, uintptr(moduleHandle), uintptr(unsafe.Pointer(&moduleFileName)), uintptr(moduleSize))
if ret != 0 {
for _, char := range moduleFileName {
if char == 0 {
break
}
moduleName += string(char)
}
moduleName = moduleName[3:]
if moduleName == fileName {
finalModuleHandle = uintptr(moduleHandle)
break
}
}
}
}
return int64(finalModuleHandle)
}
我希望这可以对某人有所帮助,我花了大量时间在此功能上。