eXeL@B —› Вопросы новичков —› Нужна помощь в поиске текстовой строки |
Посл.ответ | Сообщение |
|
Создано: 13 июня 2018 17:53 · Личное сообщение · #1 Многие наверное знают культовую игру заслужившую мировую популярность Dota (точнее это мод карта для Warcraft 3). Есть Iccup Launcher программа через которую запускает сам Warcraft для игры через российский ладдер сервер Iccup. Не могу найти в его exe текстовые строки на кириллице (мало опыта у меня). А именно строки: "Враг ушел с линии!" "Противник вернулся!" "Вперед!" "Назад!" и еще порядка 10 подобных строк. Английские аналоги ищутся запросто, то есть там ничего хитрого это просто я туповат Лаунчер берется здесь https://iccup.com/files/download/668b839e463d4f24dd7c765307d5add1/iCCup_launcher.html. Буду благодарен за помощь в поиске адресов этих строк на предмет замены сообщения на свои. В связи с этим вопрос в чем искать, как искать и как заменить? Пробовал Ida, Win32DASM и WinHEX, они эти строки не нашли, может я что то не правильно делаю в поиске кириллицы? |
|
Создано: 13 июня 2018 18:26 · Личное сообщение · #2 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 13 июня 2018 19:57 · Личное сообщение · #3 Free-Man пишет: В связи с этим вопрос в чем искать, как искать и как заменить Во-первых, это UNICODE-строка будет, если искать в PE-файлах. Во-вторых действительно нужно определиться для начала, что именно выплевывает фразы - сама игра (по-моему в War3 такой фитчи нативно не было) или резидент Iccup Launcher. По нажатии какой кнопки (комбинации клавиш) это делается? Тамщемта могут быть вариации - фразы могут быть в data файлах в виде текста, могут клиентом-резидентом Iccup Launcher из самого себя распаковываться (в ресурсах лежать). |
|
Создано: 13 июня 2018 23:22 · Поправил: Boostyq · Личное сообщение · #4 Строка может храниться в wchar_t или в кодировке UTF-8 Вы можете найти английский аналог и посмотреть если символы разделены нулями, то это wchar_t*, т.е. на каждую букву по два байта, иначе скорее всего UTF-8 Например u8"Враг ушел с линии!" будет D0 92 D1 80 D0 B0 D0 B3 20 D1 83 D1 88 D0 B5 D0 BB 20 D1 81 20 D0 BB D0 B8 D0 BD D0 B8 D0 B8 21 00 А уже L"Враг ушел с линии!" будет 12 04 40 04 30 04 33 04 20 00 43 04 48 04 35 04 3B 04 20 00 41 04 20 00 3B 04 38 04 3D 04 38 04 38 04 21 00 00 00 Еще пара слов о правке: если соберетесь править, то вряд ли выйдет на более длинную, т.к. после первой может идти сразу другая строка, т.е. можете задеть ее ----- В облачке многоточия |
|
Создано: 14 июня 2018 15:08 · Личное сообщение · #5 Извиняюсь за неполный запрос. Строку в игру выплевывает именно лаунчер (Launcher.exe). Клавиши назначаются пользователем. Язык - Microsoft Visual C++ 8.0 [Overlay] * Вес - 27.97 Мб. Английские варианты строк записаны прямо в исполняемый фалй, как обычный текст в exe файле (я легко нашел Enemy returned, Missing, Go и прочие и идут одна за другой). |
|
Создано: 14 июня 2018 17:55 · Личное сообщение · #6 Кто же сейчас строки в бинарях ищет то, статик строки обычно нет в софте, только в осевом коде, но он должен быть чистым", ну что бы авер не усомнился. Пытаться строки искать в обычном софте, а он почти всегда накрыт слоем пакера, в случае тс всё равно что искать жизнь на других планетах, возможность самостоятельного решения исключена. ----- vx |
|
Создано: 14 июня 2018 18:18 · Личное сообщение · #7 Free-Man пишет: Пробовал Ida, Win32DASM и WinHEX, они эти строки не нашли, может я что то не правильно делаю в поиске кириллицы? Т. е. вы использовали статический режим . Может попробовать перехватить их. Конечно, для этого нужно знать чем они выводятся: библиотечной функцией - это легче, иначе - хуже. Вид сообщения может прояснить это. Для динамического реверсинга проще использовать отладчик OllyDbg. |
|
Создано: 15 июня 2018 07:18 · Личное сообщение · #8 Вполне очевидно, что ковырять надо файл локализации, коли английские строки в софте есть. Варианта два - потрошить ресурсы, логировать чтение файлов локализации или подправить конфиг и вполне вероятно, что аргументы к функам, выводящим текст на экран, будут заполнены в соответствии с текущим языком, т.е. опять же возврат к коду, содержащему английские строки. Начать c CreateFileA(W)/printf/sprinf/fopen. ----- TEST YOUR MIGHT | Сообщение посчитали полезным: Free-Man |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 15 июня 2018 09:07 · Личное сообщение · #9 Free-Man пишет: Английские варианты строк записаны прямо в исполняемый фалй Если ref'ы (на английские строки) не перебиты на ref'ы русских строк, то искать собственно русские строки в файле бессмысленно (за исключением ресурсов) - русские, скорее всего, подгружаются с файлов типа ini, dat. | Сообщение посчитали полезным: Free-Man |
|
Создано: 15 июня 2018 09:26 · Поправил: LinXP · Личное сообщение · #10 Free-Man Resource.dll: "Враг ушел с линии!" 3BEAFh "Противник вернулся!" 3BA74h "Вперед!" 3BB18h "Назад!" 3BAD6h https://en.wikipedia.org/wiki/List_of_Unicode_characters#Cyrillic В - 04 12 р - 04 40 а - 04 30 г - 04 33 пробел - 00 20 | Сообщение посчитали полезным: Free-Man |
|
Создано: 15 июня 2018 19:04 · Личное сообщение · #11 |
eXeL@B —› Вопросы новичков —› Нужна помощь в поиске текстовой строки |