Textractor_test/gui/language.cpp

133 lines
6.0 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/>.
*/
const wchar_t* Warning = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
2015-04-02 22:27:58 +08:00
//command.cpp
const wchar_t* ErrorSyntax = L"<EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD> <20><><EFBFBD><EFBFBD>";
const wchar_t* Usage = L"<EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD>:\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>\r\n\
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> // '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>\r\n\
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD> '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD> <EFBFBD>Է<EFBFBD><EFBFBD>մϴ<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>տ<EFBFBD> <EFBFBD>ִ<EFBFBD> ù <EFBFBD><EFBFBD>° <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD>Դϴ<EFBFBD>.\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
<EFBFBD>δ<EFBFBD> <EFBFBD>ɼ<EFBFBD>:\r\n\
/P[{process_id|Nprocess_name}] //<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
H<EFBFBD>ڵ<EFBFBD> <EFBFBD><EFBFBD>ŷ <EFBFBD>ɼ<EFBFBD>:\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\
(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) /H<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <EFBFBD>ƹ<EFBFBD><EFBFBD>͵<EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>)<EFBFBD>Դϴ<EFBFBD>";
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\
<EFBFBD>߰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
<EFBFBD><EFBFBD>ŷ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> :\r\n\
A - DBCS <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\
B - DBCS <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(big-endian)\r\n\
W - UCS2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\
S - MBCS <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>\r\n\
Q - UTF-16 <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>\r\n\
2015-04-02 22:27:58 +08:00
\r\n\
<EFBFBD>Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\r\n\
X - <EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȹ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\
N - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\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\
addr - <EFBFBD><EFBFBD>ŷ<EFBFBD><EFBFBD> <EFBFBD>ּ<EFBFBD>\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
const wchar_t* ErrorRemoteThread = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.";
const wchar_t* ErrorOpenProcess = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>.";
const wchar_t* ErrorNoProcess = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD>";
const wchar_t* SelfAttach = L"ITH.exe<78><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>";
const wchar_t* AlreadyAttach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* FormatInject = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD> %d<><64> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> %.8X";
2015-04-02 22:27:58 +08:00
//main.cpp
const wchar_t* NotAdmin = L"SeDebugPrevilege<EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. ITH<54><48> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>۵<EFBFBD><DBB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>մϴ<D5B4>.\r\n\
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻðų<EFBFBD> UAC<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> ITH<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD>.";
2015-04-02 22:27:58 +08:00
//pipe.cpp
const wchar_t* ErrorCreatePipe = L"<EFBFBD>ؽ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>ų<EFBFBD>, <20><>û<EFBFBD><C3BB> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.";
const wchar_t* FormatDetach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD> %d<><64> Ż<><C5BB><EFBFBD><EFBFBD>.";
const wchar_t* ErrorCmdQueueFull = L"<EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD> <20><><EFBFBD><EFBFBD><E2BFAD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* ErrorNoAttach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.";
2015-04-02 22:27:58 +08:00
//profile.cpp
const wchar_t* ErrorMonitor = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.";
2015-04-02 22:27:58 +08:00
//utility.cpp
const wchar_t* InitMessage = L"Copyright (C) 2010-2012 kaosu <qiupf2000@gmail.com>\r\n\
2015-04-02 22:27:58 +08:00
Copyright (C) 2015 zorkzero <zorkzero@hotmail.com>\r\n\
<EFBFBD>ҽ<EFBFBD><EFBFBD>ڵ<EFBFBD> <https://code.google.com/p/interactive-text-hooker/>\r\n\
<EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <https://groups.google.com/forum/?fromgroups#!forum/interactive-text-hooker>\r\n\
<EFBFBD>ѱ<EFBFBD>ȭ @mireado<https://twitter.com/mireado>";
const wchar_t* BackgroundMsg = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>, \"help\", \"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD>̳<EFBFBD> \"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.";
const wchar_t* ErrorLinkExist = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* ErrorCylicLink = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.";
const wchar_t* FormatLink = L"<EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%.4x<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%.4x<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.";
const wchar_t* ErrorLink = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>带 ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD>.";
const wchar_t* ErrorDeleteCombo = L"<EFBFBD>ۻ<EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.";
2015-04-02 22:27:58 +08:00
//window.cpp
const wchar_t* ClassName = L"ITH";
const wchar_t* ClassNameAdmin = L"ITH (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)";
const wchar_t* ErrorNotSplit = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸦ Ȱ<><C8B0>ȭ<EFBFBD><C8AD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>!";
const wchar_t* ErrorNotModule = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ<EFBFBD><C8AD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>!";
2015-04-02 22:27:58 +08:00
//Main window buttons
const wchar_t* ButtonTitleProcess = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* ButtonTitleThread = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* ButtonTitleHook = L"<EFBFBD><EFBFBD>ŷ";
const wchar_t* ButtonTitleProfile = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* ButtonTitleOption = L"<EFBFBD>ɼ<EFBFBD>";
const wchar_t* ButtonTitleClear = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* ButtonTitleSave = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* ButtonTitleTop = L"<EFBFBD>׻<EFBFBD><EFBFBD><EFBFBD>";
2015-04-02 22:27:58 +08:00
//Hook window
const wchar_t* SpecialHook = L"H<EFBFBD>ڵ<EFBFBD> <20><>ŷ, AGTH <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.";
2015-04-02 22:27:58 +08:00
//Process window
const wchar_t* TabTitlePID = L"PID";
const wchar_t* TabTitleMemory = L"<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* TabTitleName = L"<EFBFBD≯<EFBFBD>";
const wchar_t* TabTitleTID = L"TID";
const wchar_t* TabTitleStart = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* TabTitleModule = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* TabTitleState = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* SuccessAttach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ITH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* FailAttach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ITH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* SuccessDetach = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ITH Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* FailDetach = L"ITH Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
2015-04-02 22:27:58 +08:00
//Profile window
const wchar_t* ProfileExist = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.";
const wchar_t* SuccessAddProfile = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD>.";
const wchar_t* FailAddProfile = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD><EFBFBD><EFBFBD>";
const wchar_t* TabTitleNumber = L"No.";
const wchar_t* NoFile = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD>.";
const wchar_t* PathDismatch = L"<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?";
const wchar_t* SuccessImportProfile = L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>";
//const wchar_t* SuccessAddProfile=L"Profile added.";