0

モジュールのメモリをベース サイズからモジュール サイズにコピーするのに 5 年もかからず、コンピューターの CPU が空よりも高くなるようにしようとしてきました。

私がまとめたこのスクリプトは Cheat Engine LUA にあり、読み取りによってメモリをコピーし、各バイトを 1 行に出力して、割り当てられたスペースに書き込むために使用できるようにします (memcopy // newmem2):

autoAssemble[[
    alloc(newmem2, 2048)
    label(memcopy)
    registerSymbol(memcopy)

    newmem2:
    memcopy:
]]

for i = 0x00, getModuleSize("Notepad.exe") do
    x = readBytes(getAddress("Notepad.exe+0" .. string.format("%x", i)))
    if (string.len(x) == 1) then
        print(x .. "0")
    else
        print(string.upper(string.format("%x", x)))
    end
    if (isKeyPressed(VK_F) == true) then break end
end

私は基本的に、割り当てられたスペースに正確なモジュールを再作成しようとしています (スクリプト内にメモリを書きません)。

助けていただければ幸いです。

4

1 に答える 1

0

このドキュメントには、「文字列について」という特定の章があり、ループ内の連結に対して推奨されています。記事からの代替ソリューションの引用は次のとおりです。

local t = {}
for line in io.lines() do
t[#t + 1] = line
end
s = table.concat(t, "\n")

txtファイルの読み込みを考慮しています。本質的に、取得した各文字列をテーブル要素に入れ、組み込み関数を使用して単一のメガ文字列を構成します。

ループ内のこれらの文字列の変更は、コードにとって不可欠であるように見えますが、個々の操作ではなく、より大きな文字列に対して正規表現として実行できる可能性があります。

そして、ディスクへの書き込みにもかなりのオーバーヘッドがあることにさらに賭けprint()ます。行がエスケープ文字で区切られている大きなテーブルで単一を呼び出す\nと、スピードアップします。印刷先のディスク上のファイルの場合。

于 2016-06-02T21:41:06.517 に答える