Textractor_test/gui/language.cpp

128 lines
5.5 KiB
C++
Raw Normal View History

2015-04-02 22:27:58 +08:00
/* Copyright (C) 2010-2012 kaosu (qiupf2000@gmail.com)
* This file is part of the Interactive Text Hooker.
* Interactive Text Hooker is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
2017-01-29 02:19:24 +08:00
const wchar_t* Warning=L"Warning!";
2015-04-02 22:27:58 +08:00
//command.cpp
2017-01-29 02:19:24 +08:00
const wchar_t* ErrorSyntax=L"Syntax error";
const wchar_t* Usage = L"Syntax:\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
2017-01-29 02:19:24 +08:00
:H[ELP] - print help\r\n\
Loader options:\r\n\
/P[{process_id|Nprocess_name}] - attach to process\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
2017-01-29 02:19:24 +08:00
Hook options:\r\n\
2015-04-02 22:27:58 +08:00
/H[X]{A|B|W|S|Q}[N][data_offset[*drdo]][:sub_offset[*drso]]@addr[:module[:{name|#ordinal}]]\r\n\
\r\n\
2017-01-29 02:19:24 +08:00
All numbers in /H (except ordinal) are hexadecimal without any prefixes";
2015-04-02 22:27:58 +08:00
const wchar_t* ExtendedUsage = L"/H[X]{A|B|W|S|Q}[N][data_offset[*drdo]][:sub_offset[*drso]]@addr[:[module[:{name|#ordinal}]]]\r\n\
\r\n\
2017-01-29 02:19:24 +08:00
Set additional custom hook\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
2017-01-29 02:19:24 +08:00
Hook types :\r\n\
A - DBCS char\r\n\
B - DBCS char(big-endian)\r\n\
W - UCS2 char\r\n\
S - MBCS string\r\n\
Q - UTF-16 string\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
2017-01-29 02:19:24 +08:00
Parameters:\r\n\
X - use hardware breakpoints\r\n\
N - don't use contexts\r\n\
2015-04-02 22:27:58 +08:00
data_offset - stack offset to char / string pointer\r\n\
drdo - add a level of indirection to data_offset\r\n\
sub_offset - stack offset to subcontext\r\n\
drso - add a level of indirection to sub_offset\r\n\
2017-01-29 02:19:24 +08:00
addr - address of the hook\r\n\
2015-04-02 22:27:58 +08:00
module - name of the module to use as base for 'addr'\r\n\
name - name of the 'module' export to use as base for 'addr'\r\n\
ordinal - number of the 'module' export ordinal to use as base for 'addr'\r\n\
\r\n\
Negative values of 'data_offset' and 'sub_offset' refer to registers: \r\n\
- 4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI\r\n\
\r\n\
\"Add a level of indirection\" means in C/C++ style: (*(ESP+data_offset)+drdo) instead of (ESP+data_offset)\r\n\
\r\n\
All numbers except ordinal are hexadecimal without any prefixes";
//inject.cpp
2017-01-29 02:19:24 +08:00
const wchar_t* ErrorRemoteThread=L"Can't create remote thread.";
const wchar_t* ErrorOpenProcess=L"Can't open process.";
const wchar_t* ErrorNoProcess=L"Process not found";
const wchar_t* SelfAttach=L"Please do not attach to ITH.exe";
const wchar_t* AlreadyAttach=L"Process already attached.";
const wchar_t* FormatInject=L"Inject process %d. Module base %.8X";
2015-04-02 22:27:58 +08:00
//main.cpp
2017-01-29 02:19:24 +08:00
const wchar_t* NotAdmin=L"Can't enable SeDebugPrevilege. ITH might malfunction.\r\n\
Please run ITH as administrator or turn off UAC.";
2015-04-02 22:27:58 +08:00
//pipe.cpp
2017-01-29 02:19:24 +08:00
const wchar_t* ErrorCreatePipe=L"Can't create text pipe or too many instance.";
const wchar_t* FormatDetach=L"Process %d detached.";
const wchar_t* ErrorCmdQueueFull=L"Command queue full.";
const wchar_t* ErrorNoAttach=L"No process attached.";
2015-04-02 22:27:58 +08:00
//profile.cpp
2017-01-29 02:19:24 +08:00
const wchar_t* ErrorMonitor=L"Can't monitor process.";
2015-04-02 22:27:58 +08:00
//utility.cpp
2018-07-13 19:38:37 +08:00
const wchar_t* InitMessage=L"Copyright (C) 2010-2012 kaosu (qiupf2000@gmail.com)\r\n\
Copyright (C) 2015 Stomp (zorkzero@hotmail.com)\r\n\
Copyright (C) 2016-2017 mireado (mireado@daum.net)\r\n\
Copyright (C) 2018 Artikash (akashmozumdar@gmail.com)\r\n\
2018-07-13 23:47:16 +08:00
Source code available at github.com/Artikash/NextHooker (GPLv3 License)";
2017-01-29 02:19:24 +08:00
const wchar_t* BackgroundMsg=L"Type \":h\" or \":help\" for help.";
const wchar_t* ErrorLinkExist=L"Link exist.";
const wchar_t* ErrorCylicLink=L"Link failed. No cyclic link allowed.";
const wchar_t* FormatLink=L"Link from thread%.4x to thread%.4x.";
const wchar_t* ErrorLink=L"Link failed. Source or/and destination thread not found.";
const wchar_t* ErrorDeleteCombo=L"Error delete from combo.";
2015-04-02 22:27:58 +08:00
//window.cpp
2018-07-13 05:47:22 +08:00
const wchar_t* ClassName=L"NextHooker";
const wchar_t* ClassNameAdmin=L"NextHooker (Administrator)";
2017-01-29 02:19:24 +08:00
const wchar_t* ErrorNotSplit=L"Need to enable split first!";
const wchar_t* ErrorNotModule=L"Need to enable module first!";
2015-04-02 22:27:58 +08:00
//Main window buttons
2017-01-29 02:19:24 +08:00
const wchar_t* ButtonTitleProcess=L"Process";
const wchar_t* ButtonTitleThread=L"Thread";
const wchar_t* ButtonTitleHook=L"Hook";
const wchar_t* ButtonTitleProfile=L"Profile";
const wchar_t* ButtonTitleOption=L"Option";
const wchar_t* ButtonTitleClear=L"Clear";
const wchar_t* ButtonTitleSave=L"Save";
const wchar_t* ButtonTitleTop=L"Top";
2015-04-02 22:27:58 +08:00
//Hook window
2017-01-29 02:19:24 +08:00
const wchar_t* SpecialHook=L"Special hook, no AGTH equivalent.";
2015-04-02 22:27:58 +08:00
//Process window
2017-01-29 02:19:24 +08:00
const wchar_t* TabTitlePID=L"PID";
const wchar_t* TabTitleMemory=L"Memory";
const wchar_t* TabTitleName=L"Name";
const wchar_t* TabTitleTID=L"TID";
const wchar_t* TabTitleStart=L"Start";
const wchar_t* TabTitleModule=L"Module";
const wchar_t* TabTitleState=L"State";
const wchar_t* SuccessAttach=L"Attach ITH to process successfully.";
const wchar_t* FailAttach=L"Failed to attach ITH to process.";
const wchar_t* SuccessDetach=L"ITH detach from process.";
const wchar_t* FailDetach=L"Detach failed.";
2015-04-02 22:27:58 +08:00
//Profile window
2017-01-29 02:19:24 +08:00
const wchar_t* ProfileExist=L"Profile already exists.";
const wchar_t* SuccessAddProfile=L"Profile added.";
const wchar_t* FailAddProfile=L"Fail to add profile";
const wchar_t* TabTitleNumber=L"No.";
const wchar_t* NoFile=L"Can't find file.";
const wchar_t* PathDismatch=L"Process name dismatch, continue?";
const wchar_t* SuccessImportProfile=L"Import profile success";
//const wchar_t* SuccessAddProfile=L"Profile added.";