HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0903
ぽよメモリ書き換え1未解決


ぽよ

リンク

2014/9/3(Wed) 10:46:38|NO.64654

PCに負荷をかけないためのメモリ書き換えを教えてほしいです。


#uselib "kernel32.dll" #func CloseHandle "CloseHandle" sptr #func OpenProcess "OpenProcess" sptr, sptr, sptr #func WriteProcessMemory "WriteProcessMemory" sptr, sptr, sptr, sptr, sptr #uselib "psapi.dll" #func EnumProcesses "EnumProcesses" sptr, sptr, sptr #func GetModuleBaseNameA "GetModuleBaseNameA" sptr, sptr, sptr, sptr goto *label_0 #deffunc dwritememory int iProcID,int iAddress ,int vWriteBuf ,int iWriteSize var_0 = vWriteBuf WriteProcessMemory iProcID, iAddress, varptr(var_0), iWriteSize, 0 return *label_0 repeat dim pid, 1024 EnumProcesses varptr(pid), 1024, varptr(size) foreach pid OpenProcess 0x0400 | 0x0008 | 0x0010 | 0x0020, 0, pid(cnt) hProcess = stat if ( hProcess ) { pname = "" GetModuleBaseNameA hProcess, 0, varptr(pname), 256 if ( pname == "hsp3.exe" ) { dwritememory hProcess, 0x6030A1DD, 0x09EB, 2 } CloseHandle hProcess } loop await 1 loop

このソースですとリピートループされてしまいPCに負荷がかかります。
対象のプロセスが起動したらメモリを書き換えるというようにしたいです。
なるべくCPUに負荷がかからないようにしたいです。

ソース改造よろしくおねがいします。



この記事に返信する


Him

リンク

2014/9/3(Wed) 21:47:10|NO.64673

foreach〜loop
にawait 1を入れる。
dim pid, 1024
EnumProcesses varptr(pid), 1024, varptr(size)
foreach pid
これだとプロセス数を無視して1024回もリピートされるので

dim pid, 1024 EnumProcesses varptr(pid), length(pid)*4, varptr(size) dim pid, size / 4 EnumProcesses varptr(pid), length(pid)*4, varptr(size) foreach pid
として列挙したプロセス数だけリピートする。



ONION software Copyright 1997-2023(c) All rights reserved.