Showing
2 changed files
with
75 additions
and
75 deletions
| ... | @@ -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 | ... | ... |
-
Please register or login to post a comment