I_Jemin

Convert EUC-KR to UTF-8

...@@ -50,24 +50,24 @@ DWORD ProcessCommand(const std::wstring& cmd, DWORD pid) ...@@ -50,24 +50,24 @@ DWORD ProcessCommand(const std::wstring& cmd, DWORD pid)
50 if (Parse(m[1].str(), hp)) 50 if (Parse(m[1].str(), hp))
51 Host_InsertHook(pid, &hp); 51 Host_InsertHook(pid, &hp);
52 } 52 }
53 - else if (regex_match(cmd, m, wregex(L"(?::|)(?:|연|l|)([[:xdigit:]]+)(?:-| )([[:xdigit:]]+)", wregex::icase))) 53 + else if (regex_match(cmd, m, wregex(L"(?::|)(?:ㅇ|연|l|)([[:xdigit:]]+)(?:-| )([[:xdigit:]]+)", wregex::icase)))
54 { 54 {
55 DWORD from = std::stoul(m[1].str(), NULL, 16); 55 DWORD from = std::stoul(m[1].str(), NULL, 16);
56 DWORD to = std::stoul(m[2].str(), NULL, 16); 56 DWORD to = std::stoul(m[2].str(), NULL, 16);
57 Host_AddLink(from, to); 57 Host_AddLink(from, to);
58 } 58 }
59 - else if (regex_match(cmd, m, wregex(L"(?::|)(?:ㅎ|해|해제|u)([[:xdigit:]]+)", wregex::icase))) 59 + else if (regex_match(cmd, m, wregex(L"(?::|)(?:ㅎ|해|해제|u)([[:xdigit:]]+)", wregex::icase)))
60 { 60 {
61 DWORD from = std::stoul(m[1].str(), NULL, 16); 61 DWORD from = std::stoul(m[1].str(), NULL, 16);
62 Host_UnLink(from); 62 Host_UnLink(from);
63 } 63 }
64 - else if (regex_match(cmd, m, wregex(L"(?::|)(?:ㄷ|도|도움|도움말|h|help)", wregex::icase))) 64 + else if (regex_match(cmd, m, wregex(L"(?::|)(?:ㄷ|도|도움|도움말|h|help)", wregex::icase)))
65 { 65 {
66 ConsoleOutput(Usage); 66 ConsoleOutput(Usage);
67 } 67 }
68 else 68 else
69 { 69 {
70 - ConsoleOutput(L"알 수 없는 명령어. 도움말을 보시려면, :h 나 :help를 입력하세요."); 70 + ConsoleOutput(L"알 수 없는 명령어. 도움말을 보시려면, :h 나 :help를 입력하세요.");
71 } 71 }
72 return 0; 72 return 0;
73 } 73 }
......
...@@ -14,44 +14,44 @@ ...@@ -14,44 +14,44 @@
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 -const wchar_t* Warning = L"경고!"; 17 +const wchar_t* Warning = L"경고!";
18 //command.cpp 18 //command.cpp
19 -const wchar_t* ErrorSyntax = L"명령어 오류"; 19 +const wchar_t* ErrorSyntax = L"명령어 오류";
20 -const wchar_t* Usage = L"령어:\r\n\ 20 +const wchar_t* Usage = L"명령어:\r\n\
21 \r\n\ 21 \r\n\
22 -도움말 //도움말을 출력합니다\r\n\ 22 +도움말 //도움말을 출력합니다\r\n\
23 -출발 도착 // '출발'스레드에서 '도착'스레드로 연결합니다\r\n\ 23 +출발 도착 // '출발'스레드에서 '도착'스레드로 연결합니다\r\n\
24 -ㅎ출발 // '출발'스레드에 연결된 링크를 해제합니다\r\n\ 24 +ㅎ출발 // '출발'스레드에 연결된 링크를 해제합니다\r\n\
25 \r\n\ 25 \r\n\
26 -'출발'과 '도착'에는 16진법(헥사코드) 스레드번호를 입력합니다. 스레드 번호는 맨 앞에 있는 첫 번째 숫자열입니다.\r\n\ 26 +'출발'과 '도착'에는 16진법(헥사코드) 스레드번호를 입력합니다. 스레드 번호는 맨 앞에 있는 첫 번째 숫자열입니다.\r\n\
27 \r\n\ 27 \r\n\
28 -로더 옵션:\r\n\ 28 +로더 옵션:\r\n\
29 -/P[{process_id|Nprocess_name}] //프로세스에 부착\r\n\ 29 +/P[{process_id|Nprocess_name}] //프로세스에 부착\r\n\
30 \r\n\ 30 \r\n\
31 -H코드 후킹 옵션:\r\n\ 31 +H코드 후킹 옵션:\r\n\
32 /H[X]{A|B|W|S|Q}[N][data_offset[*drdo]][:sub_offset[*drso]]@addr[:module[:{name|#ordinal}]]\r\n\ 32 /H[X]{A|B|W|S|Q}[N][data_offset[*drdo]][:sub_offset[*drso]]@addr[:module[:{name|#ordinal}]]\r\n\
33 \r\n\ 33 \r\n\
34 -(서수를 제외한) /H코드의 모든 숫자는 아무것도 처리되지 않은 16진법(헥사코드)입니다"; 34 +(서수를 제외한) /H코드의 모든 숫자는 아무것도 처리되지 않은 16진법(헥사코드)입니다";
35 35
36 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\ 36 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\
37 \r\n\ 37 \r\n\
38 -추가 사용자정의 후킹설정\r\n\ 38 +추가 사용자정의 후킹설정\r\n\
39 \r\n\ 39 \r\n\
40 -후킹 종류 :\r\n\ 40 +후킹 종류 :\r\n\
41 -A - DBCS 문자\r\n\ 41 +A - DBCS 문자\r\n\
42 -B - DBCS 문자(big-endian)\r\n\ 42 +B - DBCS 문자(big-endian)\r\n\
43 -W - UCS2 문자\r\n\ 43 +W - UCS2 문자\r\n\
44 -S - MBCS 자열\r\n\ 44 +S - MBCS 문자열\r\n\
45 -Q - UTF-16 자열\r\n\ 45 +Q - UTF-16 문자열\r\n\
46 \r\n\ 46 \r\n\
47 -개변수:\r\n\ 47 +매개변수:\r\n\
48 -X - 하드웨어 구획점 사용\r\n\ 48 +X - 하드웨어 구획점 사용\r\n\
49 -N - 문법을 사용하지 않음\r\n\ 49 +N - 문법을 사용하지 않음\r\n\
50 data_offset - stack offset to char / string pointer\r\n\ 50 data_offset - stack offset to char / string pointer\r\n\
51 drdo - add a level of indirection to data_offset\r\n\ 51 drdo - add a level of indirection to data_offset\r\n\
52 sub_offset - stack offset to subcontext\r\n\ 52 sub_offset - stack offset to subcontext\r\n\
53 drso - add a level of indirection to sub_offset\r\n\ 53 drso - add a level of indirection to sub_offset\r\n\
54 -addr - 후킹할 주소\r\n\ 54 +addr - 후킹할 주소\r\n\
55 module - name of the module to use as base for 'addr'\r\n\ 55 module - name of the module to use as base for 'addr'\r\n\
56 name - name of the 'module' export to use as base for 'addr'\r\n\ 56 name - name of the 'module' export to use as base for 'addr'\r\n\
57 ordinal - number of the 'module' export ordinal to use as base for 'addr'\r\n\ 57 ordinal - number of the 'module' export ordinal to use as base for 'addr'\r\n\
...@@ -64,70 +64,70 @@ Negative values of 'data_offset' and 'sub_offset' refer to registers: \r\n\ ...@@ -64,70 +64,70 @@ Negative values of 'data_offset' and 'sub_offset' refer to registers: \r\n\
64 All numbers except ordinal are hexadecimal without any prefixes"; 64 All numbers except ordinal are hexadecimal without any prefixes";
65 65
66 //inject.cpp 66 //inject.cpp
67 -const wchar_t* ErrorRemoteThread = L"원격 스레드를 생성할 수 없음."; 67 +const wchar_t* ErrorRemoteThread = L"원격 스레드를 생성할 수 없음.";
68 -const wchar_t* ErrorOpenProcess = L"프로세스를 열 수 없음."; 68 +const wchar_t* ErrorOpenProcess = L"프로세스를 열 수 없음.";
69 -const wchar_t* ErrorNoProcess = L"프로세스를 찾을 수 없음"; 69 +const wchar_t* ErrorNoProcess = L"프로세스를 찾을 수 없음";
70 -const wchar_t* SelfAttach = L"ITH.exe에 부착하지 말아 주세요"; 70 +const wchar_t* SelfAttach = L"ITH.exe에 부착하지 말아 주세요";
71 -const wchar_t* AlreadyAttach = L"프로세스가 이미 부착됨."; 71 +const wchar_t* AlreadyAttach = L"프로세스가 이미 부착됨.";
72 -const wchar_t* FormatInject = L"프로세스 %d에 인젝션. 모듈 기반 %.8X"; 72 +const wchar_t* FormatInject = L"프로세스 %d에 인젝션. 모듈 기반 %.8X";
73 //main.cpp 73 //main.cpp
74 -const wchar_t* NotAdmin = L"SeDebugPrevilege을 활성화 할 수 없습니다. ITH가 제대로 작동하지 못합니다.\r\n\ 74 +const wchar_t* NotAdmin = L"SeDebugPrevilege을 활성화 할 수 없습니다. ITH가 제대로 작동하지 못합니다.\r\n\
75 -관리자 계정으로 실행하시거나 UAC를 끄시고 ITH를 실행해 주세요."; 75 +관리자 계정으로 실행하시거나 UAC를 끄시고 ITH를 실행해 주세요.";
76 //pipe.cpp 76 //pipe.cpp
77 -const wchar_t* ErrorCreatePipe = L"텍스트 파이프를 생성할 수 없거나, 요청이 너무 많습니다."; 77 +const wchar_t* ErrorCreatePipe = L"텍스트 파이프를 생성할 수 없거나, 요청이 너무 많습니다.";
78 -const wchar_t* FormatDetach = L"프로세스 %d가 탈착됨."; 78 +const wchar_t* FormatDetach = L"프로세스 %d가 탈착됨.";
79 -const wchar_t* ErrorCmdQueueFull = L"명령어 대기열이 가득참."; 79 +const wchar_t* ErrorCmdQueueFull = L"명령어 대기열이 가득참.";
80 -const wchar_t* ErrorNoAttach = L"프로세스가 부착되지 않음."; 80 +const wchar_t* ErrorNoAttach = L"프로세스가 부착되지 않음.";
81 81
82 //profile.cpp 82 //profile.cpp
83 -const wchar_t* ErrorMonitor = L"프로세스를 감시할 수 없음."; 83 +const wchar_t* ErrorMonitor = L"프로세스를 감시할 수 없음.";
84 //utility.cpp 84 //utility.cpp
85 const wchar_t* InitMessage = L"Copyright (C) 2010-2012 kaosu <qiupf2000@gmail.com>\r\n\ 85 const wchar_t* InitMessage = L"Copyright (C) 2010-2012 kaosu <qiupf2000@gmail.com>\r\n\
86 Copyright (C) 2015 zorkzero <zorkzero@hotmail.com>\r\n\ 86 Copyright (C) 2015 zorkzero <zorkzero@hotmail.com>\r\n\
87 -소스코드 <https://code.google.com/p/interactive-text-hooker/>\r\n\ 87 +소스코드 <https://code.google.com/p/interactive-text-hooker/>\r\n\
88 -반토론 <https://groups.google.com/forum/?fromgroups#!forum/interactive-text-hooker>\r\n\ 88 +일반토론 <https://groups.google.com/forum/?fromgroups#!forum/interactive-text-hooker>\r\n\
89 -한글화 @mireado<https://twitter.com/mireado>"; 89 +한글화 @mireado<https://twitter.com/mireado>";
90 -const wchar_t* BackgroundMsg = L"도움말을 보시려면, \"help\", \"도움말\"이나 \"도움\"을 입력하세요."; 90 +const wchar_t* BackgroundMsg = L"도움말을 보시려면, \"help\", \"도움말\"이나 \"도움\"을 입력하세요.";
91 -const wchar_t* ErrorLinkExist = L"결이 존재함."; 91 +const wchar_t* ErrorLinkExist = L"연결이 존재함.";
92 -const wchar_t* ErrorCylicLink = L"연결실패. 순환연결은 허용되지 않습니다."; 92 +const wchar_t* ErrorCylicLink = L"연결실패. 순환연결은 허용되지 않습니다.";
93 -const wchar_t* FormatLink = L"출발스레드%.4x에서 도착스레드%.4x로 연결."; 93 +const wchar_t* FormatLink = L"출발스레드%.4x에서 도착스레드%.4x로 연결.";
94 -const wchar_t* ErrorLink = L"연결실패. 출발/도착 스레드를 찾을 수 없음."; 94 +const wchar_t* ErrorLink = L"연결실패. 출발/도착 스레드를 찾을 수 없음.";
95 -const wchar_t* ErrorDeleteCombo = L"글상자에서 지우기 실패."; 95 +const wchar_t* ErrorDeleteCombo = L"글상자에서 지우기 실패.";
96 96
97 //window.cpp 97 //window.cpp
98 const wchar_t* ClassName = L"ITH"; 98 const wchar_t* ClassName = L"ITH";
99 -const wchar_t* ClassNameAdmin = L"ITH (관리자)"; 99 +const wchar_t* ClassNameAdmin = L"ITH (관리자)";
100 -const wchar_t* ErrorNotSplit = L"먼저 문단 나누기를 활성화해주세요!"; 100 +const wchar_t* ErrorNotSplit = L"먼저 문단 나누기를 활성화해주세요!";
101 -const wchar_t* ErrorNotModule = L"먼저 모듈을 활성화해주세요!"; 101 +const wchar_t* ErrorNotModule = L"먼저 모듈을 활성화해주세요!";
102 //Main window buttons 102 //Main window buttons
103 -const wchar_t* ButtonTitleProcess = L"로세스"; 103 +const wchar_t* ButtonTitleProcess = L"프로세스";
104 -const wchar_t* ButtonTitleThread = L"스레드"; 104 +const wchar_t* ButtonTitleThread = L"스레드";
105 -const wchar_t* ButtonTitleHook = L"킹"; 105 +const wchar_t* ButtonTitleHook = L"후킹";
106 -const wchar_t* ButtonTitleProfile = L"프로필"; 106 +const wchar_t* ButtonTitleProfile = L"프로필";
107 -const wchar_t* ButtonTitleOption = L"션"; 107 +const wchar_t* ButtonTitleOption = L"옵션";
108 -const wchar_t* ButtonTitleClear = L"지우기"; 108 +const wchar_t* ButtonTitleClear = L"지우기";
109 -const wchar_t* ButtonTitleSave = L"저장"; 109 +const wchar_t* ButtonTitleSave = L"저장";
110 -const wchar_t* ButtonTitleTop = L"상위"; 110 +const wchar_t* ButtonTitleTop = L"항상위";
111 //Hook window 111 //Hook window
112 -const wchar_t* SpecialHook = L"H코드 후킹, AGTH 코드는 지원하지 않습니다."; 112 +const wchar_t* SpecialHook = L"H코드 후킹, AGTH 코드는 지원하지 않습니다.";
113 //Process window 113 //Process window
114 const wchar_t* TabTitlePID = L"PID"; 114 const wchar_t* TabTitlePID = L"PID";
115 -const wchar_t* TabTitleMemory = L"모리"; 115 +const wchar_t* TabTitleMemory = L"메모리";
116 -const wchar_t* TabTitleName = L"름"; 116 +const wchar_t* TabTitleName = L"이름";
117 const wchar_t* TabTitleTID = L"TID"; 117 const wchar_t* TabTitleTID = L"TID";
118 -const wchar_t* TabTitleStart = L"시작"; 118 +const wchar_t* TabTitleStart = L"시작";
119 -const wchar_t* TabTitleModule = L"모듈"; 119 +const wchar_t* TabTitleModule = L"모듈";
120 -const wchar_t* TabTitleState = L"상태"; 120 +const wchar_t* TabTitleState = L"상태";
121 -const wchar_t* SuccessAttach = L"프로세스에 ITH 부착성공."; 121 +const wchar_t* SuccessAttach = L"프로세스에 ITH 부착성공.";
122 -const wchar_t* FailAttach = L"프로세스에 ITH 부착실패."; 122 +const wchar_t* FailAttach = L"프로세스에 ITH 부착실패.";
123 -const wchar_t* SuccessDetach = L"프로세스에서 ITH 탈착성공."; 123 +const wchar_t* SuccessDetach = L"프로세스에서 ITH 탈착성공.";
124 -const wchar_t* FailDetach = L"ITH 착실패."; 124 +const wchar_t* FailDetach = L"ITH 탈착실패.";
125 //Profile window 125 //Profile window
126 -const wchar_t* ProfileExist = L"프로필이 이미 존재함."; 126 +const wchar_t* ProfileExist = L"프로필이 이미 존재함.";
127 -const wchar_t* SuccessAddProfile = L"프로필 추가됨."; 127 +const wchar_t* SuccessAddProfile = L"프로필 추가됨.";
128 -const wchar_t* FailAddProfile = L"프로필 추가실패"; 128 +const wchar_t* FailAddProfile = L"프로필 추가실패";
129 const wchar_t* TabTitleNumber = L"No."; 129 const wchar_t* TabTitleNumber = L"No.";
130 -const wchar_t* NoFile = L"파일을 찾을 수 없음."; 130 +const wchar_t* NoFile = L"파일을 찾을 수 없음.";
131 -const wchar_t* PathDismatch = L"프로세스 이름이 일치하지 않습니다, 계속하시겠습니까?"; 131 +const wchar_t* PathDismatch = L"프로세스 이름이 일치하지 않습니다, 계속하시겠습니까?";
132 -const wchar_t* SuccessImportProfile = L"프로필 가져오기 성공"; 132 +const wchar_t* SuccessImportProfile = L"프로필 가져오기 성공";
133 //const wchar_t* SuccessAddProfile=L"Profile added."; 133 //const wchar_t* SuccessAddProfile=L"Profile added.";
...\ No newline at end of file ...\ No newline at end of file
......