From 6d8b1359d58cf85a8e8c513e0c9737197bf22c45 Mon Sep 17 00:00:00 2001 From: tomvita <68505331+tomvita@users.noreply.github.com> Date: Wed, 26 Aug 2020 12:34:42 +0800 Subject: [PATCH] dmnt edition --- server/source/noexs/exefs.nsp | Bin 114852 -> 116220 bytes server/source/noexs/include/service_guard.h | 65 +++++++ server/source/noexs/noexs.nso | Bin 113792 -> 115160 bytes server/source/noexs/source/commands.cpp | 54 ++++-- server/source/noexs/source/dmntcht.c | 200 ++++++++++++++++++++ 5 files changed, 304 insertions(+), 15 deletions(-) create mode 100644 server/source/noexs/include/service_guard.h create mode 100644 server/source/noexs/source/dmntcht.c diff --git a/server/source/noexs/exefs.nsp b/server/source/noexs/exefs.nsp index 2c96e32c7bafb03580f560693a6c4fad15385ef3..f4d8b780caf8f0ef39bfb4e154e79be8ef3cd650 100644 GIT binary patch delta 37768 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 delta 36350 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%0A+2-SMe%NLB><`}h##yQqB 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 O*)5m<_%43U;Qs-vV&~BS diff --git a/server/source/noexs/include/service_guard.h b/server/source/noexs/include/service_guard.h new file mode 100644 index 0000000..d7ce9a7 --- /dev/null +++ b/server/source/noexs/include/service_guard.h @@ -0,0 +1,65 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include + +typedef struct ServiceGuard { + Mutex mutex; + u32 refCount; +} ServiceGuard; + +NX_INLINE bool serviceGuardBeginInit(ServiceGuard* g) +{ + mutexLock(&g->mutex); + return (g->refCount++) == 0; +} + +NX_INLINE Result serviceGuardEndInit(ServiceGuard* g, Result rc, void (*cleanupFunc)(void)) +{ + if (R_FAILED(rc)) { + cleanupFunc(); + --g->refCount; + } + mutexUnlock(&g->mutex); + return rc; +} + +NX_INLINE void serviceGuardExit(ServiceGuard* g, void (*cleanupFunc)(void)) +{ + mutexLock(&g->mutex); + if (g->refCount && (--g->refCount) == 0) + cleanupFunc(); + mutexUnlock(&g->mutex); +} + +#define NX_GENERATE_SERVICE_GUARD_PARAMS(name, _paramdecl, _parampass) \ +\ +static ServiceGuard g_##name##Guard; \ +NX_INLINE Result _##name##Initialize _paramdecl; \ +static void _##name##Cleanup(void); \ +\ +Result name##Initialize _paramdecl \ +{ \ + Result rc = 0; \ + if (serviceGuardBeginInit(&g_##name##Guard)) \ + rc = _##name##Initialize _parampass; \ + return serviceGuardEndInit(&g_##name##Guard, rc, _##name##Cleanup); \ +} \ +\ +void name##Exit(void) \ +{ \ + serviceGuardExit(&g_##name##Guard, _##name##Cleanup); \ +} + +#define NX_GENERATE_SERVICE_GUARD(name) NX_GENERATE_SERVICE_GUARD_PARAMS(name, (void), ()) + +#ifdef __cplusplus +} +#endif diff --git a/server/source/noexs/noexs.nso b/server/source/noexs/noexs.nso index 555163e9f3484725914cbadc4a21f92259627f19..3e4c22944d8453a9812cc80859912c037d9cb3ae 100644 GIT binary patch delta 37747 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 0){ len = size < GECKO_BUFFER_SIZE ? size : GECKO_BUFFER_SIZE; - rc = ctx.dbg.readMem(ctx.buffer, addr, len); + if (dmnt) rc = dmntchtReadCheatProcessMemory(addr, ctx.buffer, len); + else rc = ctx.dbg.readMem(ctx.buffer, addr, len); WRITE_CHECKED(ctx, rc); if(R_FAILED(rc)){ @@ -135,15 +142,18 @@ static Result _writemem(Gecko::Context& ctx){ u32 size; u32 len; Result rc = 0; + bool * out = nullptr; READ_CHECKED(ctx, addr); READ_CHECKED(ctx, size); - rc = ctx.dbg.attached(); + if (dmnt) rc = dmntchtHasCheatProcess(out); + else rc = ctx.dbg.attached(); WRITE_CHECKED(ctx, rc); if(R_SUCCEEDED(rc)){ while(size > 0){ len = size < GECKO_BUFFER_SIZE ? size : GECKO_BUFFER_SIZE; READ_BUFFER_CHECKED(ctx, ctx.buffer, len); - ctx.dbg.writeMem(ctx.buffer, addr, len); + if (dmnt) rc = dmntchtWriteCheatProcessMemory(addr, ctx.buffer, len); + else ctx.dbg.writeMem(ctx.buffer, addr, len); addr += len; size -= len; } @@ -153,7 +163,9 @@ static Result _writemem(Gecko::Context& ctx){ //0x08 static Result _resume(Gecko::Context& ctx){ - Result rc = ctx.dbg.resume(); + Result rc; + if (dmnt) rc = dmntchtResumeCheatProcess(); + else rc = ctx.dbg.resume(); if(R_SUCCEEDED(rc)){ ctx.status = Gecko::Status::Running; } @@ -162,7 +174,9 @@ static Result _resume(Gecko::Context& ctx){ //0x09 static Result _pause(Gecko::Context& ctx){ - Result rc = ctx.dbg.pause(); + Result rc; + if (dmnt) rc = dmntchtPauseCheatProcess(); + else rc = ctx.dbg.pause(); if(R_SUCCEEDED(rc)){ ctx.status = Gecko::Status::Paused; } @@ -176,6 +190,11 @@ static Result _attach(Gecko::Context& ctx){ Result rc = ctx.dbg.attach(pid); if(R_SUCCEEDED(rc)){ ctx.status = Gecko::Status::Paused; + } else { + dmnt = true; + dmntchtInitialize(); + rc = dmntchtPauseCheatProcess(); + ctx.status = Gecko::Status::Paused; } return rc; } @@ -197,7 +216,8 @@ static Result _querymem_single(Gecko::Context& ctx){ READ_CHECKED(ctx, addr); - rc = ctx.dbg.query(&info, addr); + if (dmnt) rc = dmntchtQueryCheatProcessMemory(&info, addr); + else rc = ctx.dbg.query(&info, addr); WRITE_CHECKED(ctx, info.addr); WRITE_CHECKED(ctx, info.size); @@ -217,7 +237,8 @@ static Result _querymem_multi(Gecko::Context& ctx) { READ_CHECKED(ctx, requestCount); for(count = 0; count < requestCount; count++){ - rc =ctx.dbg.query(&info, addr); + if (dmnt) rc = dmntchtQueryCheatProcessMemory(&info, addr); + else rc =ctx.dbg.query(&info, addr); WRITE_CHECKED(ctx, info.addr); WRITE_CHECKED(ctx, info.size); WRITE_CHECKED(ctx, info.type); @@ -286,9 +307,11 @@ static Result _readmem_multi(Gecko::Context& ctx){ u32 data_size; u32 count = 0; u64 addr; + bool* out = nullptr; READ_CHECKED(ctx, size); READ_CHECKED(ctx, data_size); - rc = ctx.dbg.attached(); + if (dmnt) rc = dmntchtHasCheatProcess(out); + else rc = ctx.dbg.attached(); if(R_SUCCEEDED(rc)){ if(data_size > GECKO_BUFFER_SIZE){ rc = MAKERESULT(Module_TCPGecko, TCPGeckoError_buffer_too_small); @@ -298,7 +321,8 @@ static Result _readmem_multi(Gecko::Context& ctx){ if(R_SUCCEEDED(rc)){ for(count = 0; count < size; count++){ READ_CHECKED(ctx, addr); - rc = ctx.dbg.readMem(ctx.buffer, addr, data_size); + if (dmnt) rc = dmntchtReadCheatProcessMemory(addr, ctx.buffer, data_size); + else rc = ctx.dbg.readMem(ctx.buffer, addr, data_size); WRITE_CHECKED(ctx, rc); if(R_FAILED(rc)){ break; diff --git a/server/source/noexs/source/dmntcht.c b/server/source/noexs/source/dmntcht.c new file mode 100644 index 0000000..4efe1ef --- /dev/null +++ b/server/source/noexs/source/dmntcht.c @@ -0,0 +1,200 @@ +/* + * Copyright (c) 2018-2020 Atmosphère-NX + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#define NX_SERVICE_ASSUME_NON_DOMAIN +#include "service_guard.h" +#include "dmntcht.h" + +static Service g_dmntchtSrv; + +NX_GENERATE_SERVICE_GUARD(dmntcht); + +Result _dmntchtInitialize(void) { + return smGetService(&g_dmntchtSrv, "dmnt:cht"); +} + +void _dmntchtCleanup(void) { + serviceClose(&g_dmntchtSrv); +} + +Service* dmntchtGetServiceSession(void) { + return &g_dmntchtSrv; +} + +Result dmntchtHasCheatProcess(bool *out) { + u8 tmp; + Result rc = serviceDispatchOut(&g_dmntchtSrv, 65000, tmp); + if (R_SUCCEEDED(rc) && out) *out = tmp & 1; + return rc; +} + +Result dmntchtGetCheatProcessEvent(Event *event) { + Handle evt_handle; + Result rc = serviceDispatch(&g_dmntchtSrv, 65001, + .out_handle_attrs = { SfOutHandleAttr_HipcCopy }, + .out_handles = &evt_handle, + ); + + if (R_SUCCEEDED(rc)) { + eventLoadRemote(event, evt_handle, true); + } + + return rc; +} + +Result dmntchtGetCheatProcessMetadata(DmntCheatProcessMetadata *out_metadata) { + return serviceDispatchOut(&g_dmntchtSrv, 65002, *out_metadata); +} + +static Result _dmntchtCmdVoid(Service* srv, u32 cmd_id) { + return serviceDispatch(srv, cmd_id); +} + +Result dmntchtForceOpenCheatProcess(void) { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65003); +} + +Result dmntchtForceCloseCheatProcess(void) { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65009); +} + +Result dmntchtPauseCheatProcess(void) { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65004); +} + +Result dmntchtResumeCheatProcess(void) { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65005); +} + +static Result _dmntchtGetCount(u64 *out_count, u32 cmd_id) { + return serviceDispatchOut(&g_dmntchtSrv, cmd_id, *out_count); +} + +static Result _dmntchtGetEntries(void *buffer, u64 buffer_size, u64 offset, u64 *out_count, u32 cmd_id) { + return serviceDispatchInOut(&g_dmntchtSrv, cmd_id, offset, *out_count, + .buffer_attrs = { SfBufferAttr_Out | SfBufferAttr_HipcMapAlias }, + .buffers = { { buffer, buffer_size } }, + ); +} + +static Result _dmntchtCmdInU32NoOut(u32 in, u32 cmd_id) { + return serviceDispatchIn(&g_dmntchtSrv, cmd_id, in); +} + +Result dmntchtGetCheatProcessMappingCount(u64 *out_count) { + return _dmntchtGetCount(out_count, 65100); +} + +Result dmntchtGetCheatProcessMappings(MemoryInfo *buffer, u64 max_count, u64 offset, u64 *out_count) { + return _dmntchtGetEntries(buffer, sizeof(*buffer) * max_count, offset, out_count, 65101); +} + +Result dmntchtReadCheatProcessMemory(u64 address, void *buffer, size_t size) { + const struct { + u64 address; + u64 size; + } in = { address, size }; + return serviceDispatchIn(&g_dmntchtSrv, 65102, in, + .buffer_attrs = { SfBufferAttr_Out | SfBufferAttr_HipcMapAlias }, + .buffers = { { buffer, size } }, + ); +} + +Result dmntchtWriteCheatProcessMemory(u64 address, const void *buffer, size_t size) { + const struct { + u64 address; + u64 size; + } in = { address, size }; + return serviceDispatchIn(&g_dmntchtSrv, 65103, in, + .buffer_attrs = { SfBufferAttr_In | SfBufferAttr_HipcMapAlias }, + .buffers = { { buffer, size } }, + ); +} + +Result dmntchtQueryCheatProcessMemory(MemoryInfo *mem_info, u64 address){ + return serviceDispatchInOut(&g_dmntchtSrv, 65104, address, *mem_info); +} + +Result dmntchtGetCheatCount(u64 *out_count) { + return _dmntchtGetCount(out_count, 65200); +} + +Result dmntchtGetCheats(DmntCheatEntry *buffer, u64 max_count, u64 offset, u64 *out_count) { + return _dmntchtGetEntries(buffer, sizeof(*buffer) * max_count, offset, out_count, 65201); +} + +Result dmntchtGetCheatById(DmntCheatEntry *out, u32 cheat_id) { + return serviceDispatchIn(&g_dmntchtSrv, 65202, cheat_id, + .buffer_attrs = { SfBufferAttr_Out | SfBufferAttr_HipcMapAlias | SfBufferAttr_FixedSize }, + .buffers = { { out, sizeof(*out) } }, + ); +} + +Result dmntchtToggleCheat(u32 cheat_id) { + return _dmntchtCmdInU32NoOut(cheat_id, 65203); +} + +Result dmntchtAddCheat(DmntCheatDefinition *cheat_def, bool enabled, u32 *out_cheat_id) { + const u8 in = enabled != 0; + return serviceDispatchInOut(&g_dmntchtSrv, 65204, in, *out_cheat_id, + .buffer_attrs = { SfBufferAttr_In | SfBufferAttr_HipcMapAlias | SfBufferAttr_FixedSize }, + .buffers = { { cheat_def, sizeof(*cheat_def) } }, + ); +} + +Result dmntchtRemoveCheat(u32 cheat_id) { + return _dmntchtCmdInU32NoOut(cheat_id, 65205); +} + +Result dmntchtReadStaticRegister(u64 *out, u8 which) { + return serviceDispatchInOut(&g_dmntchtSrv, 65206, which, *out); +} + +Result dmntchtWriteStaticRegister(u8 which, u64 value) { + const struct { + u64 which; + u64 value; + } in = { which, value }; + + return serviceDispatchIn(&g_dmntchtSrv, 65207, in); +} + +Result dmntchtResetStaticRegisters() { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65208); +} + +Result dmntchtGetFrozenAddressCount(u64 *out_count) { + return _dmntchtGetCount(out_count, 65300); +} + +Result dmntchtGetFrozenAddresses(DmntFrozenAddressEntry *buffer, u64 max_count, u64 offset, u64 *out_count) { + return _dmntchtGetEntries(buffer, sizeof(*buffer) * max_count, offset, out_count, 65301); +} + +Result dmntchtGetFrozenAddress(DmntFrozenAddressEntry *out, u64 address) { + return serviceDispatchInOut(&g_dmntchtSrv, 65302, address, *out); +} + +Result dmntchtEnableFrozenAddress(u64 address, u64 width, u64 *out_value) { + const struct { + u64 address; + u64 width; + } in = { address, width }; + return serviceDispatchInOut(&g_dmntchtSrv, 65303, in, *out_value); +} + +Result dmntchtDisableFrozenAddress(u64 address) { + return serviceDispatchIn(&g_dmntchtSrv, 65304, address); +}