Сейчас на форуме: _MBK_ (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Нужно частично изменить хинт иконки в трее у программы, поможете? =)
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 января 2011 02:11
· Личное сообщение · #1

Привет всем,

у меня возникла проблема, есть программа, она выводит некоторые данные
в подсказке, когда вы наводите курсором на иконку в трее.

Эта строка следующего вида: "test0: %s\n test1: %s\n test2: %s\n test3: %s"

задача в следующем, нужно что бы программа выводила только часть текста: "test0: %s\n test1: %s"
а остальное, что бы не выводила =)

я нашел в WinHex'e эту строку и поставил \x00 после нужной части до конца строки, программа,
работает отлично, выводит то что нужно но в конце выводит число вида: 00334533243.

Я так понимаю что есть какая-то функция типа Format("%..%", ["",..""]), которая подставляет значения
в заданный шаблон, и которая добовляет значения которые должны были подставлятся вместо % просто
в другом формате, или это просто мусор.

Вообщем как можно решить эту проблему, в WinHex'e или в дизассемблере?
я в дизассемблировании на 1,5 из 10 но я думаю смогу понять ваши советы

Если я что-то не понятно объяснил, спрашивайте, я объясню по подробнее, или сделаю скриншоты



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 12 января 2011 02:32
· Личное сообщение · #2

overcranky пишет:
Вообщем как можно решить эту проблему, в WinHex'e или в дизассемблере?

Лучше в отладчике, бряк на wsprintfA, там ты сможешь наглядно поиграться со строкой.
можешь test2: %s\n test3: %s просто забить пробелами (20h) тогда это будет пустая срока.



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 12 января 2011 03:00
· Личное сообщение · #3

... или установи длину строки какую тебе нужно


| Сообщение посчитали полезным: NaumLeNet, ZLOvar

Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 12 января 2011 03:48 · Поправил: HiEndsoft
· Личное сообщение · #4

overcranky пишет:
Вообщем как можно решить эту проблему, в WinHex'e или в дизассемблере?

- в WinHex'e, или в дизасме/отладчике. Тебе надо всего лишь \0 добавить на выходе строки, а не в шаблоне, ибо:
overcranky пишет:
я нашел в WinHex'e эту строку и поставил \x00 после нужной части до конца строки, программа,работает отлично, выводит то что нужно но в конце выводит число вида: 00334533243.

Здесь всё очевидно, у sprintf даже если отрезать маркеры лишние в строке шаблона, всё равно будет иметь несоответствие кол-ва маркеров и аргументов что может привести к чему-нить типа мусору в стеке.

-----
продавец резиновых утёнков



 eXeL@B —› Вопросы новичков —› Нужно частично изменить хинт иконки в трее у программы, поможете? =)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати