Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.03.2008, 18:16   #1
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию Изменение текста в exe-шнике

Не знал, в какую тему поместить вопрос. У меня такой вопрос: в программе выводится какой-то текст, например "Иллидан". Почему, независимо от операционной системы размера и сложности exe, если мы найдем в машинных кодах это строку и поменяем ее "Аллидан", то программа будет работать нормально, а если на "Иллид", то уже работать не будет? Там что, какае-то контрольная сумма считается? Как можно это бороть?
Иллидан вне форума
Старый 05.03.2008, 18:31   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А чем Вы её меняете? Блокнотом? Конечно так ничего работать не будет
B_N вне форума
Старый 05.03.2008, 18:58   #3
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Какая разница чем? Можно и блокнотом можно программу сделать, можно 16-ричным редактором. Да, если кол-во букв в слове не совпадет, то не будет, а почему?
Иллидан вне форума
Старый 05.03.2008, 19:04   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Иллидан Посмотреть сообщение
Какая разница чем? Можно и блокнотом можно программу сделать, можно 16-ричным редактором. Да, если кол-во букв в слове не совпадет, то не будет, а почему?
Иллидан, Вы с тем, что "за" текстом, что делаете? Вперед сдвигаете? Ну и как это должно работать, если там дальше участок кода, функции, каждая по свему адресу и т.д.?
B_N вне форума
Старый 05.03.2008, 19:16   #5
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Иллидан, Вы с тем, что "за" текстом, что делаете? Вперед сдвигаете? Ну и как это должно работать, если там дальше участок кода, функции, каждая по свему адресу и т.д.?
Ок, логично, спасибо. А по что по второму вопросу? Как с этим бороться? Я слышал, что существует оператор, который ничего не делает может его вставлять?
Иллидан вне форума
Старый 05.03.2008, 19:24   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Конец строки определяется байтом с нулевым значением. В твоём случае надо просто заменять удалённые буквы нулями.
rpy3uH вне форума
Старый 05.03.2008, 19:26   #7
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Нулями строки заканчиваются. Если это не паскаль, конечно. Если паскаль, значит надо менять "заголовок" строки - прописывать новую длину. NOP (он же XCHG EAX,EAX, он же DB 90h) Вам там ни к чему - это же данные, а не код, если это, конечно не какая-то сверххитрая программа. забивайте ненужный хвост строки нулями, да и всё.
-----------------------
Вот, rpy3uH уже ответил.

-----------------------
И вообще, чтобы внести ясность. Если это строки, которые лежат в коде, как константы, то это одно, а если это стандартные ресурсы Windows, то для их замены существует масса программ, да и вручную пишется за 10 минут. См., например, http://msdn2.microsoft.com/en-us/lib...08(VS.85).aspx

Последний раз редактировалось B_N; 05.03.2008 в 19:41.
B_N вне форума
Старый 05.03.2008, 19:44   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
Какая разница чем? Можно и блокнотом можно программу сделать
Сохранённый блокнотом бинарный файл будет покорёжен хотя бы потому что он заменит многие непечатаемые символы пробелом
пыщь
JTG вне форума
Старый 07.03.2008, 15:02   #9
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Ясно, а если например мне надо поменять "Иллидан" на "Иллиданов", что предринять? И если я хочу например поменять цвет формы в Delphi, как это осуществить?
Иллидан вне форума
Старый 07.03.2008, 15:14   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
Восклицание

Цитата:
если например мне надо поменять "Иллидан" на "Иллиданов", что предринять?
Перекомпилить программу, или глубоко реверсировав, поменять все ссылки на адресное пространство после той строки что ты поменял учитывая смещение. Ну и данные за строкой должны соответственно сдвинутся, а это значит что есть риск потери чего-то в конце сегмента, в котором находится строка.

Помоему такие утилиты все же существуют, но они не дают 100% эффекта.
Цитата:
И если я хочу например поменять цвет формы в Delphi, как это осуществить?
Эт проще - ибо цвет это ровно 4 байта (DWORD), ну просто найти его и заменить. Кстати Restorator помоему это позволяет
I'm learning to live...

Последний раз редактировалось Stilet; 07.03.2008 в 15:18.
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера шрифта выводимого текста в консоле, как побороть? Artefact Qt и кроссплатформенное программирование С/С++ 0 26.02.2008 00:28
Изменение текста по команде aesoem Общие вопросы Delphi 2 27.01.2008 10:26
Изменение .exe Kukkk Общие вопросы Delphi 3 19.09.2007 11:52
Изменение громкости mutabor Win Api 2 04.08.2007 01:12
Изменение данных Екатерина БД в Delphi 1 24.03.2007 10:45