diff --git a/src/dbg/_global.cpp b/src/dbg/_global.cpp index 20f4588f..6a137d33 100644 --- a/src/dbg/_global.cpp +++ b/src/dbg/_global.cpp @@ -11,16 +11,18 @@ \brief x64dbg library instance. */ HINSTANCE hInst; +//#define ENABLE_MEM_TRACE /** \brief Number of allocated buffers by emalloc(). This should be 0 when x64dbg ends. */ static int emalloc_count = 0; - +#ifdef ENABLE_MEM_TRACE /** \brief Path for debugging, used to create an allocation trace file on emalloc() or efree(). Not used. */ -static char alloctrace[MAX_PATH] = ""; +static char alloctrace[MAX_PATH] = "memtrace.txt"; +#endif /** \brief Allocates a new buffer. @@ -40,11 +42,11 @@ void* emalloc(size_t size, const char* reason) } memset(a, 0, size); emalloc_count++; - /* +#ifdef ENABLE_MEM_TRACE FILE* file = fopen(alloctrace, "a+"); - fprintf(file, "DBG%.5d: alloc:" fhex ":%s:" fhex "\n", emalloc_count, a, reason, size); + fprintf(file, "DBG%.5d: alloc:%p:%s:%p\n", emalloc_count, a, reason, size); fclose(file); - */ +#endif //ENABLE_MEM_TRACE return a; } @@ -74,11 +76,11 @@ void* erealloc(void* ptr, size_t size, const char* reason) void efree(void* ptr, const char* reason) { emalloc_count--; - /* +#ifdef ENABLE_MEM_TRACE FILE* file = fopen(alloctrace, "a+"); - fprintf(file, "DBG%.5d: free:" fhex ":%s\n", emalloc_count, ptr, reason); + fprintf(file, "DBG%.5d: free:%p:%s\n", emalloc_count, ptr, reason); fclose(file); - */ +#endif //ENABLE_MEM_TRACE GlobalFree(ptr); } @@ -101,6 +103,7 @@ int memleaks() return emalloc_count; } +#ifdef ENABLE_MEM_TRACE /** \brief Sets the path for the allocation trace file. \param file UTF-8 filepath. @@ -109,6 +112,7 @@ void setalloctrace(const char* file) { strcpy_s(alloctrace, file); } +#endif //ENABLE_MEM_TRACE /** \brief A function to determine if a string is contained in a specifically formatted 'array string'. diff --git a/src/dbg/_plugins.cpp b/src/dbg/_plugins.cpp index db99c2d7..669fff62 100644 --- a/src/dbg/_plugins.cpp +++ b/src/dbg/_plugins.cpp @@ -36,13 +36,13 @@ PLUG_IMPEXP void _plugin_logprintf(const char* format, ...) va_list args; va_start(args, format); - dprintf_args(format, args); + dprintf_args_untranslated(format, args); va_end(args); } PLUG_IMPEXP void _plugin_logputs(const char* text) { - dputs(text); + dputs_untranslated(text); } PLUG_IMPEXP void _plugin_debugpause() diff --git a/src/dbg/analysis/FunctionPass.cpp b/src/dbg/analysis/FunctionPass.cpp index ce23739e..511fed6a 100644 --- a/src/dbg/analysis/FunctionPass.cpp +++ b/src/dbg/analysis/FunctionPass.cpp @@ -98,7 +98,7 @@ bool FunctionPass::Analyse() std::sort(funcs.begin(), funcs.end()); funcs.erase(std::unique(funcs.begin(), funcs.end()), funcs.end()); - dprintf("%u functions\n", funcs.size()); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u functions\n"), funcs.size()); FunctionDelRange(m_VirtualStart, m_VirtualEnd - 1, false); for(auto & func : funcs) @@ -142,7 +142,7 @@ void FunctionPass::AnalysisWorker(duint Start, duint End, std::vectorTarget, destination); + dprintf(QT_TRANSLATE_NOOP("DBG", "Indirect pointer: 0x%p 0x%p\n"), blockItr->Target, destination); } // Destination must be within analysis limits diff --git a/src/dbg/analysis/exceptiondirectoryanalysis.cpp b/src/dbg/analysis/exceptiondirectoryanalysis.cpp index 9e0509c9..3365db53 100644 --- a/src/dbg/analysis/exceptiondirectoryanalysis.cpp +++ b/src/dbg/analysis/exceptiondirectoryanalysis.cpp @@ -75,9 +75,9 @@ void ExceptionDirectoryAnalysis::Analyse() return true; }); - dprintf("%u functions discovered!\n", mFunctions.size()); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u functions discovered!\n"), mFunctions.size()); #else //x32 - dprintf("This kind of analysis doesn't work on x32 executables...\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "This kind of analysis doesn't work on x32 executables...\n")); #endif // _WIN64 } diff --git a/src/dbg/console.cpp b/src/dbg/console.cpp index efb73512..e65f7645 100644 --- a/src/dbg/console.cpp +++ b/src/dbg/console.cpp @@ -61,3 +61,35 @@ void dprintf_args(const char* Format, va_list Args) GuiAddLogMessageAsync(buffer); } + +/** +\brief Print a line with text, terminated with a newline to the console. +\param text The text to print. +*/ +void dputs_untranslated(const char* Text) +{ + // Only append the newline if the caller didn't + size_t textlen = strlen(Text); + if(Text[textlen - 1] != '\n') + { + Memory buffer(textlen + 2, "dputs"); + memcpy(buffer(), Text, textlen); + buffer()[textlen] = '\n'; + buffer()[textlen + 1] = '\0'; + GuiAddLogMessageAsync(buffer()); + } + else + GuiAddLogMessageAsync(Text); +} +/** +\brief Print a formatted string to the console. +\param format The printf format to use (see documentation of printf for more information). +\param Args The argument buffer passed to the string parser. +*/ +void dprintf_args_untranslated(const char* Format, va_list Args) +{ + char buffer[16384]; + vsnprintf_s(buffer, _TRUNCATE, Format, Args); + + GuiAddLogMessageAsync(buffer); +} diff --git a/src/dbg/console.h b/src/dbg/console.h index 275ac460..178bf660 100644 --- a/src/dbg/console.h +++ b/src/dbg/console.h @@ -6,5 +6,7 @@ void dputs(const char* Text); void dprintf(const char* Format, ...); void dprintf_args(const char* Format, va_list Args); +void dputs_untranslated(const char* Text); +void dprintf_args_untranslated(const char* Format, va_list Args); #endif // _CONSOLE_H \ No newline at end of file diff --git a/src/dbg/database.cpp b/src/dbg/database.cpp index 2908638c..27d48661 100644 --- a/src/dbg/database.cpp +++ b/src/dbg/database.cpp @@ -38,7 +38,7 @@ void DbSave(DbLoadSaveType saveType) { EXCLUSIVE_ACQUIRE(LockDatabase); - dputs("Saving database..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Saving database...")); DWORD ticks = GetTickCount(); JSON root = json_object(); @@ -106,7 +106,7 @@ void DbSave(DbLoadSaveType saveType) // Dump JSON to disk (overwrite any old files) if(!FileHelper::WriteAllText(dbpath, jsonText)) { - dputs("\nFailed to write database file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "\nFailed to write database file!")); json_free(jsonText); json_decref(root); return; @@ -134,9 +134,9 @@ void DbLoad(DbLoadSaveType loadType) return; if(loadType == DbLoadSaveType::CommandLine) - dputs("Loading commandline..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Loading commandline...")); else - dprintf("Loading database..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Loading database...")); DWORD ticks = GetTickCount(); // Multi-byte (UTF8) file path converted to UTF16 @@ -151,7 +151,7 @@ void DbLoad(DbLoadSaveType loadType) // Check return code if(useCompression && lzmaStatus != LZ4_SUCCESS && lzmaStatus != LZ4_INVALID_ARCHIVE) { - dputs("\nInvalid database file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "\nInvalid database file!")); return; } } @@ -161,7 +161,7 @@ void DbLoad(DbLoadSaveType loadType) if(!FileHelper::ReadAllText(dbpath, databaseText)) { - dputs("\nFailed to read database file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "\nFailed to read database file!")); return; } @@ -175,7 +175,7 @@ void DbLoad(DbLoadSaveType loadType) if(!root) { - dputs("\nInvalid database file (JSON)!"); + dputs(QT_TRANSLATE_NOOP("DBG", "\nInvalid database file (JSON)!")); return; } @@ -264,7 +264,7 @@ void DbSetPath(const char* Directory, const char* ModulePath) if(!CreateDirectoryW(StringUtils::Utf8ToUtf16(Directory).c_str(), nullptr)) { if(GetLastError() != ERROR_ALREADY_EXISTS) - dprintf("Warning: Failed to create database folder '%s'. Path may be read only.\n", Directory); + dprintf(QT_TRANSLATE_NOOP("DBG", "Warning: Failed to create database folder '%s'. Path may be read only.\n"), Directory); } } @@ -312,6 +312,6 @@ void DbSetPath(const char* Directory, const char* ModulePath) sprintf_s(dbpath, "%s\\%s.%s", dbbasepath, dbName, dbType); } - dprintf("Database file: %s\n", dbpath); + dprintf(QT_TRANSLATE_NOOP("DBG", "Database file: %s\n"), dbpath); } } diff --git a/src/dbg/debugger.cpp b/src/dbg/debugger.cpp index 95138bdd..8a6bd461 100644 --- a/src/dbg/debugger.cpp +++ b/src/dbg/debugger.cpp @@ -635,7 +635,7 @@ static void cbGenericBreakpoint(BP_TYPE bptype, void* ExceptionAddress = nullptr if(!(bpPtr && bpPtr->enabled)) //invalid / disabled breakpoint hit (most likely a bug) { SHARED_RELEASE(); - dputs("Breakpoint reached not in list!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint reached not in list!")); DebugUpdateGuiSetStateAsync(GetContextDataEx(hActiveThread, UE_CIP), true); //lock lock(WAITID_RUN); @@ -881,7 +881,7 @@ bool cbSetModuleBreakpoints(const BREAKPOINT* bp) DWORD drx = 0; if(!GetUnusedHardwareBreakPointRegister(&drx)) { - dputs("You can only set 4 hardware breakpoints"); + dputs(QT_TRANSLATE_NOOP("DBG", "You can only set 4 hardware breakpoints")); return false; } int titantype = bp->titantype; @@ -1323,7 +1323,7 @@ static void cbExitThread(EXIT_THREAD_DEBUG_INFO* ExitThread) std::vector threads; ThreadGetList(threads); if(!threads.size()) - dputs("No threads left to switch to (bug?)"); + dputs(QT_TRANSLATE_NOOP("DBG", "No threads left to switch to (bug?)")); hActiveThread = threads[0].Handle; } DWORD dwThreadId = ((DEBUG_EVENT*)GetDebugData())->dwThreadId; @@ -1360,9 +1360,9 @@ static void cbSystemBreakpoint(void* ExceptionData) // TODO: System breakpoint e //log message if(bIsAttached) - dputs("Attach breakpoint reached!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Attach breakpoint reached!")); else - dputs("System breakpoint reached!"); + dputs(QT_TRANSLATE_NOOP("DBG", "System breakpoint reached!")); bSkipExceptions = false; //we are not skipping first-chance exceptions //plugin callbacks @@ -1432,7 +1432,7 @@ static void cbLoadDll(LOAD_DLL_DEBUG_INFO* LoadDll) dprintf(QT_TRANSLATE_NOOP("DBG", "TLS Callbacks: %d\n"), NumberOfCallBacks); Memory TLSCallBacks(NumberOfCallBacks * sizeof(duint), "cbLoadDll:TLSCallBacks"); if(!TLSGrabCallBackDataW(StringUtils::Utf8ToUtf16(DLLDebugFileName).c_str(), TLSCallBacks(), &NumberOfCallBacks)) - dputs("Failed to get TLS callback addresses!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to get TLS callback addresses!")); else { duint ImageBase = GetPE32DataW(StringUtils::Utf8ToUtf16(DLLDebugFileName).c_str(), 0, UE_IMAGEBASE); @@ -1610,15 +1610,15 @@ static void cbException(EXCEPTION_DEBUG_INFO* ExceptionData) detachInfo.fdProcessInfo = fdProcessInfo; plugincbcall(CB_DETACH, &detachInfo); if(!DetachDebuggerEx(fdProcessInfo->dwProcessId)) - dputs("DetachDebuggerEx failed..."); + dputs(QT_TRANSLATE_NOOP("DBG", "DetachDebuggerEx failed...")); else - dputs("Detached!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Detached!")); isDetachedByUser = false; return; } else if(isPausedByUser) { - dputs("paused!"); + dputs(QT_TRANSLATE_NOOP("DBG", "paused!")); SetNextDbgContinueStatus(DBG_CONTINUE); //update memory map MemUpdateMap(); @@ -1910,9 +1910,9 @@ void cbDetach() detachInfo.fdProcessInfo = fdProcessInfo; plugincbcall(CB_DETACH, &detachInfo); if(!DetachDebuggerEx(fdProcessInfo->dwProcessId)) - dputs("DetachDebuggerEx failed..."); + dputs(QT_TRANSLATE_NOOP("DBG", "DetachDebuggerEx failed...")); else - dputs("Detached!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Detached!")); return; } @@ -2241,7 +2241,7 @@ static void debugLoopFunction(void* lpParameter, bool attach) BOOL wow64 = false, mewow64 = false; if(!IsWow64Process(fdProcessInfo->hProcess, &wow64) || !IsWow64Process(GetCurrentProcess(), &mewow64)) { - dputs("IsWow64Process failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "IsWow64Process failed!")); StopDebug(); unlock(WAITID_STOP); return; @@ -2249,9 +2249,9 @@ static void debugLoopFunction(void* lpParameter, bool attach) if((mewow64 && !wow64) || (!mewow64 && wow64)) { #ifdef _WIN64 - dputs("Use x32dbg to debug this process!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x32dbg to debug this process!")); #else - dputs("Use x64dbg to debug this process!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x64dbg to debug this process!")); #endif // _WIN64 unlock(WAITID_STOP); return; @@ -2336,7 +2336,7 @@ static void debugLoopFunction(void* lpParameter, bool attach) TraceRecord.clear(); GuiSetDebugState(stopped); GuiUpdateAllViews(); - dputs("Debugging stopped!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Debugging stopped!")); varset("$hp", (duint)0, true); varset("$pid", (duint)0, true); if(hProcessToken) diff --git a/src/dbg/debugger_commands.cpp b/src/dbg/debugger_commands.cpp index 539e3e88..2e65a256 100644 --- a/src/dbg/debugger_commands.cpp +++ b/src/dbg/debugger_commands.cpp @@ -40,7 +40,7 @@ CMDRESULT cbDebugInit(int argc, char* argv[]) static char arg1[deflen] = ""; if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } strcpy_s(arg1, argv[1]); @@ -52,13 +52,13 @@ CMDRESULT cbDebugInit(int argc, char* argv[]) } if(!FileExists(arg1)) { - dputs("File does not exist!"); + dputs(QT_TRANSLATE_NOOP("DBG", "File does not exist!")); return STATUS_ERROR; } Handle hFile = CreateFileW(StringUtils::Utf8ToUtf16(arg1).c_str(), GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); if(hFile == INVALID_HANDLE_VALUE) { - dputs("Could not open file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Could not open file!")); return STATUS_ERROR; } GetFileNameFromHandle(hFile, arg1); //get full path of the file @@ -68,14 +68,14 @@ CMDRESULT cbDebugInit(int argc, char* argv[]) switch(GetFileArchitecture(arg1)) { case invalid: - dputs("Invalid PE file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid PE file!")); return STATUS_ERROR; #ifdef _WIN64 case x32: - dputs("Use x32dbg to debug this file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x32dbg to debug this file!")); #else //x86 case x64: - dputs("Use x64dbg to debug this file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x64dbg to debug this file!")); #endif //_WIN64 return STATUS_ERROR; default: @@ -174,7 +174,7 @@ CMDRESULT cbDebugSetBPXOptions(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } DWORD type = 0; @@ -200,7 +200,7 @@ CMDRESULT cbDebugSetBPXOptions(int argc, char* argv[]) } else { - dputs("Invalid type specified!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid type specified!")); return STATUS_ERROR; } SetBPXOptions(type); @@ -213,7 +213,7 @@ CMDRESULT cbDebugSetBPX(int argc, char* argv[]) //bp addr [,name [,type]] { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } char argaddr[deflen] = ""; @@ -261,7 +261,7 @@ CMDRESULT cbDebugSetBPX(int argc, char* argv[]) //bp addr [,name [,type]] { if(!bp.enabled) return DbgCmdExecDirect(StringUtils::sprintf("bpe " fhex, bp.addr).c_str()) ? STATUS_CONTINUE : STATUS_ERROR; - dputs("Breakpoint already set!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint already set!")); return STATUS_CONTINUE; } if(IsBPXEnabled(addr)) @@ -297,7 +297,7 @@ CMDRESULT cbDebugDeleteBPX(int argc, char* argv[]) { if(!BpGetCount(BPNORMAL)) { - dputs("No breakpoints to delete!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No breakpoints to delete!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDeleteAllBreakpoints)) //at least one deletion failed @@ -305,7 +305,7 @@ CMDRESULT cbDebugDeleteBPX(int argc, char* argv[]) GuiUpdateAllViews(); return STATUS_ERROR; } - dputs("All breakpoints deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All breakpoints deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -346,7 +346,7 @@ CMDRESULT cbDebugDeleteBPX(int argc, char* argv[]) dprintf("Delete breakpoint failed (DeleteBPX): " fhex "\n", found.addr); return STATUS_ERROR; } - dputs("Breakpoint deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -357,12 +357,12 @@ CMDRESULT cbDebugEnableBPX(int argc, char* argv[]) { if(!BpGetCount(BPNORMAL)) { - dputs("No breakpoints to enable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No breakpoints to enable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbEnableAllBreakpoints)) //at least one enable failed return STATUS_ERROR; - dputs("All breakpoints enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All breakpoints enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -390,7 +390,7 @@ CMDRESULT cbDebugEnableBPX(int argc, char* argv[]) } if(found.enabled) { - dputs("Breakpoint already enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint already enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -405,7 +405,7 @@ CMDRESULT cbDebugEnableBPX(int argc, char* argv[]) return STATUS_ERROR; } GuiUpdateAllViews(); - dputs("Breakpoint enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint enabled!")); return STATUS_CONTINUE; } @@ -415,12 +415,12 @@ CMDRESULT cbDebugDisableBPX(int argc, char* argv[]) { if(!BpGetCount(BPNORMAL)) { - dputs("No breakpoints to disable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No breakpoints to disable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDisableAllBreakpoints)) //at least one deletion failed return STATUS_ERROR; - dputs("All breakpoints disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All breakpoints disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -451,7 +451,7 @@ CMDRESULT cbDebugDisableBPX(int argc, char* argv[]) } if(!found.enabled) { - dputs("Breakpoint already disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint already disabled!")); return STATUS_CONTINUE; } if(!BpEnable(found.addr, BPNORMAL, false)) @@ -467,7 +467,7 @@ CMDRESULT cbDebugDisableBPX(int argc, char* argv[]) dprintf("Could not disable breakpoint " fhex " (DeleteBPX)\n", found.addr); return STATUS_ERROR; } - dputs("Breakpoint disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Breakpoint disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -477,7 +477,7 @@ static CMDRESULT cbDebugSetBPXTextCommon(BP_TYPE Type, int argc, char* argv[], c BREAKPOINT bp; if(argc < 2) { - dprintf("not enough arguments!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!\n")); return STATUS_ERROR; } auto value = ""; @@ -531,7 +531,7 @@ static CMDRESULT cbDebugGetBPXHitCountCommon(BP_TYPE Type, int argc, char* argv[ { if(argc < 2) { - dprintf("not enough arguments!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!\n")); return STATUS_ERROR; } BREAKPOINT bp; @@ -549,7 +549,7 @@ static CMDRESULT cbDebugResetBPXHitCountCommon(BP_TYPE Type, int argc, char* arg { if(argc < 2) { - dprintf("not enough arguments!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!\n")); return STATUS_ERROR; } duint value = 0; @@ -576,7 +576,7 @@ static CMDRESULT cbDebugSetBPXFastResumeCommon(BP_TYPE Type, int argc, char* arg BREAKPOINT bp; if(argc < 2) { - dprintf("not enough arguments!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!\n")); return STATUS_ERROR; } auto fastResume = true; @@ -605,7 +605,7 @@ static CMDRESULT cbDebugSetBPXSilentCommon(BP_TYPE Type, int argc, char* argv[]) BREAKPOINT bp; if(argc < 2) { - dprintf("not enough arguments!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!\n")); return STATUS_ERROR; } auto silent = true; @@ -773,7 +773,7 @@ CMDRESULT cbDebugSetBPGoto(int argc, char* argv[]) { if(argc != 3) { - dputs("argument count mismatch!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "argument count mismatch!\n")); return STATUS_ERROR; } char cmd[deflen]; @@ -796,7 +796,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr; @@ -816,7 +816,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(int argc, char* argv[]) case 'x': break; default: - dputs("Invalid type, assuming 'x'"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid type, assuming 'x'")); break; } } @@ -844,7 +844,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(int argc, char* argv[]) #endif // _WIN64 default: titsize = UE_HARDWARE_SIZE_1; - dputs("Invalid size, using 1"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid size, using 1")); break; } if((addr % size) != 0) @@ -856,7 +856,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(int argc, char* argv[]) DWORD drx = 0; if(!GetUnusedHardwareBreakPointRegister(&drx)) { - dputs("You can only set 4 hardware breakpoints"); + dputs(QT_TRANSLATE_NOOP("DBG", "You can only set 4 hardware breakpoints")); return STATUS_ERROR; } int titantype = 0; @@ -869,17 +869,17 @@ CMDRESULT cbDebugSetHardwareBreakpoint(int argc, char* argv[]) { if(!bp.enabled) return DbgCmdExecDirect(StringUtils::sprintf("bphwe " fhex, bp.addr).c_str()) ? STATUS_CONTINUE : STATUS_ERROR; - dputs("Hardware breakpoint already set!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint already set!")); return STATUS_CONTINUE; } if(!BpNew(addr, true, false, 0, BPHARDWARE, titantype, 0)) { - dputs("Error setting hardware breakpoint (bpnew)!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting hardware breakpoint (bpnew)!")); return STATUS_ERROR; } if(!SetHardwareBreakPoint(addr, drx, type, titsize, (void*)cbHardwareBreakpoint)) { - dputs("Error setting hardware breakpoint (TitanEngine)!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting hardware breakpoint (TitanEngine)!")); return STATUS_ERROR; } dprintf("Hardware breakpoint at " fhex " set!\n", addr); @@ -893,12 +893,12 @@ CMDRESULT cbDebugDeleteHardwareBreakpoint(int argc, char* argv[]) { if(!BpGetCount(BPHARDWARE)) { - dputs("No hardware breakpoints to delete!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No hardware breakpoints to delete!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDeleteAllHardwareBreakpoints)) //at least one deletion failed return STATUS_ERROR; - dputs("All hardware breakpoints deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All hardware breakpoints deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -933,7 +933,7 @@ CMDRESULT cbDebugDeleteHardwareBreakpoint(int argc, char* argv[]) dprintf("Delete hardware breakpoint failed: " fhex " (DeleteHardwareBreakPoint)\n", found.addr); return STATUS_ERROR; } - dputs("Hardware breakpoint deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -943,19 +943,19 @@ CMDRESULT cbDebugEnableHardwareBreakpoint(int argc, char* argv[]) DWORD drx = 0; if(!GetUnusedHardwareBreakPointRegister(&drx)) { - dputs("You can only set 4 hardware breakpoints"); + dputs(QT_TRANSLATE_NOOP("DBG", "You can only set 4 hardware breakpoints")); return STATUS_ERROR; } if(argc < 2) //enable all hardware breakpoints { if(!BpGetCount(BPHARDWARE)) { - dputs("No hardware breakpoints to enable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No hardware breakpoints to enable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbEnableAllHardwareBreakpoints)) //at least one enable failed return STATUS_ERROR; - dputs("All hardware breakpoints enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All hardware breakpoints enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -968,7 +968,7 @@ CMDRESULT cbDebugEnableHardwareBreakpoint(int argc, char* argv[]) } if(found.enabled) { - dputs("Hardware breakpoint already enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint already enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -984,7 +984,7 @@ CMDRESULT cbDebugEnableHardwareBreakpoint(int argc, char* argv[]) dprintf("Could not enable hardware breakpoint " fhex " (BpEnable)\n", found.addr); return STATUS_ERROR; } - dputs("Hardware breakpoint enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -995,12 +995,12 @@ CMDRESULT cbDebugDisableHardwareBreakpoint(int argc, char* argv[]) { if(!BpGetCount(BPHARDWARE)) { - dputs("No hardware breakpoints to disable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No hardware breakpoints to disable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDisableAllHardwareBreakpoints)) //at least one deletion failed return STATUS_ERROR; - dputs("All hardware breakpoints disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All hardware breakpoints disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1013,7 +1013,7 @@ CMDRESULT cbDebugDisableHardwareBreakpoint(int argc, char* argv[]) } if(!found.enabled) { - dputs("Hardware breakpoint already disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint already disabled!")); return STATUS_CONTINUE; } if(!BpEnable(found.addr, BPHARDWARE, false)) @@ -1026,7 +1026,7 @@ CMDRESULT cbDebugDisableHardwareBreakpoint(int argc, char* argv[]) dprintf("Could not disable hardware breakpoint " fhex " (DeleteHardwareBreakpoint)\n", found.addr); return STATUS_ERROR; } - dputs("Hardware breakpoint disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Hardware breakpoint disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1040,7 +1040,7 @@ CMDRESULT cbDebugSetMemoryBpx(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint addr; @@ -1074,7 +1074,7 @@ CMDRESULT cbDebugSetMemoryBpx(int argc, char* argv[]) type = UE_MEMORY_EXECUTE; //EXECUTE break; default: - dputs("Invalid type (argument ignored)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid type (argument ignored)")); break; } } @@ -1088,17 +1088,17 @@ CMDRESULT cbDebugSetMemoryBpx(int argc, char* argv[]) { if(!bp.enabled) return BpEnable(base, BPMEMORY, true) ? STATUS_CONTINUE : STATUS_ERROR; - dputs("Memory breakpoint already set!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory breakpoint already set!")); return STATUS_CONTINUE; } if(!BpNew(base, true, singleshoot, 0, BPMEMORY, type, 0)) { - dputs("Error setting memory breakpoint! (BpNew)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting memory breakpoint! (BpNew)")); return STATUS_ERROR; } if(!SetMemoryBPXEx(base, size, type, restore, (void*)cbMemoryBreakpoint)) { - dputs("Error setting memory breakpoint! (SetMemoryBPXEx)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting memory breakpoint! (SetMemoryBPXEx)")); return STATUS_ERROR; } dprintf("Memory breakpoint at " fhex " set!\n", addr); @@ -1112,12 +1112,12 @@ CMDRESULT cbDebugDeleteMemoryBreakpoint(int argc, char* argv[]) { if(!BpGetCount(BPMEMORY)) { - dputs("no memory breakpoints to delete!"); + dputs(QT_TRANSLATE_NOOP("DBG", "no memory breakpoints to delete!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDeleteAllMemoryBreakpoints)) //at least one deletion failed return STATUS_ERROR; - dputs("All memory breakpoints deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All memory breakpoints deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1156,7 +1156,7 @@ CMDRESULT cbDebugDeleteMemoryBreakpoint(int argc, char* argv[]) dprintf("Delete memory breakpoint failed: " fhex " (RemoveMemoryBPX)\n", found.addr); return STATUS_ERROR; } - dputs("Memory breakpoint deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory breakpoint deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1167,12 +1167,12 @@ CMDRESULT cbDebugEnableMemoryBreakpoint(int argc, char* argv[]) { if(!BpGetCount(BPMEMORY)) { - dputs("No memory breakpoints to enable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No memory breakpoints to enable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbEnableAllMemoryBreakpoints)) //at least one enable failed return STATUS_ERROR; - dputs("All memory breakpoints enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All memory breakpoints enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1185,7 +1185,7 @@ CMDRESULT cbDebugEnableMemoryBreakpoint(int argc, char* argv[]) } if(found.enabled) { - dputs("Memory memory already enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory memory already enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1201,7 +1201,7 @@ CMDRESULT cbDebugEnableMemoryBreakpoint(int argc, char* argv[]) dprintf("Could not enable memory breakpoint " fhex " (BpEnable)\n", found.addr); return STATUS_ERROR; } - dputs("Memory breakpoint enabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory breakpoint enabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1212,12 +1212,12 @@ CMDRESULT cbDebugDisableMemoryBreakpoint(int argc, char* argv[]) { if(!BpGetCount(BPMEMORY)) { - dputs("No memory breakpoints to disable!"); + dputs(QT_TRANSLATE_NOOP("DBG", "No memory breakpoints to disable!")); return STATUS_CONTINUE; } if(!BpEnumAll(cbDisableAllMemoryBreakpoints)) //at least one deletion failed return STATUS_ERROR; - dputs("All memory breakpoints disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "All memory breakpoints disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1230,7 +1230,7 @@ CMDRESULT cbDebugDisableMemoryBreakpoint(int argc, char* argv[]) } if(!found.enabled) { - dputs("Memory breakpoint already disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory breakpoint already disabled!")); return STATUS_CONTINUE; } duint size = 0; @@ -1245,7 +1245,7 @@ CMDRESULT cbDebugDisableMemoryBreakpoint(int argc, char* argv[]) dprintf("Could not disable memory breakpoint " fhex " (BpEnable)\n", found.addr); return STATUS_ERROR; } - dputs("Memory breakpoint disabled!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memory breakpoint disabled!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1259,7 +1259,7 @@ CMDRESULT cbDebugBplist(int argc, char* argv[]) { if(!BpEnumAll(cbBreakpointList)) { - dputs("Something went wrong..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Something went wrong...")); return STATUS_ERROR; } return STATUS_CONTINUE; @@ -1274,7 +1274,7 @@ static bool skipInt3Stepping(int argc, char* argv[]) MemRead(cip, &ch, sizeof(ch)); if(ch == 0xCC && getLastExceptionInfo().ExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT) { - dputs("Skipped INT3!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Skipped INT3!")); cbDebugSkip(argc, argv); return true; } @@ -1348,9 +1348,9 @@ CMDRESULT cbDebugeSingleStep(int argc, char* argv[]) CMDRESULT cbDebugHide(int argc, char* argv[]) { if(HideDebugger(fdProcessInfo->hProcess, UE_HIDE_PEBONLY)) - dputs("Debugger hidden"); + dputs(QT_TRANSLATE_NOOP("DBG", "Debugger hidden")); else - dputs("Something went wrong"); + dputs(QT_TRANSLATE_NOOP("DBG", "Something went wrong")); return STATUS_CONTINUE; } @@ -1392,7 +1392,7 @@ CMDRESULT cbDebugRunToParty(int argc, char* argv[]) ModGetList(AllModules); if(!RunToUserCodeBreakpoints.empty()) { - dputs("Run to party is busy.\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Run to party is busy.\n")); return STATUS_ERROR; } int party = atoi(argv[1]); // party is a signed integer @@ -1425,12 +1425,12 @@ static CMDRESULT cbDebugConditionalTrace(void* callBack, bool stepOver, int argc { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } if(dbgtraceactive()) { - dputs("Trace already active"); + dputs(QT_TRANSLATE_NOOP("DBG", "Trace already active")); return STATUS_ERROR; } duint maxCount = 50000; @@ -1512,7 +1512,7 @@ CMDRESULT cbDebugAlloc(int argc, char* argv[]) return STATUS_ERROR; duint mem = (duint)MemAllocRemote(0, size); if(!mem) - dputs("VirtualAllocEx failed"); + dputs(QT_TRANSLATE_NOOP("DBG", "VirtualAllocEx failed")); else dprintf(fhex"\n", mem); if(mem) @@ -1537,14 +1537,14 @@ CMDRESULT cbDebugFree(int argc, char* argv[]) } else if(!lastalloc) { - dputs("$lastalloc is zero, provide a page address"); + dputs(QT_TRANSLATE_NOOP("DBG", "$lastalloc is zero, provide a page address")); return STATUS_ERROR; } if(addr == lastalloc) varset("$lastalloc", (duint)0, true); bool ok = !!VirtualFreeEx(fdProcessInfo->hProcess, (void*)addr, 0, MEM_RELEASE); if(!ok) - dputs("VirtualFreeEx failed"); + dputs(QT_TRANSLATE_NOOP("DBG", "VirtualFreeEx failed")); //update memory map MemUpdateMap(); GuiUpdateMemoryView(); @@ -1560,7 +1560,7 @@ CMDRESULT cbDebugMemset(int argc, char* argv[]) duint size; if(argc < 3) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } if(!valfromstring(argv[1], &addr, false) || !valfromstring(argv[2], &value, false)) @@ -1575,7 +1575,7 @@ CMDRESULT cbDebugMemset(int argc, char* argv[]) duint base = MemFindBaseAddr(addr, &size, true); if(!base) { - dputs("Invalid address specified"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid address specified")); return STATUS_ERROR; } duint diff = addr - base; @@ -1584,7 +1584,7 @@ CMDRESULT cbDebugMemset(int argc, char* argv[]) } BYTE fi = value & 0xFF; if(!Fill((void*)addr, size & 0xFFFFFFFF, &fi)) - dputs("Memset failed"); + dputs(QT_TRANSLATE_NOOP("DBG", "Memset failed")); else dprintf("Memory " fhex " (size: %.8X) set to %.2X\n", addr, size & 0xFFFFFFFF, value & 0xFF); return STATUS_CONTINUE; @@ -1609,12 +1609,12 @@ CMDRESULT cbDebugPause(int argc, char* argv[]) { if(!dbgisrunning()) { - dputs("Program is not running"); + dputs(QT_TRANSLATE_NOOP("DBG", "Program is not running")); return STATUS_ERROR; } if(SuspendThread(hActiveThread) == -1) { - dputs("Error suspending thread"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error suspending thread")); return STATUS_ERROR; } duint CIP = GetContextDataEx(hActiveThread, UE_CIP); @@ -1623,7 +1623,7 @@ CMDRESULT cbDebugPause(int argc, char* argv[]) dprintf("Error setting breakpoint at " fhex "! (SetBPX)\n", CIP); if(ResumeThread(hActiveThread) == -1) { - dputs("Error resuming thread"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error resuming thread")); return STATUS_ERROR; } return STATUS_ERROR; @@ -1631,7 +1631,7 @@ CMDRESULT cbDebugPause(int argc, char* argv[]) dbgsetispausedbyuser(true); if(ResumeThread(hActiveThread) == -1) { - dputs("Error resuming thread"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error resuming thread")); return STATUS_ERROR; } return STATUS_CONTINUE; @@ -1644,7 +1644,7 @@ static DWORD WINAPI scyllaThread(void* lpParam) HINSTANCE hScylla = LoadLibraryW(L"Scylla.dll"); if(!hScylla) { - dputs("Error loading Scylla.dll!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error loading Scylla.dll!")); bScyllaLoaded = false; FreeLibrary(hScylla); return 0; @@ -1652,7 +1652,7 @@ static DWORD WINAPI scyllaThread(void* lpParam) ScyllaStartGui = (SCYLLASTARTGUI)GetProcAddress(hScylla, "ScyllaStartGui"); if(!ScyllaStartGui) { - dputs("Could not find export 'ScyllaStartGui' inside Scylla.dll"); + dputs(QT_TRANSLATE_NOOP("DBG", "Could not find export 'ScyllaStartGui' inside Scylla.dll")); bScyllaLoaded = false; FreeLibrary(hScylla); return 0; @@ -1669,7 +1669,7 @@ CMDRESULT cbDebugStartScylla(int argc, char* argv[]) { if(bScyllaLoaded) { - dputs("Scylla is already loaded"); + dputs(QT_TRANSLATE_NOOP("DBG", "Scylla is already loaded")); return STATUS_ERROR; } bScyllaLoaded = true; @@ -1681,7 +1681,7 @@ CMDRESULT cbDebugAttach(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint pid = 0; @@ -1705,15 +1705,15 @@ CMDRESULT cbDebugAttach(int argc, char* argv[]) BOOL wow64 = false, mewow64 = false; if(!IsWow64Process(hProcess, &wow64) || !IsWow64Process(GetCurrentProcess(), &mewow64)) { - dputs("IsWow64Process failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "IsWow64Process failed!")); return STATUS_ERROR; } if((mewow64 && !wow64) || (!mewow64 && wow64)) { #ifdef _WIN64 - dputs("Use x32dbg to debug this process!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x32dbg to debug this process!")); #else - dputs("Use x64dbg to debug this process!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Use x64dbg to debug this process!")); #endif // _WIN64 return STATUS_ERROR; } @@ -1741,7 +1741,7 @@ CMDRESULT cbDebugDump(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -1781,7 +1781,7 @@ CMDRESULT cbDebugStackDump(int argc, char* argv[]) if(base && addr >= base && addr < (base + size)) DebugUpdateStack(addr, csp, true); else - dputs("Invalid stack address!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid stack address!")); return STATUS_CONTINUE; } @@ -1790,12 +1790,12 @@ CMDRESULT cbDebugContinue(int argc, char* argv[]) if(argc < 2) { SetNextDbgContinueStatus(DBG_CONTINUE); - dputs("Exception will be swallowed"); + dputs(QT_TRANSLATE_NOOP("DBG", "Exception will be swallowed")); } else { SetNextDbgContinueStatus(DBG_EXCEPTION_NOT_HANDLED); - dputs("Exception will be thrown in the program"); + dputs(QT_TRANSLATE_NOOP("DBG", "Exception will be thrown in the program")); } return STATUS_CONTINUE; } @@ -1804,7 +1804,7 @@ CMDRESULT cbDebugBpDll(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } DWORD type = UE_ON_LIB_ALL; @@ -1832,15 +1832,15 @@ CMDRESULT cbDebugBcDll(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } if(!LibrarianRemoveBreakPoint(argv[1], UE_ON_LIB_ALL)) { - dputs("Failed to remove DLL breakpoint..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to remove DLL breakpoint...")); return STATUS_ERROR; } - dputs("DLL breakpoint removed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "DLL breakpoint removed!")); return STATUS_CONTINUE; } @@ -1859,7 +1859,7 @@ CMDRESULT cbDebugSwitchthread(int argc, char* argv[]) hActiveThread = ThreadGetHandle((DWORD)threadid); HistoryClear(); DebugUpdateGuiAsync(GetContextDataEx(hActiveThread, UE_CIP), true); - dputs("Thread switched!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Thread switched!")); return STATUS_CONTINUE; } @@ -1877,10 +1877,10 @@ CMDRESULT cbDebugSuspendthread(int argc, char* argv[]) //suspend thread if(SuspendThread(ThreadGetHandle((DWORD)threadid)) == -1) { - dputs("Error suspending thread"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error suspending thread")); return STATUS_ERROR; } - dputs("Thread suspended"); + dputs(QT_TRANSLATE_NOOP("DBG", "Thread suspended")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1899,10 +1899,10 @@ CMDRESULT cbDebugResumethread(int argc, char* argv[]) //resume thread if(ResumeThread(ThreadGetHandle((DWORD)threadid)) == -1) { - dputs("Error resuming thread"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error resuming thread")); return STATUS_ERROR; } - dputs("Thread resumed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Thread resumed!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -1926,10 +1926,10 @@ CMDRESULT cbDebugKillthread(int argc, char* argv[]) if(TerminateThread(ThreadGetHandle((DWORD)threadid), (DWORD)exitcode) != 0) { GuiUpdateAllViews(); - dputs("Thread terminated"); + dputs(QT_TRANSLATE_NOOP("DBG", "Thread terminated")); return STATUS_CONTINUE; } - dputs("Error terminating thread!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error terminating thread!")); return STATUS_ERROR; } @@ -1953,7 +1953,7 @@ CMDRESULT cbDebugSetPriority(int argc, char* argv[]) { if(argc < 3) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint threadid; @@ -1978,7 +1978,7 @@ CMDRESULT cbDebugSetPriority(int argc, char* argv[]) priority = THREAD_PRIORITY_LOWEST; else { - dputs("Unknown priority value, read the help!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown priority value, read the help!")); return STATUS_ERROR; } } @@ -1995,7 +1995,7 @@ CMDRESULT cbDebugSetPriority(int argc, char* argv[]) case THREAD_PRIORITY_LOWEST: break; default: - dputs("Unknown priority value, read the help!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown priority value, read the help!")); return STATUS_ERROR; } } @@ -2007,10 +2007,10 @@ CMDRESULT cbDebugSetPriority(int argc, char* argv[]) //set thread priority if(SetThreadPriority(ThreadGetHandle((DWORD)threadid), (int)priority) == 0) { - dputs("Error setting thread priority"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting thread priority")); return STATUS_ERROR; } - dputs("Thread priority changed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Thread priority changed!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -2019,7 +2019,7 @@ CMDRESULT cbDebugSetthreadname(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint threadid; @@ -2047,7 +2047,7 @@ CMDRESULT cbDebugSetthreadname(int argc, char* argv[]) CMDRESULT cbDebugDownloadSymbol(int argc, char* argv[]) { - dputs("This may take very long, depending on your network connection and data in the debug directory..."); + dputs(QT_TRANSLATE_NOOP("DBG", "This may take very long, depending on your network connection and data in the debug directory...")); char szDefaultStore[MAX_SETTING_SIZE] = ""; const char* szSymbolStore = szDefaultStore; if(!BridgeSettingGet("Symbols", "DefaultStore", szDefaultStore)) //get default symbol store from settings @@ -2059,7 +2059,7 @@ CMDRESULT cbDebugDownloadSymbol(int argc, char* argv[]) { SymDownloadAllSymbols(szSymbolStore); //download symbols for all modules GuiSymbolRefreshCurrent(); - dputs("Done! See symbol log for more information"); + dputs(QT_TRANSLATE_NOOP("DBG", "Done! See symbol log for more information")); return STATUS_CONTINUE; } //get some module information @@ -2072,13 +2072,13 @@ CMDRESULT cbDebugDownloadSymbol(int argc, char* argv[]) wchar_t wszModulePath[MAX_PATH] = L""; if(!GetModuleFileNameExW(fdProcessInfo->hProcess, (HMODULE)modbase, wszModulePath, MAX_PATH)) { - dputs("GetModuleFileNameExA failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "GetModuleFileNameExA failed!")); return STATUS_ERROR; } wchar_t szOldSearchPath[MAX_PATH] = L""; if(!SafeSymGetSearchPathW(fdProcessInfo->hProcess, szOldSearchPath, MAX_PATH)) //backup current search path { - dputs("SymGetSearchPath failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "SymGetSearchPath failed!")); return STATUS_ERROR; } char szServerSearchPath[MAX_PATH * 2] = ""; @@ -2087,20 +2087,20 @@ CMDRESULT cbDebugDownloadSymbol(int argc, char* argv[]) sprintf_s(szServerSearchPath, "SRV*%s*%s", szSymbolCachePath, szSymbolStore); if(!SafeSymSetSearchPathW(fdProcessInfo->hProcess, StringUtils::Utf8ToUtf16(szServerSearchPath).c_str())) //set new search path { - dputs("SymSetSearchPath (1) failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "SymSetSearchPath (1) failed!")); return STATUS_ERROR; } if(!SafeSymUnloadModule64(fdProcessInfo->hProcess, (DWORD64)modbase)) //unload module { SafeSymSetSearchPathW(fdProcessInfo->hProcess, szOldSearchPath); - dputs("SymUnloadModule64 failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "SymUnloadModule64 failed!")); return STATUS_ERROR; } auto symOptions = SafeSymGetOptions(); SafeSymSetOptions(symOptions & ~SYMOPT_IGNORE_CVREC); if(!SafeSymLoadModuleExW(fdProcessInfo->hProcess, 0, wszModulePath, 0, (DWORD64)modbase, 0, 0, 0)) //load module { - dputs("SymLoadModuleEx failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "SymLoadModuleEx failed!")); SafeSymSetOptions(symOptions); SafeSymSetSearchPathW(fdProcessInfo->hProcess, szOldSearchPath); return STATUS_ERROR; @@ -2108,11 +2108,11 @@ CMDRESULT cbDebugDownloadSymbol(int argc, char* argv[]) SafeSymSetOptions(symOptions); if(!SafeSymSetSearchPathW(fdProcessInfo->hProcess, szOldSearchPath)) { - dputs("SymSetSearchPathW (2) failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "SymSetSearchPathW (2) failed!")); return STATUS_ERROR; } GuiSymbolRefreshCurrent(); - dputs("Done! See symbol log for more information"); + dputs(QT_TRANSLATE_NOOP("DBG", "Done! See symbol log for more information")); return STATUS_CONTINUE; } @@ -2125,7 +2125,7 @@ CMDRESULT cbDebugGetJITAuto(int argc, char* argv[]) { if(!dbggetjitauto(&jit_auto, notfound, & actual_arch, NULL)) { - dprintf("Error getting JIT auto %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error getting JIT auto %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2138,14 +2138,14 @@ CMDRESULT cbDebugGetJITAuto(int argc, char* argv[]) actual_arch = x32; else { - dputs("Unknown JIT auto entry type. Use x64 or x32 as parameter."); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown JIT auto entry type. Use x64 or x32 as parameter.")); return STATUS_ERROR; } if(!dbggetjitauto(& jit_auto, actual_arch, NULL, & rw_error)) { if(rw_error == ERROR_RW_NOTWOW64) - dprintf("Error using x64 arg the debugger is not a WOW64 process\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error using x64 arg the debugger is not a WOW64 process\n")); else dprintf("Error getting JIT auto %s\n", argv[1]); return STATUS_ERROR; @@ -2153,10 +2153,10 @@ CMDRESULT cbDebugGetJITAuto(int argc, char* argv[]) } else { - dputs("Unknown JIT auto entry type. Use x64 or x32 as parameter"); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown JIT auto entry type. Use x64 or x32 as parameter")); } - dprintf("JIT auto %s: %s\n", (actual_arch == x64) ? "x64" : "x32", jit_auto ? "ON" : "OFF"); + dprintf(QT_TRANSLATE_NOOP("DBG", "JIT auto %s: %s\n"), (actual_arch == x64) ? "x64" : "x32", jit_auto ? "ON" : "OFF"); return STATUS_CONTINUE; } @@ -2167,12 +2167,12 @@ CMDRESULT cbDebugSetJITAuto(int argc, char* argv[]) bool set_jit_auto; if(!IsProcessElevated()) { - dprintf("Error run the debugger as Admin to setjitauto\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error run the debugger as Admin to setjitauto\n")); return STATUS_ERROR; } if(argc < 2) { - dprintf("Error setting JIT Auto. Use ON:1 or OFF:0 arg or x64/x32, ON:1 or OFF:0.\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error setting JIT Auto. Use ON:1 or OFF:0 arg or x64/x32, ON:1 or OFF:0.\n")); return STATUS_ERROR; } else if(argc == 2) @@ -2183,13 +2183,13 @@ CMDRESULT cbDebugSetJITAuto(int argc, char* argv[]) set_jit_auto = false; else { - dputs("Error unknown parameters. Use ON:1 or OFF:0"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error unknown parameters. Use ON:1 or OFF:0")); return STATUS_ERROR; } if(!dbgsetjitauto(set_jit_auto, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT auto %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT auto %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2204,7 +2204,7 @@ CMDRESULT cbDebugSetJITAuto(int argc, char* argv[]) actual_arch = x32; else { - dputs("Unknown JIT auto entry type. Use x64 or x32 as parameter"); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown JIT auto entry type. Use x64 or x32 as parameter")); return STATUS_ERROR; } @@ -2214,27 +2214,27 @@ CMDRESULT cbDebugSetJITAuto(int argc, char* argv[]) set_jit_auto = false; else { - dputs("Error unknown parameters. Use x86 or x64 and ON:1 or OFF:0\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error unknown parameters. Use x86 or x64 and ON:1 or OFF:0\n")); return STATUS_ERROR; } if(!dbgsetjitauto(set_jit_auto, actual_arch, NULL, & rw_error)) { if(rw_error == ERROR_RW_NOTWOW64) - dprintf("Error using x64 arg the debugger is not a WOW64 process\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error using x64 arg the debugger is not a WOW64 process\n")); else - dprintf("Error getting JIT auto %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error getting JIT auto %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } else { - dputs("Error unknown parameters use x86 or x64, ON/1 or OFF/0\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error unknown parameters use x86 or x64, ON/1 or OFF/0\n")); return STATUS_ERROR; } - dprintf("New JIT auto %s: %s\n", (actual_arch == x64) ? "x64" : "x32", set_jit_auto ? "ON" : "OFF"); + dprintf(QT_TRANSLATE_NOOP("DBG", "New JIT auto %s: %s\n"), (actual_arch == x64) ? "x64" : "x32", set_jit_auto ? "ON" : "OFF"); return STATUS_CONTINUE; } @@ -2246,7 +2246,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) char path[JIT_ENTRY_DEF_SIZE]; if(!IsProcessElevated()) { - dprintf("Error run the debugger as Admin to setjit\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error run the debugger as Admin to setjit\n")); return STATUS_ERROR; } if(argc < 2) @@ -2256,7 +2256,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) jit_debugger_cmd = path; if(!dbgsetjit(jit_debugger_cmd, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2267,13 +2267,13 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) jit_debugger_cmd = oldjit; if(!BridgeSettingGet("JIT", "Old", jit_debugger_cmd)) { - dputs("Error there is no old JIT entry stored."); + dputs(QT_TRANSLATE_NOOP("DBG", "Error there is no old JIT entry stored.")); return STATUS_ERROR; } if(!dbgsetjit(jit_debugger_cmd, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2292,7 +2292,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) jit_debugger_cmd = path; if(!dbgsetjit(jit_debugger_cmd, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } if(get_last_jit) @@ -2307,13 +2307,13 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) if(!BridgeSettingGet("JIT", "Old", jit_debugger_cmd)) { - dputs("Error there is no old JIT entry stored."); + dputs(QT_TRANSLATE_NOOP("DBG", "Error there is no old JIT entry stored.")); return STATUS_ERROR; } if(!dbgsetjit(jit_debugger_cmd, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } BridgeSettingSet("JIT", 0, 0); @@ -2323,7 +2323,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) jit_debugger_cmd = argv[1]; if(!dbgsetjit(jit_debugger_cmd, notfound, & actual_arch, NULL)) { - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2347,7 +2347,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) actual_arch = x32; else { - dputs("Unknown JIT entry type. Use OLD, x64 or x32 as parameter."); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown JIT entry type. Use OLD, x64 or x32 as parameter.")); return STATUS_ERROR; } @@ -2355,15 +2355,15 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[]) if(!dbgsetjit(jit_debugger_cmd, actual_arch, NULL, & rw_error)) { if(rw_error == ERROR_RW_NOTWOW64) - dprintf("Error using x64 arg. The debugger is not a WOW64 process\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error using x64 arg. The debugger is not a WOW64 process\n")); else - dprintf("Error setting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error setting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } else { - dputs("Error unknown parameters. Use old, oldsave, restore, x86 or x64 as parameter."); + dputs(QT_TRANSLATE_NOOP("DBG", "Error unknown parameters. Use old, oldsave, restore, x86 or x64 as parameter.")); return STATUS_ERROR; } @@ -2381,7 +2381,7 @@ CMDRESULT cbDebugGetJIT(int argc, char* argv[]) { if(!dbggetjit(get_entry, notfound, & actual_arch, NULL)) { - dprintf("Error getting JIT %s\n", (actual_arch == x64) ? "x64" : "x32"); + dprintf(QT_TRANSLATE_NOOP("DBG", "Error getting JIT %s\n"), (actual_arch == x64) ? "x64" : "x32"); return STATUS_ERROR; } } @@ -2393,7 +2393,7 @@ CMDRESULT cbDebugGetJIT(int argc, char* argv[]) { if(!BridgeSettingGet("JIT", "Old", (char*) & oldjit)) { - dputs("Error: there is not an OLD JIT entry stored yet."); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: there is not an OLD JIT entry stored yet.")); return STATUS_ERROR; } else @@ -2408,14 +2408,14 @@ CMDRESULT cbDebugGetJIT(int argc, char* argv[]) actual_arch = x32; else { - dputs("Unknown JIT entry type. Use OLD, x64 or x32 as parameter."); + dputs(QT_TRANSLATE_NOOP("DBG", "Unknown JIT entry type. Use OLD, x64 or x32 as parameter.")); return STATUS_ERROR; } if(!dbggetjit(get_entry, actual_arch, NULL, & rw_error)) { if(rw_error == ERROR_RW_NOTWOW64) - dprintf("Error using x64 arg. The debugger is not a WOW64 process\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error using x64 arg. The debugger is not a WOW64 process\n")); else dprintf("Error getting JIT %s\n", argv[1]); return STATUS_ERROR; @@ -2434,7 +2434,7 @@ CMDRESULT cbDebugGetPageRights(int argc, char* argv[]) if(argc != 2 || !valfromstring(argv[1], &addr)) { - dprintf("Error: using an address as arg1\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: using an address as arg1\n")); return STATUS_ERROR; } @@ -2456,7 +2456,7 @@ CMDRESULT cbDebugSetPageRights(int argc, char* argv[]) if(argc < 3 || !valfromstring(argv[1], &addr)) { - dprintf("Error: Using an address as arg1 and as arg2: Execute, ExecuteRead, ExecuteReadWrite, ExecuteWriteCopy, NoAccess, ReadOnly, ReadWrite, WriteCopy. You can add a G at first for add PAGE GUARD, example: GReadOnly\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: Using an address as arg1 and as arg2: Execute, ExecuteRead, ExecuteReadWrite, ExecuteWriteCopy, NoAccess, ReadOnly, ReadWrite, WriteCopy. You can add a G at first for add PAGE GUARD, example: GReadOnly\n")); return STATUS_ERROR; } @@ -2485,7 +2485,7 @@ CMDRESULT cbDebugLoadLib(int argc, char* argv[]) { if(argc < 2) { - dprintf("Error: you must specify the name of the DLL to load\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: you must specify the name of the DLL to load\n")); return STATUS_ERROR; } @@ -2497,13 +2497,13 @@ CMDRESULT cbDebugLoadLib(int argc, char* argv[]) if(!DLLNameMem || !ASMAddr) { - dprintf("Error: couldn't allocate memory in debuggee"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: couldn't allocate memory in debuggee")); return STATUS_ERROR; } if(!MemWrite(DLLNameMem, argv[1], strlen(argv[1]))) { - dprintf("Error: couldn't write process memory"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: couldn't write process memory")); return STATUS_ERROR; } @@ -2517,7 +2517,7 @@ CMDRESULT cbDebugLoadLib(int argc, char* argv[]) if(!valfromstring("kernel32:LoadLibraryA", &LoadLibraryA, false)) { - dprintf("Error: couldn't get kernel32:LoadLibraryA"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: couldn't get kernel32:LoadLibraryA")); return STATUS_ERROR; } @@ -2585,50 +2585,50 @@ void showcommandlineerror(cmdline_error_t* cmdline_error) switch(cmdline_error->type) { case CMDL_ERR_ALLOC: - dprintf("Error allocating memory for cmdline"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error allocating memory for cmdline")); break; case CMDL_ERR_CONVERTUNICODE: - dprintf("Error converting UNICODE cmdline"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error converting UNICODE cmdline")); break; case CMDL_ERR_READ_PEBBASE: - dprintf("Error reading PEB base addres"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error reading PEB base addres")); break; case CMDL_ERR_READ_PROCPARM_CMDLINE: - dprintf("Error reading PEB -> ProcessParameters -> CommandLine UNICODE_STRING"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error reading PEB -> ProcessParameters -> CommandLine UNICODE_STRING")); break; case CMDL_ERR_READ_PROCPARM_PTR: - dprintf("Error reading PEB -> ProcessParameters pointer address"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error reading PEB -> ProcessParameters pointer address")); break; case CMDL_ERR_GET_PEB: - dprintf("Error Getting remote PEB address"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error Getting remote PEB address")); break; case CMDL_ERR_READ_GETCOMMANDLINEBASE: - dprintf("Error Getting command line base address"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error Getting command line base address")); break; case CMDL_ERR_CHECK_GETCOMMANDLINESTORED: - dprintf("Error checking the pattern of the commandline stored"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error checking the pattern of the commandline stored")); break; case CMDL_ERR_WRITE_GETCOMMANDLINESTORED: - dprintf("Error writing the new command line stored"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error writing the new command line stored")); break; case CMDL_ERR_GET_GETCOMMANDLINE: - dprintf("Error getting getcommandline"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error getting getcommandline")); break; case CMDL_ERR_ALLOC_UNICODEANSI_COMMANDLINE: - dprintf("Error allocating the page with UNICODE and ANSI command lines"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error allocating the page with UNICODE and ANSI command lines")); break; case CMDL_ERR_WRITE_ANSI_COMMANDLINE: - dprintf("Error writing the ANSI command line in the page"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error writing the ANSI command line in the page")); break; case CMDL_ERR_WRITE_UNICODE_COMMANDLINE: - dprintf("Error writing the UNICODE command line in the page"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error writing the UNICODE command line in the page")); break; case CMDL_ERR_WRITE_PEBUNICODE_COMMANDLINE: - dprintf("Error writing command line UNICODE in PEB"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error writing command line UNICODE in PEB")); break; default: unkown = true; - dputs("Error getting cmdline"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error getting cmdline")); break; } @@ -2636,7 +2636,7 @@ void showcommandlineerror(cmdline_error_t* cmdline_error) { if(cmdline_error->addr != 0) dprintf(" (Address: " fhex ")", cmdline_error->addr); - dputs(""); + dputs(QT_TRANSLATE_NOOP("DBG", "")); } } @@ -2664,7 +2664,7 @@ CMDRESULT cbDebugSetCmdline(int argc, char* argv[]) if(argc != 2) { - dputs("Error: write the arg1 with the new command line of the process debugged"); + dputs(QT_TRANSLATE_NOOP("DBG", "Error: write the arg1 with the new command line of the process debugged")); return STATUS_ERROR; } @@ -2700,11 +2700,14 @@ CMDRESULT cbDebugSetfreezestack(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } bool freeze = *argv[1] != '0'; dbgsetfreezestack(freeze); - dprintf("Stack is now %s\n", freeze ? "freezed" : "unfreezed"); + if(freeze) + dputs(QT_TRANSLATE_NOOP("DBG", "Stack is now freezed\n")); + else + dputs(QT_TRANSLATE_NOOP("DBG", "Stack is now unfreezed\n")); return STATUS_CONTINUE; } diff --git a/src/dbg/instruction.cpp b/src/dbg/instruction.cpp index fc135a3f..10a78bb3 100644 --- a/src/dbg/instruction.cpp +++ b/src/dbg/instruction.cpp @@ -56,7 +56,7 @@ CMDRESULT cbBadCmd(int argc, char* argv[]) if(valfromstring(*argv, &value, false, false, &valsize, &isvar, &hexonly, true)) //dump variable/value/register/etc { varset("$ans", value, true); - //dprintf("[DEBUG] valsize: %d\n", valsize); + //dprintf(QT_TRANSLATE_NOOP("DBG", "[DEBUG] valsize: %d\n"), valsize); if(valsize) valsize *= 2; else @@ -108,7 +108,7 @@ CMDRESULT cbInstrVar(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } char arg2[deflen] = ""; //var value (optional) @@ -147,7 +147,7 @@ CMDRESULT cbInstrVarDel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } if(!vardel(argv[1], false)) @@ -161,7 +161,7 @@ CMDRESULT cbInstrMov(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments")); return STATUS_ERROR; } @@ -209,7 +209,7 @@ CMDRESULT cbInstrMov(int argc, char* argv[]) //Move data to destination if(!MemWrite(dest, data(), data.size())) { - dprintf("failed to write to " fhex "\n", dest); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to write to %p\n"), dest); return STATUS_ERROR; } GuiUpdateAllViews(); //refresh disassembly/dump/etc @@ -258,13 +258,13 @@ CMDRESULT cbInstrVarList(int argc, char* argv[]) size_t cbsize = 0; if(!varenum(0, &cbsize)) { - dputs("no variables!"); + dputs(QT_TRANSLATE_NOOP("DBG", "no variables!")); return STATUS_CONTINUE; } Memory variables(cbsize, "cbInstrVarList:variables"); if(!varenum(variables(), 0)) { - dputs("error listing variables!"); + dputs(QT_TRANSLATE_NOOP("DBG", "error listing variables!")); return STATUS_ERROR; } @@ -304,16 +304,16 @@ CMDRESULT cbInstrChd(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } if(!DirExists(argv[1])) { - dputs("directory doesn't exist"); + dputs(QT_TRANSLATE_NOOP("DBG", "directory doesn't exist")); return STATUS_ERROR; } SetCurrentDirectoryW(StringUtils::Utf8ToUtf16(argv[1]).c_str()); - dputs("current directory changed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "current directory changed!")); return STATUS_CONTINUE; } @@ -321,7 +321,7 @@ CMDRESULT cbInstrCmt(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -329,7 +329,7 @@ CMDRESULT cbInstrCmt(int argc, char* argv[]) return STATUS_ERROR; if(!CommentSet(addr, argv[2], true)) { - dputs("error setting comment"); + dputs(QT_TRANSLATE_NOOP("DBG", "error setting comment")); return STATUS_ERROR; } return STATUS_CONTINUE; @@ -339,7 +339,7 @@ CMDRESULT cbInstrCmtdel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -347,7 +347,7 @@ CMDRESULT cbInstrCmtdel(int argc, char* argv[]) return STATUS_ERROR; if(!CommentDelete(addr)) { - dputs("error deleting comment"); + dputs(QT_TRANSLATE_NOOP("DBG", "error deleting comment")); return STATUS_ERROR; } GuiUpdateAllViews(); @@ -358,7 +358,7 @@ CMDRESULT cbInstrLbl(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -366,7 +366,7 @@ CMDRESULT cbInstrLbl(int argc, char* argv[]) return STATUS_ERROR; if(!LabelSet(addr, argv[2], true)) { - dputs("error setting label"); + dputs(QT_TRANSLATE_NOOP("DBG", "error setting label")); return STATUS_ERROR; } GuiUpdateAllViews(); @@ -377,7 +377,7 @@ CMDRESULT cbInstrLbldel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -385,7 +385,7 @@ CMDRESULT cbInstrLbldel(int argc, char* argv[]) return STATUS_ERROR; if(!LabelDelete(addr)) { - dputs("error deleting label"); + dputs(QT_TRANSLATE_NOOP("DBG", "error deleting label")); return STATUS_ERROR; } return STATUS_CONTINUE; @@ -395,7 +395,7 @@ CMDRESULT cbInstrBookmarkSet(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -403,10 +403,10 @@ CMDRESULT cbInstrBookmarkSet(int argc, char* argv[]) return STATUS_ERROR; if(!BookmarkSet(addr, true)) { - dputs("failed to set bookmark!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to set bookmark!")); return STATUS_ERROR; } - dputs("bookmark set!"); + dputs(QT_TRANSLATE_NOOP("DBG", "bookmark set!")); return STATUS_CONTINUE; } @@ -414,7 +414,7 @@ CMDRESULT cbInstrBookmarkDel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -422,10 +422,10 @@ CMDRESULT cbInstrBookmarkDel(int argc, char* argv[]) return STATUS_ERROR; if(!BookmarkDelete(addr)) { - dputs("failed to delete bookmark!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to delete bookmark!")); return STATUS_ERROR; } - dputs("bookmark deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "bookmark deleted!")); return STATUS_CONTINUE; } @@ -446,7 +446,7 @@ CMDRESULT cbInstrAssemble(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -457,7 +457,7 @@ CMDRESULT cbInstrAssemble(int argc, char* argv[]) } if(!DbgMemIsValidReadPtr(addr)) { - dprintf("invalid address: " fhex "!\n", addr); + dprintf(QT_TRANSLATE_NOOP("DBG", "invalid address: %p!\n"), addr); return STATUS_ERROR; } bool fillnop = false; @@ -480,7 +480,7 @@ CMDRESULT cbInstrFunctionAdd(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint start = 0; @@ -489,10 +489,10 @@ CMDRESULT cbInstrFunctionAdd(int argc, char* argv[]) return STATUS_ERROR; if(!FunctionAdd(start, end, true)) { - dputs("failed to add function"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to add function")); return STATUS_ERROR; } - dputs("function added!"); + dputs(QT_TRANSLATE_NOOP("DBG", "function added!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -501,7 +501,7 @@ CMDRESULT cbInstrFunctionDel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -509,10 +509,10 @@ CMDRESULT cbInstrFunctionDel(int argc, char* argv[]) return STATUS_ERROR; if(!FunctionDelete(addr)) { - dputs("failed to delete function"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to delete function")); return STATUS_ERROR; } - dputs("function deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "function deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -521,7 +521,7 @@ CMDRESULT cbInstrFunctionClear(int argc, char* argv[]) { FunctionClear(); GuiUpdateAllViews(); - dputs("all functions deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "all functions deleted!")); return STATUS_CONTINUE; } @@ -529,7 +529,7 @@ CMDRESULT cbInstrArgumentAdd(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint start = 0; @@ -538,10 +538,10 @@ CMDRESULT cbInstrArgumentAdd(int argc, char* argv[]) return STATUS_ERROR; if(!ArgumentAdd(start, end, true)) { - dputs("failed to add argument"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to add argument")); return STATUS_ERROR; } - dputs("argument added!"); + dputs(QT_TRANSLATE_NOOP("DBG", "argument added!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -550,7 +550,7 @@ CMDRESULT cbInstrArgumentDel(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -558,10 +558,10 @@ CMDRESULT cbInstrArgumentDel(int argc, char* argv[]) return STATUS_ERROR; if(!ArgumentDelete(addr)) { - dputs("failed to delete argument"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to delete argument")); return STATUS_ERROR; } - dputs("argument deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "argument deleted!")); GuiUpdateAllViews(); return STATUS_CONTINUE; } @@ -570,7 +570,7 @@ CMDRESULT cbInstrArgumentClear(int argc, char* argv[]) { ArgumentClear(); GuiUpdateAllViews(); - dputs("all arguments deleted!"); + dputs(QT_TRANSLATE_NOOP("DBG", "all arguments deleted!")); return STATUS_CONTINUE; } @@ -578,7 +578,7 @@ CMDRESULT cbInstrCmp(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint arg1 = 0; @@ -609,7 +609,7 @@ CMDRESULT cbInstrCmp(int argc, char* argv[]) } varset("$_EZ_FLAG", ezflag, true); varset("$_BS_FLAG", bsflag, true); - //dprintf("$_EZ_FLAG=%d, $_BS_FLAG=%d\n", ezflag, bsflag); + //dprintf(QT_TRANSLATE_NOOP("DBG", "$_EZ_FLAG=%d, $_BS_FLAG=%d\n"), ezflag, bsflag); return STATUS_CONTINUE; } @@ -617,7 +617,7 @@ CMDRESULT cbInstrGpa(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } char newcmd[deflen] = ""; @@ -636,7 +636,7 @@ CMDRESULT cbInstrAdd(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s+%s", argv[1], argv[1], argv[2]).c_str()); @@ -646,7 +646,7 @@ CMDRESULT cbInstrAnd(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s&%s", argv[1], argv[1], argv[2]).c_str()); @@ -656,7 +656,7 @@ CMDRESULT cbInstrDec(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s-1", argv[1], argv[1]).c_str()); @@ -666,7 +666,7 @@ CMDRESULT cbInstrDiv(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s/%s", argv[1], argv[1], argv[2]).c_str()); @@ -676,7 +676,7 @@ CMDRESULT cbInstrInc(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s+1", argv[1], argv[1]).c_str()); @@ -686,7 +686,7 @@ CMDRESULT cbInstrMul(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s*%s", argv[1], argv[1], argv[2]).c_str()); @@ -696,7 +696,7 @@ CMDRESULT cbInstrNeg(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s*-1", argv[1], argv[1]).c_str()); @@ -706,7 +706,7 @@ CMDRESULT cbInstrNot(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,~%s", argv[1], argv[1]).c_str()); @@ -716,7 +716,7 @@ CMDRESULT cbInstrOr(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s|%s", argv[1], argv[1], argv[2]).c_str()); @@ -726,7 +726,7 @@ CMDRESULT cbInstrRol(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } bool signedcalc = valuesignedcalc(); @@ -740,7 +740,7 @@ CMDRESULT cbInstrRor(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } bool signedcalc = valuesignedcalc(); @@ -754,7 +754,7 @@ CMDRESULT cbInstrShl(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } bool signedcalc = valuesignedcalc(); @@ -768,7 +768,7 @@ CMDRESULT cbInstrShr(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } bool signedcalc = valuesignedcalc(); @@ -782,7 +782,7 @@ CMDRESULT cbInstrSub(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s-%s", argv[1], argv[1], argv[2]).c_str()); @@ -793,7 +793,7 @@ CMDRESULT cbInstrTest(int argc, char* argv[]) //TODO: test if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint arg1 = 0; @@ -810,7 +810,7 @@ CMDRESULT cbInstrTest(int argc, char* argv[]) ezflag = 0; varset("$_EZ_FLAG", ezflag, true); varset("$_BS_FLAG", bsflag, true); - //dprintf("$_EZ_FLAG=%d, $_BS_FLAG=%d\n", ezflag, bsflag); + //dprintf(QT_TRANSLATE_NOOP("DBG", "$_EZ_FLAG=%d, $_BS_FLAG=%d\n"), ezflag, bsflag); return STATUS_CONTINUE; } @@ -818,7 +818,7 @@ CMDRESULT cbInstrXor(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return cmddirectexec(StringUtils::sprintf("mov %s,%s^%s", argv[1], argv[1], argv[2]).c_str()); @@ -828,7 +828,7 @@ CMDRESULT cbInstrPush(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint value; @@ -862,7 +862,7 @@ CMDRESULT cbInstrBswap(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint arg1 = 0; @@ -884,15 +884,19 @@ CMDRESULT cbInstrBswap(int argc, char* argv[]) else if(size == 8) result = _byteswap_uint64(arg1); #endif - String swapcmd = StringUtils::sprintf("mov %s, " fhex, argv[1], result); + String swapcmd = StringUtils::sprintf("mov %s, %p", argv[1], result); return cmddirectexec(swapcmd.c_str()); } CMDRESULT cbInstrRefinit(int argc, char* argv[]) { - GuiReferenceInitialize("Script"); - GuiReferenceAddColumn(sizeof(duint) * 2, "Address"); - GuiReferenceAddColumn(0, "Data"); + String TranslatedString; + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Script")); + GuiReferenceInitialize(TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Address")); + GuiReferenceAddColumn(sizeof(duint) * 2, TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Data")); + GuiReferenceAddColumn(0, TranslatedString.c_str()); GuiReferenceSetRowCount(0); GuiReferenceReloadData(); bRefinit = true; @@ -903,7 +907,7 @@ CMDRESULT cbInstrRefadd(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -914,7 +918,7 @@ CMDRESULT cbInstrRefadd(int argc, char* argv[]) int index = GuiReferenceGetRowCount(); GuiReferenceSetRowCount(index + 1); char addr_text[deflen] = ""; - sprintf(addr_text, fhex, addr); + sprintf(addr_text, "%p", addr); GuiReferenceSetCellContent(index, 0, addr_text); GuiReferenceSetCellContent(index, 1, stringformatinline(argv[2]).c_str()); GuiReferenceReloadData(); @@ -931,9 +935,12 @@ static bool cbRefFind(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFIN { if(!disasm || !basicinfo) //initialize { + String TranslatedString; GuiReferenceInitialize(refinfo->name); - GuiReferenceAddColumn(2 * sizeof(duint), "Address"); - GuiReferenceAddColumn(0, "Disassembly"); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Address")); + GuiReferenceAddColumn(sizeof(duint) * 2, TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Disassembly")); + GuiReferenceAddColumn(10, TranslatedString.c_str()); GuiReferenceSetRowCount(0); GuiReferenceReloadData(); return true; @@ -979,7 +986,7 @@ CMDRESULT cbInstrRefFind(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } std::string newCommand = std::string("reffindrange ") + argv[1] + std::string(",") + argv[1]; @@ -996,7 +1003,7 @@ CMDRESULT cbInstrRefFindRange(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } VALUERANGE range; @@ -1014,9 +1021,9 @@ CMDRESULT cbInstrRefFindRange(int argc, char* argv[]) duint ticks = GetTickCount(); char title[256] = ""; if(range.start == range.end) - sprintf_s(title, "Constant: %" fext "X", range.start); + sprintf_s(title, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Constant: %p")), range.start); else - sprintf_s(title, "Range: %" fext "X-%" fext "X", range.start, range.end); + sprintf_s(title, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Range: %p-%p")), range.start, range.end); duint refFindType = CURRENT_REGION; if(argc >= 6 && valfromstring(argv[5], &refFindType, true)) @@ -1024,7 +1031,7 @@ CMDRESULT cbInstrRefFindRange(int argc, char* argv[]) refFindType = CURRENT_REGION; int found = RefFind(addr, size, cbRefFind, &range, false, title, (REFFINDTYPE)refFindType, false); - dprintf("%u reference(s) in %ums\n", found, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u reference(s) in %ums\n"), found, GetTickCount() - ticks); varset("$result", found, false); return STATUS_CONTINUE; } @@ -1033,10 +1040,14 @@ bool cbRefStr(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFINFO* refi { if(!disasm || !basicinfo) //initialize { + String TranslatedString; GuiReferenceInitialize(refinfo->name); - GuiReferenceAddColumn(2 * sizeof(duint), "Address"); - GuiReferenceAddColumn(64, "Disassembly"); - GuiReferenceAddColumn(500, "String"); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Address")); + GuiReferenceAddColumn(2 * sizeof(duint), TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Disassembly")); + GuiReferenceAddColumn(64, TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "String")); + GuiReferenceAddColumn(500, TranslatedString.c_str()); GuiReferenceSetSearchStartCol(2); //only search the strings GuiReferenceReloadData(); return true; @@ -1058,7 +1069,7 @@ bool cbRefStr(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFINFO* refi if(found) { char addrText[20] = ""; - sprintf(addrText, fhex, disasm->Address()); + sprintf(addrText, "%p", disasm->Address()); GuiReferenceSetRowCount(refinfo->refcount + 1); GuiReferenceSetCellContent(refinfo->refcount, 0, addrText); char disassembly[4096] = ""; @@ -1073,8 +1084,10 @@ bool cbRefStr(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFINFO* refi CMDRESULT cbInstrRefStr(int argc, char* argv[]) { + duint ticks = GetTickCount(); duint addr; duint size = 0; + String TranslatedString; // If not specified, assume CURRENT_REGION by default if(argc < 2 || !valfromstring(argv[1], &addr, true)) @@ -1088,9 +1101,9 @@ CMDRESULT cbInstrRefStr(int argc, char* argv[]) if(refFindType != CURRENT_REGION && refFindType != CURRENT_MODULE && refFindType != ALL_MODULES) refFindType = CURRENT_REGION; - duint ticks = GetTickCount(); - int found = RefFind(addr, size, cbRefStr, 0, false, "Strings", (REFFINDTYPE)refFindType, false); - dprintf("%u string(s) in %ums\n", found, GetTickCount() - ticks); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Strings")); + int found = RefFind(addr, size, cbRefStr, 0, false, TranslatedString.c_str(), (REFFINDTYPE)refFindType, false); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u string(s) in %ums\n"), found, GetTickCount() - ticks); varset("$result", found, false); return STATUS_CONTINUE; } @@ -1099,18 +1112,18 @@ CMDRESULT cbInstrSetstr(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } varnew(argv[1], 0, VAR_USER); if(!vargettype(argv[1], 0)) { - dprintf("no such variable \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "no such variable \"%s\"!\n"), argv[1]); return STATUS_ERROR; } if(!varset(argv[1], argv[2], false)) { - dprintf("failed to set variable \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to set variable \"%s\"!\n"), argv[1]); return STATUS_ERROR; } cmddirectexec(StringUtils::sprintf("getstr \"%s\"", argv[1]).c_str()); @@ -1121,30 +1134,30 @@ CMDRESULT cbInstrGetstr(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } VAR_VALUE_TYPE valtype; if(!vargettype(argv[1], 0, &valtype)) { - dprintf("no such variable \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "no such variable \"%s\"!\n"), argv[1]); return STATUS_ERROR; } if(valtype != VAR_STRING) { - dprintf("variable \"%s\" is not a string!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "variable \"%s\" is not a string!\n"), argv[1]); return STATUS_ERROR; } int size; if(!varget(argv[1], (char*)0, &size, 0) || !size) { - dprintf("failed to get variable size \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to get variable size \"%s\"!\n"), argv[1]); return STATUS_ERROR; } Memory string(size + 1, "cbInstrGetstr:string"); if(!varget(argv[1], string(), &size, 0)) { - dprintf("failed to get variable data \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to get variable data \"%s\"!\n"), argv[1]); return STATUS_ERROR; } dprintf("%s=\"%s\"\n", argv[1], string()); @@ -1155,44 +1168,44 @@ CMDRESULT cbInstrCopystr(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } VAR_VALUE_TYPE valtype; if(!vargettype(argv[2], 0, &valtype)) { - dprintf("no such variable \"%s\"!\n", argv[2]); + dprintf(QT_TRANSLATE_NOOP("DBG", "no such variable \"%s\"!\n"), argv[2]); return STATUS_ERROR; } if(valtype != VAR_STRING) { - dprintf("variable \"%s\" is not a string!\n", argv[2]); + dprintf(QT_TRANSLATE_NOOP("DBG", "variable \"%s\" is not a string!\n"), argv[2]); return STATUS_ERROR; } int size; if(!varget(argv[2], (char*)0, &size, 0) || !size) { - dprintf("failed to get variable size \"%s\"!\n", argv[2]); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to get variable size \"%s\"!\n"), argv[2]); return STATUS_ERROR; } Memory string(size + 1, "cbInstrGetstr:string"); if(!varget(argv[2], string(), &size, 0)) { - dprintf("failed to get variable data \"%s\"!\n", argv[2]); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to get variable data \"%s\"!\n"), argv[2]); return STATUS_ERROR; } duint addr; if(!valfromstring(argv[1], &addr)) { - dprintf("invalid address \"%s\"!\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "invalid address \"%s\"!\n"), argv[1]); return STATUS_ERROR; } if(!MemPatch(addr, string(), strlen(string()))) { - dputs("memwrite failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "memwrite failed!")); return STATUS_ERROR; } - dputs("string written!"); + dputs(QT_TRANSLATE_NOOP("DBG", "string written!")); GuiUpdateAllViews(); GuiUpdatePatches(); return STATUS_CONTINUE; @@ -1202,7 +1215,7 @@ CMDRESULT cbInstrFind(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -1221,13 +1234,13 @@ CMDRESULT cbInstrFind(int argc, char* argv[]) duint base = MemFindBaseAddr(addr, &size, true); if(!base) { - dprintf("invalid memory address " fhex "!\n", addr); + dprintf(QT_TRANSLATE_NOOP("DBG", "invalid memory address %p!\n"), addr); return STATUS_ERROR; } Memory data(size, "cbInstrFind:data"); if(!MemRead(base, data(), size)) { - dputs("failed to read memory!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to read memory!")); return STATUS_ERROR; } duint start = addr - base; @@ -1253,7 +1266,7 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -1273,13 +1286,13 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) duint base = MemFindBaseAddr(addr, &size, true); if(!base) { - dprintf("invalid memory address " fhex "!\n", addr); + dprintf(QT_TRANSLATE_NOOP("DBG", "invalid memory address %p!\n"), addr); return STATUS_ERROR; } Memory data(size, "cbInstrFindAll:data"); if(!MemRead(base, data(), size)) { - dputs("failed to read memory!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to read memory!")); return STATUS_ERROR; } duint start = addr - base; @@ -1305,7 +1318,7 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) if(len > 16) strcat_s(patternshort, "..."); char patterntitle[256] = ""; - sprintf_s(patterntitle, "Pattern: %s", patternshort); + sprintf_s(patterntitle, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Pattern: %s")), patternshort); GuiReferenceInitialize(patterntitle); GuiReferenceAddColumn(2 * sizeof(duint), "Address"); if(findData) @@ -1320,7 +1333,7 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) std::vector searchpattern; if(!patterntransform(pattern, searchpattern)) { - dputs("failed to transform pattern!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to transform pattern!")); return STATUS_ERROR; } while(refCount < maxFindResults) @@ -1331,7 +1344,7 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) i += foundoffset + 1; result = addr + i - 1; char msg[deflen] = ""; - sprintf(msg, fhex, result); + sprintf(msg, "%p", result); GuiReferenceSetRowCount(refCount + 1); GuiReferenceSetCellContent(refCount, 0, msg); if(findData) @@ -1355,7 +1368,7 @@ CMDRESULT cbInstrFindAll(int argc, char* argv[]) refCount++; } GuiReferenceReloadData(); - dprintf("%d occurrences found in %ums\n", refCount, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d occurrences found in %ums\n"), refCount, GetTickCount() - ticks); varset("$result", refCount, false); return STATUS_CONTINUE; } @@ -1364,7 +1377,7 @@ CMDRESULT cbInstrFindMemAll(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -1383,7 +1396,7 @@ CMDRESULT cbInstrFindMemAll(int argc, char* argv[]) std::vector searchpattern; if(!patterntransform(pattern, searchpattern)) { - dputs("failed to transform pattern!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to transform pattern!")); return STATUS_ERROR; } @@ -1414,7 +1427,7 @@ CMDRESULT cbInstrFindMemAll(int argc, char* argv[]) std::vector results; if(!MemFindInMap(searchPages, searchpattern, results, maxFindResults)) { - dputs("MemFindInMap failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "MemFindInMap failed!")); return STATUS_ERROR; } @@ -1437,7 +1450,7 @@ CMDRESULT cbInstrFindMemAll(int argc, char* argv[]) for(duint result : results) { char msg[deflen] = ""; - sprintf(msg, fhex, result); + sprintf(msg, "%p", result); GuiReferenceSetRowCount(refCount + 1); GuiReferenceSetCellContent(refCount, 0, msg); if(findData) @@ -1461,7 +1474,7 @@ CMDRESULT cbInstrFindMemAll(int argc, char* argv[]) } GuiReferenceReloadData(); - dprintf("%d occurrences found in %ums\n", refCount, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d occurrences found in %ums\n"), refCount, GetTickCount() - ticks); varset("$result", refCount, false); return STATUS_CONTINUE; @@ -1526,7 +1539,7 @@ CMDRESULT cbInstrModCallFind(int argc, char* argv[]) duint ticks = GetTickCount(); int found = RefFind(addr, size, cbModCallFind, 0, false, "Calls", (REFFINDTYPE)refFindType, false); - dprintf("%u call(s) in %ums\n", found, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u call(s) in %ums\n"), found, GetTickCount() - ticks); varset("$result", found, false); return STATUS_CONTINUE; } @@ -1543,7 +1556,7 @@ CMDRESULT cbInstrCommentList(int argc, char* argv[]) CommentEnum(0, &cbsize); if(!cbsize) { - dputs("no comments"); + dputs(QT_TRANSLATE_NOOP("DBG", "no comments")); return STATUS_CONTINUE; } Memory comments(cbsize, "cbInstrCommentList:comments"); @@ -1561,7 +1574,7 @@ CMDRESULT cbInstrCommentList(int argc, char* argv[]) GuiReferenceSetCellContent(i, 2, comments()[i].text); } varset("$result", count, false); - dprintf("%d comment(s) listed in Reference View\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d comment(s) listed in Reference View\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1578,7 +1591,7 @@ CMDRESULT cbInstrLabelList(int argc, char* argv[]) LabelEnum(0, &cbsize); if(!cbsize) { - dputs("no labels"); + dputs(QT_TRANSLATE_NOOP("DBG", "no labels")); return STATUS_CONTINUE; } Memory labels(cbsize, "cbInstrLabelList:labels"); @@ -1596,7 +1609,7 @@ CMDRESULT cbInstrLabelList(int argc, char* argv[]) GuiReferenceSetCellContent(i, 2, labels()[i].text); } varset("$result", count, false); - dprintf("%d label(s) listed in Reference View\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d label(s) listed in Reference View\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1612,7 +1625,7 @@ CMDRESULT cbInstrBookmarkList(int argc, char* argv[]) BookmarkEnum(0, &cbsize); if(!cbsize) { - dputs("No bookmarks found"); + dputs(QT_TRANSLATE_NOOP("DBG", "No bookmarks found")); return STATUS_CONTINUE; } Memory bookmarks(cbsize, "cbInstrBookmarkList:bookmarks"); @@ -1629,7 +1642,7 @@ CMDRESULT cbInstrBookmarkList(int argc, char* argv[]) GuiReferenceSetCellContent(i, 1, disassembly); } varset("$result", count, false); - dprintf("%d bookmark(s) listed\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d bookmark(s) listed\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1647,7 +1660,7 @@ CMDRESULT cbInstrFunctionList(int argc, char* argv[]) FunctionEnum(0, &cbsize); if(!cbsize) { - dputs("No functions"); + dputs(QT_TRANSLATE_NOOP("DBG", "No functions")); return STATUS_CONTINUE; } Memory functions(cbsize, "cbInstrFunctionList:functions"); @@ -1675,7 +1688,7 @@ CMDRESULT cbInstrFunctionList(int argc, char* argv[]) } } varset("$result", count, false); - dprintf("%d function(s) listed\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d function(s) listed\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1693,7 +1706,7 @@ CMDRESULT cbInstrArgumentList(int argc, char* argv[]) ArgumentEnum(0, &cbsize); if(!cbsize) { - dputs("No arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "No arguments")); return STATUS_CONTINUE; } Memory arguments(cbsize, "cbInstrArgumentList:arguments"); @@ -1721,7 +1734,7 @@ CMDRESULT cbInstrArgumentList(int argc, char* argv[]) } } varset("$result", count, false); - dprintf("%d argument(s) listed\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d argument(s) listed\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1739,7 +1752,7 @@ CMDRESULT cbInstrLoopList(int argc, char* argv[]) LoopEnum(0, &cbsize); if(!cbsize) { - dputs("no loops"); + dputs(QT_TRANSLATE_NOOP("DBG", "no loops")); return STATUS_CONTINUE; } Memory loops(cbsize, "cbInstrLoopList:loops"); @@ -1767,7 +1780,7 @@ CMDRESULT cbInstrLoopList(int argc, char* argv[]) } } varset("$result", count, false); - dprintf("%d loop(s) listed\n", count); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d loop(s) listed\n"), count); GuiReferenceReloadData(); return STATUS_CONTINUE; } @@ -1788,9 +1801,12 @@ static bool cbFindAsm(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFIN { if(!disasm || !basicinfo) //initialize { + String TranslatedString; GuiReferenceInitialize(refinfo->name); - GuiReferenceAddColumn(2 * sizeof(duint), "Address"); - GuiReferenceAddColumn(0, "Disassembly"); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Address")); + GuiReferenceAddColumn(2 * sizeof(duint), TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Disassembly")); + GuiReferenceAddColumn(0, TranslatedString.c_str()); GuiReferenceReloadData(); return true; } @@ -1799,7 +1815,7 @@ static bool cbFindAsm(Capstone* disasm, BASIC_INSTRUCTION_INFO* basicinfo, REFIN if(found) { char addrText[20] = ""; - sprintf(addrText, fhex, disasm->Address()); + sprintf(addrText, "%p", disasm->Address()); GuiReferenceSetRowCount(refinfo->refcount + 1); GuiReferenceSetCellContent(refinfo->refcount, 0, addrText); char disassembly[GUI_MAX_DISASSEMBLY_SIZE] = ""; @@ -1815,7 +1831,7 @@ CMDRESULT cbInstrFindAsm(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } @@ -1848,7 +1864,7 @@ CMDRESULT cbInstrFindAsm(int argc, char* argv[]) char title[256] = ""; sprintf_s(title, "Command: \"%s\"", basicinfo.instruction); int found = RefFind(addr, size, cbFindAsm, (void*)&basicinfo.instruction[0], false, title, (REFFINDTYPE)refFindType, true); - dprintf("%u result(s) in %ums\n", found, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u result(s) in %ums\n"), found, GetTickCount() - ticks); varset("$result", found, false); return STATUS_CONTINUE; } @@ -1929,7 +1945,7 @@ static int yaraScanCallback(int message, void* message_data, void* user_data) scanInfo->index++; char addr_text[deflen] = ""; - sprintf(addr_text, fhex, addr); + sprintf(addr_text, "%p", addr); GuiReferenceSetCellContent(index, 0, addr_text); //Address String ruleFullName = ""; ruleFullName += yrRule->identifier; @@ -1971,7 +1987,7 @@ static int yaraScanCallback(int message, void* message_data, void* user_data) addr = base + offset; if(debug) - dprintf("[YARA] String \"%s\" : %s on 0x%" fext "X\n", string->identifier, pattern.c_str(), addr); + dprintf("[YARA] String \"%s\" : %s on %p\n", string->identifier, pattern.c_str(), addr); addReference(addr, string->identifier, pattern); } @@ -1991,7 +2007,7 @@ static int yaraScanCallback(int message, void* message_data, void* user_data) case CALLBACK_MSG_SCAN_FINISHED: { if(debug) - dputs("[YARA] Scan finished!"); + dputs(QT_TRANSLATE_NOOP("DBG", "[YARA] Scan finished!")); } break; @@ -2010,7 +2026,7 @@ CMDRESULT cbInstrYara(int argc, char* argv[]) { if(argc < 2) //yara rulesFile, addr_of_mempage, size_of_scan { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint addr = 0; @@ -2050,7 +2066,7 @@ CMDRESULT cbInstrYara(int argc, char* argv[]) char modPath[MAX_PATH] = ""; if(!ModPathFromAddr(base, modPath, MAX_PATH)) { - dprintf("failed to get module path for " fhex "!\n", base); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to get module path for %p!\n"), base); return STATUS_ERROR; } if(!FileHelper::ReadAllData(modPath, rawFileData)) @@ -2065,7 +2081,7 @@ CMDRESULT cbInstrYara(int argc, char* argv[]) memcpy(data(), rawFileData.data(), size); else if(!MemRead(base, data(), size)) { - dprintf("failed to read memory page %p[%X]!\n", base, size); + dprintf(QT_TRANSLATE_NOOP("DBG", "failed to read memory page %p[%X]!\n"), base, size); return STATUS_ERROR; } @@ -2100,40 +2116,44 @@ CMDRESULT cbInstrYara(int argc, char* argv[]) fullName += modname; fullName += ")"; //nanana, very ugly code (long live open source) GuiReferenceInitialize(fullName.c_str()); - GuiReferenceAddColumn(sizeof(duint) * 2, "Address"); - GuiReferenceAddColumn(48, "Rule"); - GuiReferenceAddColumn(0, "Data"); + String TranslatedString; + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Address")); + GuiReferenceAddColumn(sizeof(duint) * 2, TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Rule")); + GuiReferenceAddColumn(48, TranslatedString.c_str()); + TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Data")); + GuiReferenceAddColumn(10, TranslatedString.c_str()); GuiReferenceSetRowCount(0); GuiReferenceReloadData(); YaraScanInfo scanInfo(base, rawFile, argv[2], settingboolget("Engine", "YaraDebug")); duint ticks = GetTickCount(); - dputs("[YARA] Scan started..."); + dputs(QT_TRANSLATE_NOOP("DBG", "[YARA] Scan started...")); int err = yr_rules_scan_mem(yrRules, data(), size, 0, yaraScanCallback, &scanInfo, 0); GuiReferenceReloadData(); switch(err) { case ERROR_SUCCESS: - dprintf("%u scan results in %ums...\n", scanInfo.index, GetTickCount() - ticks); + dprintf(QT_TRANSLATE_NOOP("DBG", "%u scan results in %ums...\n"), scanInfo.index, GetTickCount() - ticks); bSuccess = true; break; case ERROR_TOO_MANY_MATCHES: - dputs("too many matches!"); + dputs(QT_TRANSLATE_NOOP("DBG", "too many matches!")); break; default: - dputs("error while scanning memory!"); + dputs(QT_TRANSLATE_NOOP("DBG", "error while scanning memory!")); break; } yr_rules_destroy(yrRules); } else - dputs("error while getting the rules!"); + dputs(QT_TRANSLATE_NOOP("DBG", "error while getting the rules!")); } else - dputs("errors in the rules file!"); + dputs(QT_TRANSLATE_NOOP("DBG", "errors in the rules file!")); yr_compiler_destroy(yrCompiler); } else - dputs("yr_compiler_create failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "yr_compiler_create failed!")); return bSuccess ? STATUS_CONTINUE : STATUS_ERROR; } @@ -2141,7 +2161,7 @@ CMDRESULT cbInstrYaramod(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } if(!ModBaseFromName(argv[2])) @@ -2179,21 +2199,21 @@ CMDRESULT cbInstrCapstone(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments..."); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments...")); return STATUS_ERROR; } duint addr = 0; if(!valfromstring(argv[1], &addr) || !MemIsValidReadPtr(addr)) { - dprintf("invalid address \"%s\"\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "invalid address \"%s\"\n"), argv[1]); return STATUS_ERROR; } unsigned char data[16]; if(!MemRead(addr, data, sizeof(data))) { - dprintf("could not read memory at %p\n", addr); + dprintf(QT_TRANSLATE_NOOP("DBG", "could not read memory at %p\n"), addr); return STATUS_ERROR; } @@ -2204,7 +2224,7 @@ CMDRESULT cbInstrCapstone(int argc, char* argv[]) Capstone cp; if(!cp.Disassemble(addr, data)) { - dprintf("failed to disassemble!"); + dputs(QT_TRANSLATE_NOOP("DBG", "failed to disassemble!\n")); return STATUS_ERROR; } @@ -2212,7 +2232,7 @@ CMDRESULT cbInstrCapstone(int argc, char* argv[]) const cs_x86 & x86 = cp.x86(); int argcount = x86.op_count; dprintf("%s %s\n", instr->mnemonic, instr->op_str); - dprintf("size: %d, id: %d, opcount: %d\n", cp.Size(), cp.GetId(), cp.OpCount()); + dprintf(QT_TRANSLATE_NOOP("DBG", "size: %d, id: %d, opcount: %d\n"), cp.Size(), cp.GetId(), cp.OpCount()); for(int i = 0; i < argcount; i++) { const cs_x86_op & op = x86.operands[i]; @@ -2220,16 +2240,16 @@ CMDRESULT cbInstrCapstone(int argc, char* argv[]) switch(op.type) { case X86_OP_REG: - dprintf("register: %s\n", cp.RegName((x86_reg)op.reg)); + dprintf(QT_TRANSLATE_NOOP("DBG", "register: %s\n"), cp.RegName((x86_reg)op.reg)); break; case X86_OP_IMM: - dprintf("immediate: 0x%p\n", op.imm); + dprintf(QT_TRANSLATE_NOOP("DBG", "immediate: 0x%p\n"), op.imm); break; case X86_OP_MEM: { //[base + index * scale +/- disp] const x86_op_mem & mem = op.mem; - dprintf("memory segment: %s, base: %s, index: %s, scale: %d, displacement: 0x%p\n", + dprintf(QT_TRANSLATE_NOOP("DBG", "memory segment: %s, base: %s, index: %s, scale: %d, displacement: 0x%p\n"), cp.RegName((x86_reg)mem.segment), cp.RegName((x86_reg)mem.base), cp.RegName((x86_reg)mem.index), @@ -2343,18 +2363,18 @@ CMDRESULT cbInstrVirtualmod(int argc, char* argv[]) { if(argc < 3) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint base; if(!valfromstring(argv[2], &base)) { - dputs("Invalid parameter [base]!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid parameter [base]!")); return STATUS_ERROR; } if(!MemIsValidReadPtr(base)) { - dputs("Invalid memory address!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid memory address!")); return STATUS_ERROR; } duint size; @@ -2362,13 +2382,13 @@ CMDRESULT cbInstrVirtualmod(int argc, char* argv[]) base = MemFindBaseAddr(base, &size); else if(!valfromstring(argv[3], &size)) { - dputs("Invalid parameter [size]"); + dputs(QT_TRANSLATE_NOOP("DBG", "Invalid parameter [size]")); return STATUS_ERROR; } auto name = String("virtual:\\") + (argv[1]); if(!ModLoad(base, size, name.c_str())) { - dputs("Failed to load module (ModLoad)..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to load module (ModLoad)...")); return STATUS_ERROR; } @@ -2385,14 +2405,14 @@ CMDRESULT cbInstrVisualize(int argc, char* argv[]) { if(argc < 3) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } duint start; duint maxaddr; if(!valfromstring(argv[1], &start) || !valfromstring(argv[2], &maxaddr)) { - dputs("invalid arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "invalid arguments!")); return STATUS_ERROR; } //actual algorithm @@ -2484,28 +2504,28 @@ CMDRESULT cbInstrMeminfo(int argc, char* argv[]) { if(argc < 3) { - dputs("usage: meminfo a/r, addr"); + dputs(QT_TRANSLATE_NOOP("DBG", "usage: meminfo a/r, addr")); return STATUS_ERROR; } duint addr; if(!valfromstring(argv[2], &addr)) { - dputs("invalid argument"); + dputs(QT_TRANSLATE_NOOP("DBG", "invalid argument")); return STATUS_ERROR; } if(argv[1][0] == 'a') { unsigned char buf = 0; if(!ReadProcessMemory(fdProcessInfo->hProcess, (void*)addr, &buf, sizeof(buf), nullptr)) - dputs("ReadProcessMemory failed!"); + dputs(QT_TRANSLATE_NOOP("DBG", "ReadProcessMemory failed!")); else - dprintf("data: %02X\n", buf); + dprintf(QT_TRANSLATE_NOOP("DBG", "data: %02X\n"), buf); } else if(argv[1][0] == 'r') { MemUpdateMap(); GuiUpdateMemoryView(); - dputs("memory map updated!"); + dputs(QT_TRANSLATE_NOOP("DBG", "memory map updated!")); } return STATUS_CONTINUE; } @@ -2514,7 +2534,7 @@ CMDRESULT cbInstrSetMaxFindResult(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } duint num; @@ -2531,7 +2551,7 @@ CMDRESULT cbInstrSavedata(int argc, char* argv[]) { if(argc < 4) //savedata filename,addr,size { - dputs("Not enough arguments..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments...")); return STATUS_ERROR; } duint addr, size; @@ -2541,17 +2561,17 @@ CMDRESULT cbInstrSavedata(int argc, char* argv[]) Memory data(size); if(!MemRead(addr, data(), data.size())) { - dputs("Failed to read memory..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to read memory...")); return STATUS_ERROR; } if(!FileHelper::WriteAllData(argv[1], data(), data.size())) { - dputs("Failed to write file..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to write file...")); return STATUS_ERROR; } - dprintf("%p[% " fext "X] written to \"%s\" !\n", addr, size, argv[1]); + dprintf("%p[%p] written to \"%s\" !\n", addr, size, argv[1]); return STATUS_CONTINUE; } @@ -2562,7 +2582,7 @@ CMDRESULT cbInstrMnemonichelp(int argc, char* argv[]) return STATUS_ERROR; auto description = MnemonicHelp::getDescription(argv[1]); if(!description.length()) - dputs("no description or empty description"); + dputs(QT_TRANSLATE_NOOP("DBG", "no description or empty description")); else { auto padding = "================================================================"; @@ -2584,7 +2604,7 @@ CMDRESULT cbGetPrivilegeState(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } DWORD returnLength; @@ -2624,13 +2644,13 @@ CMDRESULT cbEnablePrivilege(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } LUID luid; if(LookupPrivilegeValueW(nullptr, StringUtils::Utf8ToUtf16(argv[1]).c_str(), &luid) == 0) { - dprintf("Could not find the specified privilege: %s\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "Could not find the specified privilege: %s\n"), argv[1]); return STATUS_ERROR; } TOKEN_PRIVILEGES Privilege; @@ -2645,13 +2665,13 @@ CMDRESULT cbDisablePrivilege(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } LUID luid; if(LookupPrivilegeValueW(nullptr, StringUtils::Utf8ToUtf16(argv[1]).c_str(), &luid) == 0) { - dprintf("Could not find the specified privilege: %s\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "Could not find the specified privilege: %s\n"), argv[1]); return STATUS_ERROR; } TOKEN_PRIVILEGES Privilege; @@ -2666,7 +2686,7 @@ CMDRESULT cbHandleClose(int argc, char* argv[]) { if(argc < 2) { - dputs("Not enough arguments"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments")); return STATUS_ERROR; } duint handle; @@ -2674,10 +2694,10 @@ CMDRESULT cbHandleClose(int argc, char* argv[]) return STATUS_ERROR; if(!DuplicateHandle(fdProcessInfo->hProcess, HANDLE(handle), NULL, NULL, 0, FALSE, DUPLICATE_CLOSE_SOURCE)) { - dprintf("DuplicateHandle failed: %s\n", ErrorCodeToName(GetLastError()).c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", "DuplicateHandle failed: %s\n"), ErrorCodeToName(GetLastError()).c_str()); return STATUS_ERROR; } - dprintf("Handle %" fext "X closed!\n", handle); + dprintf(QT_TRANSLATE_NOOP("DBG", "Handle %p closed!\n"), handle); return STATUS_CONTINUE; } @@ -2709,7 +2729,7 @@ CMDRESULT cbInstrBriefcheck(int argc, char* argv[]) if(brief.length() || reported.count(mnem)) continue; reported.insert(mnem); - dprintf(fhex ": %s\n", cp.Address(), mnem.c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", "%p: %s\n"), cp.Address(), mnem.c_str()); } return STATUS_CONTINUE; } @@ -2739,14 +2759,14 @@ static void printExhandlers(const char* name, const std::vector & entries { if(!entries.size()) return; - dprintf("%s:\n", name); + dprintf(QT_TRANSLATE_NOOP("DBG", "%s:\n"), name); for(auto entry : entries) { auto symbolic = SymGetSymbolicName(entry); if(symbolic.length()) - dprintf(fhex " %s\n", entry, symbolic.c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", "%p %s\n"), entry, symbolic.c_str()); else - dprintf(fhex "\n", entry); + dprintf(QT_TRANSLATE_NOOP("DBG", "%p\n"), entry); } } @@ -2766,23 +2786,23 @@ CMDRESULT cbInstrExhandlers(int argc, char* argv[]) printExhandlers("StructuredExceptionHandler (SEH)", handlers); } else - dputs("Failed to get SEH (disabled?)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to get SEH (disabled?)")); #endif //_WIN64 if(ExHandlerGetInfo(EX_HANDLER_VEH, entries)) printExhandlers("VectoredExceptionHandler (VEH)", entries); else - dputs("Failed to get VEH (loaded symbols for ntdll.dll?)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to get VEH (loaded symbols for ntdll.dll?)")); if(ExHandlerGetInfo(EX_HANDLER_VCH, entries)) printExhandlers("VectoredContinueHandler (VCH)", entries); else - dputs("Failed to get VCH (loaded symbols for ntdll.dll?)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to get VCH (loaded symbols for ntdll.dll?)")); if(ExHandlerGetInfo(EX_HANDLER_UNHANDLED, entries)) printExhandlers("UnhandledExceptionFilter", entries); else - dputs("Failed to get UnhandledExceptionFilter (loaded symbols for kernelbase.dll?)"); + dputs(QT_TRANSLATE_NOOP("DBG", "Failed to get UnhandledExceptionFilter (loaded symbols for kernelbase.dll?)")); return STATUS_CONTINUE; } @@ -2797,30 +2817,30 @@ CMDRESULT cbInstrExinfo(int argc, char* argv[]) { auto info = getLastExceptionInfo(); const auto & record = info.ExceptionRecord; - dputs("EXCEPTION_DEBUG_INFO:"); - dprintf(" dwFirstChance: %X\n", info.dwFirstChance); + dputs(QT_TRANSLATE_NOOP("DBG", "EXCEPTION_DEBUG_INFO:")); + dprintf(QT_TRANSLATE_NOOP("DBG", " dwFirstChance: %X\n"), info.dwFirstChance); auto exceptionName = ExceptionCodeToName(record.ExceptionCode); if(!exceptionName.size()) //if no exception was found, try the error codes (RPC_S_*) exceptionName = ErrorCodeToName(record.ExceptionCode); if(exceptionName.size()) - dprintf(" ExceptionCode: %08X (%s)\n", record.ExceptionCode, exceptionName.c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", " ExceptionCode: %08X (%s)\n"), record.ExceptionCode, exceptionName.c_str()); else - dprintf(" ExceptionCode: %08X\n", record.ExceptionCode); - dprintf(" ExceptionFlags: %08X\n", record.ExceptionFlags); + dprintf(QT_TRANSLATE_NOOP("DBG", " ExceptionCode: %08X\n"), record.ExceptionCode); + dprintf(QT_TRANSLATE_NOOP("DBG", " ExceptionFlags: %08X\n"), record.ExceptionFlags); auto symbolic = SymGetSymbolicName(duint(record.ExceptionAddress)); if(symbolic.length()) - dprintf(" ExceptionAddress: " fhex " %s\n", record.ExceptionAddress, symbolic.c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", " ExceptionAddress: %p %s\n"), record.ExceptionAddress, symbolic.c_str()); else - dprintf(" ExceptionAddress: " fhex "\n", record.ExceptionAddress); - dprintf(" NumberParameters: %d\n", record.NumberParameters); + dprintf(QT_TRANSLATE_NOOP("DBG", " ExceptionAddress: %p\n"), record.ExceptionAddress); + dprintf(QT_TRANSLATE_NOOP("DBG", " NumberParameters: %d\n"), record.NumberParameters); if(record.NumberParameters) for(DWORD i = 0; i < record.NumberParameters; i++) { symbolic = SymGetSymbolicName(duint(record.ExceptionInformation[i])); if(symbolic.length()) - dprintf("ExceptionInformation[%02d]: " fhex " %s\n", i, record.ExceptionInformation[i], symbolic.c_str()); + dprintf(QT_TRANSLATE_NOOP("DBG", "ExceptionInformation[%02d]: %p %s\n"), i, record.ExceptionInformation[i], symbolic.c_str()); else - dprintf("ExceptionInformation[%02d]: " fhex "\n", i, record.ExceptionInformation[i]); + dprintf(QT_TRANSLATE_NOOP("DBG", "ExceptionInformation[%02d]: %p\n"), i, record.ExceptionInformation[i]); } return STATUS_CONTINUE; } @@ -2836,7 +2856,7 @@ CMDRESULT cbInstrGraph(int argc, char* argv[]) auto base = MemFindBaseAddr(entry, &size); if(!base || !MemIsValidReadPtr(entry)) { - dprintf("Invalid memory address " fhex "!\n", entry); + dprintf(QT_TRANSLATE_NOOP("DBG", "Invalid memory address %p!\n"), entry); return STATUS_ERROR; } if(!GuiGraphAt(sel)) @@ -2849,7 +2869,7 @@ CMDRESULT cbInstrGraph(int argc, char* argv[]) auto graph = analysis.GetFunctionGraph(entry); if(!graph) { - dputs("No graph generated..."); + dputs(QT_TRANSLATE_NOOP("DBG", "No graph generated...")); return STATUS_ERROR; } auto graphList = graph->ToGraphList(); @@ -2874,7 +2894,7 @@ CMDRESULT cbInstrAddFavTool(int argc, char* argv[]) // filename, description if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } else if(argc == 2) @@ -2889,7 +2909,7 @@ CMDRESULT cbInstrAddFavCmd(int argc, char* argv[]) // command, shortcut if(argc < 2) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } else if(argc == 2) @@ -2904,7 +2924,7 @@ CMDRESULT cbInstrSetFavToolShortcut(int argc, char* argv[]) // filename, shortcut if(argc < 3) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } else @@ -2918,7 +2938,7 @@ CMDRESULT cbInstrFoldDisassembly(int argc, char* argv[]) { if(argc < 3) { - dputs("Not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Not enough arguments!")); return STATUS_ERROR; } else @@ -2926,12 +2946,12 @@ CMDRESULT cbInstrFoldDisassembly(int argc, char* argv[]) duint start, length; if(!valfromstring(argv[1], &start)) { - dprintf("Invalid argument 1 : %s\n", argv[1]); + dprintf(QT_TRANSLATE_NOOP("DBG", "Invalid argument 1 : %s\n"), argv[1]); return STATUS_ERROR; } if(!valfromstring(argv[2], &length)) { - dprintf("Invalid argument 2 : %s\n", argv[2]); + dprintf(QT_TRANSLATE_NOOP("DBG", "Invalid argument 2 : %s\n"), argv[2]); return STATUS_ERROR; } GuiFoldDisassembly(start, length); diff --git a/src/dbg/memory.cpp b/src/dbg/memory.cpp index d343b391..1246f0ca 100644 --- a/src/dbg/memory.cpp +++ b/src/dbg/memory.cpp @@ -58,9 +58,9 @@ void MemUpdateMap() if(bReserved) { if(duint(curPage.mbi.BaseAddress) != allocationBase) - sprintf_s(curPage.info, "Reserved (" fhex ")", allocationBase); + sprintf_s(curPage.info, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Reserved (%p)")), allocationBase); else - strcpy_s(curPage.info, "Reserved"); + strcpy_s(curPage.info, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Reserved"))); } else if(!ModNameFromAddr(pageStart, curPage.info, true)) { @@ -199,7 +199,7 @@ void MemUpdateMap() if(pageBase == tebBase) { - sprintf_s(page.info, "Thread %X TEB", threadId); + sprintf_s(page.info, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Thread %X TEB")), threadId); break; } else if(pageBase == tebBaseWow64) @@ -207,7 +207,7 @@ void MemUpdateMap() #ifndef _WIN64 if(pageSize == (3 * PAGE_SIZE)) { - sprintf_s(page.info, "Thread %X WoW64 TEB", threadId); + sprintf_s(page.info, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Thread %X WoW64 TEB")), threadId); break; } #endif // ndef _WIN64 @@ -224,7 +224,7 @@ void MemUpdateMap() duint stackAddr = (duint)tib.StackLimit; if(stackAddr >= pageBase && stackAddr < (pageBase + pageSize)) - sprintf_s(page.info, "Thread %X Stack", threadId); + sprintf_s(page.info, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Thread %X Stack")), threadId); } } diff --git a/src/dbg/mnemonichelp.cpp b/src/dbg/mnemonichelp.cpp index 9b94ea99..4b781192 100644 --- a/src/dbg/mnemonichelp.cpp +++ b/src/dbg/mnemonichelp.cpp @@ -85,9 +85,9 @@ String MnemonicHelp::getUniversalMnemonic(const String & mnem) String MnemonicHelp::getDescription(const char* mnem, int depth) { if(mnem == nullptr) - return "Invalid mnemonic!"; + return GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Invalid mnemonic!")); if(depth == 10) - return "Too many redirections..."; + return GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Too many redirections...")); SHARED_ACQUIRE(LockMnemonicHelp); auto mnemuni = getUniversalMnemonic(mnem); auto found = MnemonicMap.find(mnemuni); @@ -114,11 +114,11 @@ String MnemonicHelp::getDescription(const char* mnem, int depth) String MnemonicHelp::getBriefDescription(const char* mnem) { if(mnem == nullptr) - return "Invalid mnemonic!"; + return GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Invalid mnemonic!")); SHARED_ACQUIRE(LockMnemonicHelp); auto mnemLower = StringUtils::ToLower(mnem); if(mnemLower == "???") - return "invalid instruction"; + return GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "invalid instruction")); auto found = MnemonicBriefMap.find(mnemLower); if(found == MnemonicBriefMap.end()) { diff --git a/src/dbg/patches.cpp b/src/dbg/patches.cpp index fd2a9c4f..8e85d7e9 100644 --- a/src/dbg/patches.cpp +++ b/src/dbg/patches.cpp @@ -185,7 +185,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro { // Notify the user of the error if(Error) - strcpy_s(Error, MAX_ERROR_SIZE, "No patches to apply"); + strcpy_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "No patches to apply"))); return -1; } @@ -200,7 +200,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(_stricmp(List[i].mod, moduleName)) { if(Error) - sprintf_s(Error, MAX_ERROR_SIZE, "Not all patches are in module %s", moduleName); + sprintf_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Not all patches are in module %s")), moduleName); return -1; } @@ -212,7 +212,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(!moduleBase) { if(Error) - sprintf_s(Error, MAX_ERROR_SIZE, "Failed to get base of module %s", moduleName); + sprintf_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Failed to get base of module %s")), moduleName); return -1; } @@ -222,7 +222,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(!ModPathFromAddr(moduleBase, modPath, MAX_PATH)) { if(Error) - sprintf_s(Error, MAX_ERROR_SIZE, "Failed to get module path of module %s", moduleName); + sprintf_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Failed to get module path of module %s")), moduleName); return -1; } @@ -234,7 +234,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(!CopyFileW(srcPath.c_str(), dstPath.c_str(), false)) { if(Error) - strcpy_s(Error, MAX_ERROR_SIZE, "Failed to make a copy of the original file (patch target is in use?)"); + strcpy_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Failed to make a copy of the original file (patch target is in use?)"))); return -1; } @@ -245,7 +245,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(fileAttrs == INVALID_FILE_ATTRIBUTES) { if(Error) - strcpy_s(Error, MAX_ERROR_SIZE, "Unable to obtain attributes for copied file"); + strcpy_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Unable to obtain attributes for copied file"))); return -1; } @@ -260,7 +260,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(!StaticFileLoadW(dstPath.c_str(), UE_ACCESS_ALL, false, &fileHandle, &loadedSize, &fileMap, &fileMapVa)) { if(Error) - strcpy_s(Error, MAX_ERROR_SIZE, "StaticFileLoad failed"); + strcpy_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "StaticFileLoad failed"))); return -1; } @@ -285,7 +285,7 @@ int PatchFile(const PATCHINFO* List, int Count, const char* FileName, char* Erro if(!StaticFileUnloadW(dstPath.c_str(), true, fileHandle, loadedSize, fileMap, fileMapVa)) { if(Error) - strcpy_s(Error, MAX_ERROR_SIZE, "StaticFileUnload failed"); + strcpy_s(Error, MAX_ERROR_SIZE, GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "StaticFileUnload failed"))); return -1; } diff --git a/src/dbg/simplescript.cpp b/src/dbg/simplescript.cpp index 3a17bf5a..706636b6 100644 --- a/src/dbg/simplescript.cpp +++ b/src/dbg/simplescript.cpp @@ -79,7 +79,8 @@ static bool scriptcreatelinemap(const char* filename) String filedata; if(!FileHelper::ReadAllText(filename, filedata)) { - GuiScriptError(0, "FileHelper::ReadAllText failed..."); + String TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "FileHelper::ReadAllText failed...")); + GuiScriptError(0, TranslatedString.c_str()); return false; } auto len = filedata.length(); @@ -305,7 +306,8 @@ static CMDRESULT scriptinternalcmdexec(const char* cmd) { if(!scriptstack.size()) //nothing on the stack { - GuiScriptMessage("Script finished!"); + String TranslatedString = GuiTranslateDbg(QT_TRANSLATE_NOOP("DBG", "Script finished!")); + GuiScriptMessage(TranslatedString.c_str()); return STATUS_EXIT; } scriptIp = scriptstack.back(); //set scriptIp to the call address (scriptinternalstep will step over it) diff --git a/src/dbg/x64_dbg.cpp b/src/dbg/x64_dbg.cpp index f220bffc..089b130c 100644 --- a/src/dbg/x64_dbg.cpp +++ b/src/dbg/x64_dbg.cpp @@ -41,7 +41,7 @@ static CMDRESULT cbStrLen(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } dprintf("\"%s\"[%d]\n", argv[1], strlen(argv[1])); @@ -69,7 +69,7 @@ static CMDRESULT cbScriptDll(int argc, char* argv[]) { if(argc < 2) { - dputs("not enough arguments!"); + dputs(QT_TRANSLATE_NOOP("DBG", "not enough arguments!")); return STATUS_ERROR; } return DbgScriptDllExec(argv[1]) ? STATUS_CONTINUE : STATUS_ERROR; @@ -373,13 +373,13 @@ static DWORD WINAPI DbgScriptDllExecThread(void* a) auto hScriptDll = info->hScriptDll; delete info; - dprintf("[Script DLL] Calling export \"AsyncStart\"...\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] Calling export \"AsyncStart\"...\n")); AsyncStart(); - dprintf("[Script DLL] \"AsyncStart\" returned!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] \"AsyncStart\" returned!\n")); - dprintf("[Script DLL] Calling FreeLibrary..."); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] Calling FreeLibrary...")); if(FreeLibrary(hScriptDll)) - dprintf("success!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "success!\n")); else dprintf("failure (%08X)...\n", GetLastError()); @@ -402,7 +402,7 @@ static bool DbgScriptDllExec(const char* dll) auto AsyncStart = SCRIPTDLLSTART(GetProcAddress(hScriptDll, "AsyncStart")); if(AsyncStart) { - dprintf("[Script DLL] Creating thread to call the export \"AsyncStart\"...\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] Creating thread to call the export \"AsyncStart\"...\n")); CloseHandle(CreateThread(nullptr, 0, DbgScriptDllExecThread, new DLLSCRIPTEXECTHREADINFO(hScriptDll, AsyncStart), 0, nullptr)); //on-purpose memory leak here } else @@ -410,16 +410,16 @@ static bool DbgScriptDllExec(const char* dll) auto Start = SCRIPTDLLSTART(GetProcAddress(hScriptDll, "Start")); if(Start) { - dprintf("[Script DLL] Calling export \"Start\"...\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] Calling export \"Start\"...\n")); Start(); - dprintf("[Script DLL] \"Start\" returned!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "[Script DLL] \"Start\" returned!\n")); } else dprintf("[Script DLL] Failed to find the exports \"AsyncStart\" or \"Start\" (%08X)!\n", GetLastError()); dprintf("[Script DLL] Calling FreeLibrary..."); if(FreeLibrary(hScriptDll)) - dprintf("success!\n"); + dputs(QT_TRANSLATE_NOOP("DBG", "success!\n")); else dprintf("failure (%08X)...\n", GetLastError()); } @@ -451,7 +451,7 @@ extern "C" DLL_EXPORT const char* _dbg_dbginit() dputs(QT_TRANSLATE_NOOP("DBG", "Initializing Yara...")); if(yr_initialize() != ERROR_SUCCESS) return "Failed to initialize Yara!"; - dputs("Getting directory information..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Getting directory information...")); wchar_t wszDir[deflen] = L""; if(!GetModuleFileNameW(hInst, wszDir, deflen)) return "GetModuleFileNameW failed!"; @@ -466,7 +466,9 @@ extern "C" DLL_EXPORT const char* _dbg_dbginit() strcpy_s(scriptDllDir, dir); strcat_s(scriptDllDir, "\\scripts\\"); DeleteFileW(StringUtils::Utf8ToUtf16(alloctrace).c_str()); +#ifdef ENABLE_MEM_TRACE setalloctrace(alloctrace); +#endif //ENABLE_MEM_TRACE initDataInstMap(); // Load mnemonic help database @@ -584,33 +586,33 @@ extern "C" DLL_EXPORT const char* _dbg_dbginit() extern "C" DLL_EXPORT void _dbg_dbgexitsignal() { - dputs("Stopping running debuggee..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Stopping running debuggee...")); cbDebugStop(0, 0); - dputs("Aborting scripts..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Aborting scripts...")); scriptabort(); - dputs("Waiting for the debuggee to be stopped..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Waiting for the debuggee to be stopped...")); wait(WAITID_STOP); //after this, debugging stopped - dputs("Unloading plugins..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Unloading plugins...")); pluginunload(); - dputs("Stopping command thread..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Stopping command thread...")); bStopCommandLoopThread = true; MsgFreeStack(gMsgStack); WaitForThreadTermination(hCommandLoopThread); - dputs("Cleaning up allocated data..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Cleaning up allocated data...")); cmdfree(); varfree(); yr_finalize(); Capstone::GlobalFinalize(); - dputs("Checking for mem leaks..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Checking for mem leaks...")); if(memleaks()) - dprintf("%d memory leak(s) found!\n", memleaks()); + dprintf(QT_TRANSLATE_NOOP("DBG", "%d memory leak(s) found!\n"), memleaks()); else DeleteFileW(StringUtils::Utf8ToUtf16(alloctrace).c_str()); - dputs("Cleaning up wait objects..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Cleaning up wait objects...")); waitdeinitialize(); - dputs("Cleaning up debugger threads..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Cleaning up debugger threads...")); dbgstop(); - dputs("Saving notes..."); + dputs(QT_TRANSLATE_NOOP("DBG", "Saving notes...")); char* text = nullptr; GuiGetGlobalNotes(&text); if(text) @@ -620,7 +622,7 @@ extern "C" DLL_EXPORT void _dbg_dbgexitsignal() } else DeleteFileW(StringUtils::Utf8ToUtf16(notesFile).c_str()); - dputs("Exit signal processed successfully!"); + dputs(QT_TRANSLATE_NOOP("DBG", "Exit signal processed successfully!")); bIsStopped = true; }