From d1176cbf9e7c9119a33a6ef0ba00c3e0ea4b4cee Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Thu, 13 Feb 2014 13:48:01 +0200 Subject: [PATCH] Lua: memory2: More functions corresponding to memory.* --- include/library/sha256.hpp | 2 - include/lua/debug.hpp | 13 +++ lua.lyx | 135 ++++++++++++++++++++++++ lua.pdf | Bin 269703 -> 273333 bytes src/lua/memory.cpp | 147 +++++++++++++------------- src/lua/memory2.cpp | 257 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 480 insertions(+), 74 deletions(-) create mode 100644 include/lua/debug.hpp diff --git a/include/library/sha256.hpp b/include/library/sha256.hpp index fd4c20b8..0e8efe02 100644 --- a/include/library/sha256.hpp +++ b/include/library/sha256.hpp @@ -173,8 +173,6 @@ public: return tostring(hashout); } private: - sha256(const sha256& x) throw(); - sha256& operator=(const sha256& x) throw(); uint32_t state[8]; uint32_t datablock[16]; unsigned blockbytes; diff --git a/include/lua/debug.hpp b/include/lua/debug.hpp new file mode 100644 index 00000000..72a55ba3 --- /dev/null +++ b/include/lua/debug.hpp @@ -0,0 +1,13 @@ +#ifndef _lua_debug__hpp__included__ +#define _lua_debug__hpp__included__ + +#include "internal.hpp" +#include "core/debug.hpp" + +template +void handle_registerX(lua::state& L, uint64_t addr, int lfn); + +template +void handle_unregisterX(lua::state& L, uint64_t addr, int lfn); + +#endif \ No newline at end of file diff --git a/lua.lyx b/lua.lyx index f3d25844..69d97853 100644 --- a/lua.lyx +++ b/lua.lyx @@ -6909,6 +6909,141 @@ Write value to given memory area at byte offsets ..., given True increments address by 1, and false decrements address by 1. \end_layout +\begin_layout Subsection +memory2.:cheat: Set/Clear cheat +\end_layout + +\begin_layout Itemize +Syntax: none memory2.:cheat(number addr, [number value]) +\end_layout + +\begin_layout Standard +Set/Clear cheat at offset of memory area . + If is given, cheat with specified value is set. + Otherwise cheat on address is removed. +\end_layout + +\begin_layout Subsection +memory2.:sha256: SHA-256 +\end_layout + +\begin_layout Itemize +Syntax: string memory2.:sha256(number addr, number size[, number rows, + number stride]) +\end_layout + +\begin_layout Standard +Compute SHA-256 of (default 1) chunks of bytes each, starting + from offset of area . + The chunks are separated by . +\end_layout + +\begin_layout Subsection +memory2.:skein: Skein-512-256 +\end_layout + +\begin_layout Itemize +Syntax: string memory2.:skein(number addr, number size[, number rows, + number stride]) +\end_layout + +\begin_layout Standard +Same as memory2.:sha256, except with Skein-512-256 as hash function. +\end_layout + +\begin_layout Subsection +memory2.:store{,cmp}: Copy region to Lua memory with compare +\end_layout + +\begin_layout Itemize +Syntax: none memory2.:store(number addr, number daddr, number size[, + number rows, number stride]) +\end_layout + +\begin_layout Itemize +Syntax: boolean memory2.:storecmp(number addr, number daddr, number + size[, number rows, number stride]) +\end_layout + +\begin_layout Standard +Copy (default 1) chunks of bytes each, starting from offset + of area . + The chunks are separated by . + The target is Lua host memory, starting from offset . +\end_layout + +\begin_layout Standard +Additionally, the storecmp method returns false if target was modified (otherwis +e true). +\end_layout + +\begin_layout Subsection +memory2.:readregion: Read region +\end_layout + +\begin_layout Itemize +Syntax table memory2.:readregion(number addr, number size) +\end_layout + +\begin_layout Standard +Read bytes starting from in and return as array. +\end_layout + +\begin_layout Subsection +memory2.:writeregion: Write region +\end_layout + +\begin_layout Itemize +Syntax none memory2.:writeregion(number addr, table data) +\end_layout + +\begin_layout Standard +Write array to bytes starting from in . +\end_layout + +\begin_layout Subsection +memory2.:register{read,write,exec}: Register hook +\end_layout + +\begin_layout Itemize +Syntax: function memory2.:registerread(number addr, function fn); +\end_layout + +\begin_layout Itemize +Syntax: function memory2.:registerwrite(number addr, function fn); +\end_layout + +\begin_layout Itemize +Syntax: function memory2.:registerexec(number addr, function fn); +\end_layout + +\begin_layout Standard +Register debug callback of specified type at offset of memory + area . + Returns . +\end_layout + +\begin_layout Subsection +memory2.:unregister{read,write,exec}: Unregister hook +\end_layout + +\begin_layout Itemize +Syntax: none memory2.:unregisterread(number addr, function fn); +\end_layout + +\begin_layout Itemize +Syntax: none memory2.:unregisterwrite(number addr, function fn); +\end_layout + +\begin_layout Itemize +Syntax: none memory2.:unregisterexec(number addr, function fn); +\end_layout + +\begin_layout Standard +Unregister debug callback of specified type at offset of memory + area . +\end_layout + \begin_layout Standard \begin_inset Newpage pagebreak \end_inset diff --git a/lua.pdf b/lua.pdf index d85b207f2126feaf9fb8ef8b0aceedc40412ab95..a66a36c5c5dc8aab67a76ccd9a398a7f477727dc 100644 GIT binary patch delta 87075 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 delta 83731 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 diff --git a/src/lua/memory.cpp b/src/lua/memory.cpp index 2ad8667c..e80c6b19 100644 --- a/src/lua/memory.cpp +++ b/src/lua/memory.cpp @@ -244,81 +244,84 @@ namespace return; } } +} - template - void handle_registerX(lua::state& L, uint64_t addr, int lfn) - { - auto& cbl = cbs[addr]; +template +void handle_registerX(lua::state& L, uint64_t addr, int lfn) +{ + auto& cbl = cbs[addr]; + + //Put the context in userdata so it can be gc'd when Lua context is terminated. + lua_debug_callback* D = (lua_debug_callback*)L.newuserdata(sizeof(lua_debug_callback)); + L.newtable(); + L.pushstring("__gc"); + L.pushcclosure(&lua_debug_callback::dtor, 0); + L.rawset(-3); + L.setmetatable(-2); + L.pushlightuserdata(&D->addr); + L.pushvalue(-2); + L.rawset(LUA_REGISTRYINDEX); + L.pop(1); //Pop the copy of object. + + cbl.push_back(D); + + D->dead = false; + D->addr = addr; + D->type = type; + D->lua_fn = L.topointer(lfn); + lua::state* LL = &L.get_master(); + void* D2 = &D->type; + if(type != DEBUG_TRACE) + D->h = debug_add_callback(addr, type, [LL, D2](uint64_t addr, uint64_t value) { + LL->pushlightuserdata(D2); + LL->rawget(LUA_REGISTRYINDEX); + LL->pushnumber(addr); + LL->pushnumber(value); + do_lua_error(*LL, LL->pcall(2, 0, 0)); + }, [LL, D]() { + LL->pushlightuserdata(&D->addr); + LL->pushnil(); + LL->rawset(LUA_REGISTRYINDEX); + D->_dtor(LL->handle()); + }); + else + D->h = debug_add_trace_callback(addr, [LL, D2](uint64_t proc, const char* str) { + LL->pushlightuserdata(D2); + LL->rawget(LUA_REGISTRYINDEX); + LL->pushnumber(proc); + LL->pushstring(str); + do_lua_error(*LL, LL->pcall(2, 0, 0)); + }, [LL, D]() { + LL->pushlightuserdata(&D->addr); + LL->pushnil(); + LL->rawset(LUA_REGISTRYINDEX); + D->_dtor(LL->handle()); + }); + L.pushlightuserdata(D2); + L.pushvalue(lfn); + L.rawset(LUA_REGISTRYINDEX); +} - //Put the context in userdata so it can be gc'd when Lua context is terminated. - lua_debug_callback* D = (lua_debug_callback*)L.newuserdata(sizeof(lua_debug_callback)); - L.newtable(); - L.pushstring("__gc"); - L.pushcclosure(&lua_debug_callback::dtor, 0); - L.rawset(-3); - L.setmetatable(-2); - L.pushlightuserdata(&D->addr); - L.pushvalue(-2); - L.rawset(LUA_REGISTRYINDEX); - L.pop(1); //Pop the copy of object. - - cbl.push_back(D); - - D->dead = false; - D->addr = addr; - D->type = type; - D->lua_fn = L.topointer(lfn); - lua::state* LL = &L.get_master(); - void* D2 = &D->type; - if(type != DEBUG_TRACE) - D->h = debug_add_callback(addr, type, [LL, D2](uint64_t addr, uint64_t value) { - LL->pushlightuserdata(D2); - LL->rawget(LUA_REGISTRYINDEX); - LL->pushnumber(addr); - LL->pushnumber(value); - do_lua_error(*LL, LL->pcall(2, 0, 0)); - }, [LL, D]() { - LL->pushlightuserdata(&D->addr); - LL->pushnil(); - LL->rawset(LUA_REGISTRYINDEX); - D->_dtor(LL->handle()); - }); - else - D->h = debug_add_trace_callback(addr, [LL, D2](uint64_t proc, const char* str) { - LL->pushlightuserdata(D2); - LL->rawget(LUA_REGISTRYINDEX); - LL->pushnumber(proc); - LL->pushstring(str); - do_lua_error(*LL, LL->pcall(2, 0, 0)); - }, [LL, D]() { - LL->pushlightuserdata(&D->addr); - LL->pushnil(); - LL->rawset(LUA_REGISTRYINDEX); - D->_dtor(LL->handle()); - }); - L.pushlightuserdata(D2); - L.pushvalue(lfn); +template +void handle_unregisterX(lua::state& L, uint64_t addr, int lfn) +{ + if(!cbs.count(addr)) + return; + auto& cbl = cbs[addr]; + for(auto i = cbl.begin(); i != cbl.end(); i++) { + if((*i)->type != type) continue; + if(L.topointer(lfn) != (*i)->lua_fn) continue; + L.pushlightuserdata(&(*i)->type); + L.pushnil(); L.rawset(LUA_REGISTRYINDEX); + (*i)->_dtor(L.handle()); + //Lua will GC the object. + break; } +} - template - void handle_unregisterX(lua::state& L, uint64_t addr, int lfn) - { - if(!cbs.count(addr)) - return; - auto& cbl = cbs[addr]; - for(auto i = cbl.begin(); i != cbl.end(); i++) { - if((*i)->type != type) continue; - if(L.topointer(lfn) != (*i)->lua_fn) continue; - L.pushlightuserdata(&(*i)->type); - L.pushnil(); - L.rawset(LUA_REGISTRYINDEX); - (*i)->_dtor(L.handle()); - //Lua will GC the object. - break; - } - } - +namespace +{ template int lua_registerX(lua::state& L, lua::parameters& P) { @@ -334,11 +337,11 @@ namespace P(P.function(lfn)); if(reg) { - handle_registerX(L, addr, lfn); + handle_registerX(L, addr, lfn); L.pushvalue(lfn); return 1; } else { - handle_unregisterX(L, addr, lfn); + handle_unregisterX(L, addr, lfn); return 0; } } diff --git a/src/lua/memory2.cpp b/src/lua/memory2.cpp index 47a6cb53..9aecd677 100644 --- a/src/lua/memory2.cpp +++ b/src/lua/memory2.cpp @@ -1,10 +1,12 @@ #include "lua/internal.hpp" +#include "lua/debug.hpp" #include "core/memorymanip.hpp" #include "core/memorywatch.hpp" #include "core/moviedata.hpp" #include "core/moviefile.hpp" #include "core/rom.hpp" #include "library/sha256.hpp" +#include "library/skein.hpp" #include "library/string.hpp" #include "library/serialization.hpp" #include "library/minmax.hpp" @@ -53,6 +55,12 @@ namespace int info(lua::state& L, lua::parameters& P); template int rw(lua::state& L, lua::parameters& P); template int scattergather(lua::state& L, lua::parameters& P); + template int hash(lua::state& L, lua::parameters& P); + template int storecmp(lua::state& L, lua::parameters& P); + int readregion(lua::state& L, lua::parameters& P); + int writeregion(lua::state& L, lua::parameters& P); + int cheat(lua::state& L, lua::parameters& P); + template int registerX(lua::state& L, lua::parameters& P); std::string print() { return vma; @@ -78,6 +86,40 @@ namespace } }; + struct l_sha256_h + { + static sha256 create() + { + return sha256(); + } + static void write(sha256& h, void* b, size_t s) + { + h.write(reinterpret_cast(b), s); + } + static std::string read(sha256& h) + { + return h.read(); + } + }; + + struct l_skein_h + { + static skein::hash create() + { + return skein::hash(skein::hash::PIPE_512, 256); + } + static void write(skein::hash& h, void* b, size_t s) + { + h.write(reinterpret_cast(b), s); + } + static std::string read(skein::hash& h) + { + uint8_t buf[32]; + h.read(buf); + return hex::b_to(buf, 32); + } + }; + lua::_class class_vma(lua_class_memory, "VMA", {}, { {"info", &lua_vma::info}, {"read", &lua_vma::scattergather}, @@ -107,6 +149,19 @@ namespace {"iqword", &lua_vma::rw}, {"ifloat", &lua_vma::rw}, {"idouble", &lua_vma::rw}, + {"cheat", &lua_vma::cheat}, + {"sha256", &lua_vma::hash}, + {"skein", &lua_vma::hash}, + {"store", &lua_vma::storecmp}, + {"storecmp", &lua_vma::storecmp}, + {"readregion", &lua_vma::readregion}, + {"writeregion", &lua_vma::writeregion}, + {"registerread", &lua_vma::registerX}, + {"unregisterread", &lua_vma::registerX}, + {"registerwrite", &lua_vma::registerX}, + {"unregisterwrite", &lua_vma::registerX}, + {"registerexec", &lua_vma::registerX}, + {"unregisterexec", &lua_vma::registerX}, }, &lua_vma::print); lua::_class class_vmalist(lua_class_memory, "VMALIST", { @@ -192,6 +247,208 @@ namespace return write ? 0 : 1; } + template int lua_vma::hash(lua::state& L, lua::parameters& P) + { + uint64_t addr, size, rows, stride = 0; + bool equals = true; + + P(P.skipped(), addr, size, P.optional(rows, 1)); + if(rows > 1) P(stride); + + //First verify that all reads are to the region. + uint64_t tmp = addr; + if(size > vmasize && rows) + throw std::runtime_error("Region out of range"); + for(uint64_t i = 0; i < rows; i++) { + if(tmp >= vmasize || tmp + size > vmasize) + throw std::runtime_error("Region out of range"); + tmp += stride; + } + + auto hstate = T::create(); + //Try to map the VMA. + char* vmabuf = lsnes_memory.get_physical_mapping(vmabase, vmasize); + if(vmabuf) { + for(uint64_t i = 0; i < rows; i++) { + T::write(hstate, vmabuf + addr, size); + addr += stride; + } + } else { + uint8_t buf[512]; //Must be power of 2. + unsigned bf = 0; + for(uint64_t i = 0; i < rows; i++) { + for(uint64_t j = 0; j < size; j++) { + buf[bf] = lsnes_memory.read(vmabase + addr + j); + bf = (bf + 1) & (sizeof(buf) - 1); + if(!bf) + T::write(hstate, buf, sizeof(buf)); + } + addr += stride; + } + if(bf) + T::write(hstate, buf, bf); + } + L.pushlstring(T::read(hstate)); + return 1; + } + + int lua_vma::readregion(lua::state& L, lua::parameters& P) + { + uint64_t addr, size; + + P(P.skipped(), addr, size); + + if(addr >= vmasize || size > vmasize || addr + size > vmasize) + throw std::runtime_error("Read out of range"); + + L.newtable(); + char* vmabuf = lsnes_memory.get_physical_mapping(vmabase, vmasize); + if(vmabuf) { + uint64_t ctr = 1; + for(size_t i = 0; i < size; i++) { + L.pushnumber(ctr++); + L.pushnumber(static_cast(vmabuf[addr + i])); + L.settable(-3); + } + } else { + uint64_t ctr = 1; + for(size_t i = 0; i < size; i++) { + L.pushnumber(ctr++); + L.pushnumber(lsnes_memory.read(addr + i)); + L.settable(-3); + } + } + return 1; + } + + int lua_vma::writeregion(lua::state& L, lua::parameters& P) + { + uint64_t addr; + int ltbl; + + P(P.skipped(), addr, P.table(ltbl)); + + auto g = lsnes_memory.lookup(vmabase); + if(!g.first || g.first->readonly) + throw std::runtime_error("Memory address is read-only"); + if(addr >= vmasize) + throw std::runtime_error("Write out of range"); + + uint64_t ctr = 1; + char* vmabuf = lsnes_memory.get_physical_mapping(vmabase, vmasize); + if(vmabuf) { + for(size_t i = 0;; i++) { + L.pushnumber(ctr++); + L.gettable(ltbl); + if(L.type(-1) == LUA_TNIL) + break; + if(addr + i >= vmasize) + throw std::runtime_error("Write out of range"); + vmabuf[addr + i] = L.tointeger(-1); + L.pop(1); + } + } else { + for(size_t i = 0;; i++) { + L.pushnumber(ctr++); + L.gettable(ltbl); + if(L.type(-1) == LUA_TNIL) + break; + if(addr + i >= vmasize) + throw std::runtime_error("Write out of range"); + lsnes_memory.write(vmabase + addr + i, L.tointeger(-1)); + L.pop(1); + } + } + } + + template int lua_vma::storecmp(lua::state& L, lua::parameters& P) + { + uint64_t addr, daddr, size, rows, stride = 0; + bool equals = true; + + P(P.skipped(), addr, daddr, size, P.optional(rows, 1)); + if(rows > 1) P(stride); + + //First verify that all reads are to the region. + uint64_t tmp = addr; + if(size > vmasize && rows) + throw std::runtime_error("Source out of range"); + for(uint64_t i = 0; i < rows; i++) { + if(tmp >= vmasize || tmp + size > vmasize) + throw std::runtime_error("Source out of range"); + tmp += stride; + } + //Calculate new size of target. + auto& h = movb.get_mfile().host_memory; + size_t rsize = size * rows; + if(size && rsize / size != rows) + throw std::runtime_error("Copy size out of range"); + if((size_t)daddr + rsize < rsize) + throw std::runtime_error("Target out of range"); + if(daddr + rsize > h.size()) { + h.resize(daddr + rsize); + equals = false; + } + + //Try to map the VMA. + char* vmabuf = lsnes_memory.get_physical_mapping(vmabase, vmasize); + if(vmabuf) { + for(uint64_t i = 0; i < rows; i++) { + bool eq = (cmp && !memcmp(&h[daddr], vmabuf + addr, size)); + if(!eq) + memcpy(&h[daddr], vmabuf + addr, size); + equals &= eq; + addr += stride; + daddr += size; + } + } else { + for(uint64_t i = 0; i < rows; i++) { + for(uint64_t j = 0; j < size; j++) { + uint8_t byte = lsnes_memory.read(vmabase + addr + j); + bool eq = (cmp && ((uint8_t)h[daddr + j] == byte)); + h[daddr + j] = byte; + equals &= eq; + } + addr += stride; + daddr += size; + } + } + if(cmp) L.pushboolean(equals); + return cmp ? 1 : 0; + } + + template int lua_vma::registerX(lua::state& L, lua::parameters& P) + { + uint64_t addr; + int lfn; + P(P.skipped(), addr, P.function(lfn)); + + if(reg) { + handle_registerX(L, vmabase + addr, lfn); + L.pushvalue(lfn); + return 1; + } else { + handle_unregisterX(L, vmabase + addr, lfn); + return 0; + } + } + + int lua_vma::cheat(lua::state& L, lua::parameters& P) + { + uint64_t addr, value; + + P(P.skipped(), addr); + if(addr >= vmasize) + throw std::runtime_error("Address out of range"); + if(P.is_novalue()) { + debug_clear_cheat(vmabase + addr); + } else { + P(value); + debug_set_cheat(vmabase + addr, value); + } + return 0; + } + lua_vma_list::lua_vma_list(lua::state& L) { } -- 2.11.4.GIT